2. Gonéri Le Bouder
Développeur logiciel
Ansible Cloud team
Python, OpenStack, VMware, Ansible,
Cloud-Init, etc.
✉ goneri@lebouder.net
https://github.com/goneri
https://www.linkedin.com/in/goneri/
3. Sommaire
● Contexte
● Une VM dans un nuage, c’est quoi?
● Cloud et Linux, les outils
● Une image cloud en local
● Un outil ad-hoc
4. Contexte
J’utilise des machines virtuelles Cloud toute la journée.
● La création/destruction est lente, surtout par rapport à des conteneurs.
● J’utilise soit la CLI soit Ansible pour créer des VM standard.
● Mon ordinateur est rapide comparé à la latence des fournisseurs de Cloud classique.
5. C’est quoi une VM dans un nuage (1/2)
● Des resources virtuelles
○ Machines virtuelles
○ Réseaux
○ Volume
○ etc
6. C’est quoi une VM dans un nuage (2/2)
● Des Meta-datas
○ Configuration réseau
○ Clé SSH
○ Nom d’utilisateur
○ Des paquets a installer
○ Scripts shell (e.x: puppet apply)
○ Etc
15. Cloud-Init: pour résumer
Abstraction entre les différents Cloud.
● Un accès simple aux meta-data
Mais aussi une abstraction entre les différents systèmes d’exploitation
● Linux (RHEL, Fedora, Ubuntu, Gentoo, etc)
● FreeBSD
16. C’est quoi une image Cloud
● Un système de base minimaliste
○ PAS de mot de compte utilisateur actif (même root)
○ PAS de configuration réseau
● Console serie active (recommendation forte)
● Cloud-Init activés au démarrage
○ Avant le réseau (meta-data sur image disque)
○ Après le réseau (DHCP)
○ Durant le démarrage des services
○ En fin de démarrage (post-configuration)
17. C’est quoi une image Cloud
● Mise à disposition par toutes les distributions Linux majeures
○ https://alt.fedoraproject.org/cloud/
○ https://cdimage.debian.org/cdimage/openstack/
○ https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.0/x86_64/product-soft
ware
○ https://cloud.centos.org/centos/7/images/
○ https://cloud-images.ubuntu.com/
○ https://download.opensuse.org/repositories/Cloud:/Images:/
○ Etc
● Images officielles, supportées par les projets
18. Pourquoi utiliser une image Cloud
● Standard. Même socle que les Cloud publics.
● Éviter l’étape de l’installation.
● Image propre
○ pas de trace d’une installation antérieure, e.x: clé SSH, machine-id
● Versions des paquets figées dans l’image
○ Reproductiblité (par exemple dans une CI)
● Support de l’éditeur ou de la communauté
19. Note:
Cloud-init et des images disques peuvent aussi être utilisés pour des machines
physiques: OpenStack Ironic, MAAS, Amazon EC2 Baremetal.
20. Comment lancer une image
1. Faire une image basée sur l’image originale: qemu-img create
2. Agrandir l’image: qemu-img resize
3. Préparer les fichiers pour Cloud-init
4. Générer une image ISO: genisoimage
5. Lancer une VM qemu avec l’image QCOW2 et l’ISO
6. Retrouver l’adresse IP de la VM
21. Virt-Lightning
Un outil ad-hoc qui permet de remplacer ces étapes
● CLI simple
● Configuration la plus simple possible
● Rapide
● Plus tard, une jolie API Python
38. Libvirt et qemu
libvirt est une bibliothèque, une API, un daemon et des outils en logiciel libre de
gestion de la virtualisation.
Qemu: hyperviseur/emulateur