Successfully reported this slideshow.
Your SlideShare is downloading. ×

Virt lightning-montreal-linux-meetup-2020-02

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 38 Ad

More Related Content

Slideshows for you (20)

Similar to Virt lightning-montreal-linux-meetup-2020-02 (20)

Advertisement

More from Gonéri Le Bouder (20)

Recently uploaded (20)

Advertisement

Virt lightning-montreal-linux-meetup-2020-02

  1. 1. Virt-Lightning Sur votre petit nuage... 🌤
  2. 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. 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. 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. 5. C’est quoi une VM dans un nuage (1/2) ● Des resources virtuelles ○ Machines virtuelles ○ Réseaux ○ Volume ○ etc
  6. 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
  7. 7. Les metadatas - exemples ● AWS EC2 ● RHEL Atomic host 7 ● OpenStack ● Cloud-Init
  8. 8. Comment la VM accède aux metadatas? ● Image ISO ou image disque VFAT ● Partage HTTP ● aussi DMI/SMBIOS Format: YAML/JSON principalement
  9. 9. Beaucoup de formats (legèrement) différents ● Alibaba Cloud (AliYun) ● Alt Cloud ● Azure ● CloudSigma ● CloudStack ● Config Drive
  10. 10. ... ● Digital Ocean ● E24Cloud ● Amazon EC2 ● Exoscale ● Fallback/None ● Google Compute Engine ● MAAS ● NoCloud
  11. 11. ... ● OpenNebula ● OpenStack ● Oracle ● OVF ● Rbx Cloud ● SmartOS Datasource ● ZStack
  12. 12. Problème Comment faire une image générique qui supporte tout ces clouds providers?
  13. 13. Cloud-Init Abstraction entre les différents Cloud. ● Standard actuel ● Un accès simple aux meta-data
  14. 14. Cloud-Init 1 Cloud provider Lance la VM etexpose ses m eta-data 2 Cloud-initcollecte les m eta-datas Ils’adapte autom atiquem entà la source de données. 3 Cloud-initapplication la configuration La configuration se faiten deux tem ps. Avantetaprès le dém arrage des services. 4 La VM estprête Les clés SSH sontinjectées,les com ptes sontajoutés,etc.
  15. 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. 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. 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. 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. 19. Note: Cloud-init et des images disques peuvent aussi être utilisés pour des machines physiques: OpenStack Ironic, MAAS, Amazon EC2 Baremetal.
  20. 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. 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
  22. 22. Demo
  23. 23. Virt-Lightning - ma première image $ vl fetch centos-8 $ vl distro_list
  24. 24. Virt-Lightning - ma première VM $ vl start centos-8
  25. 25. Virt-Lightning - ouvrir une connexion $ vl ssh $ vl console $ vl viewer
  26. 26. Virt-Lightning - intégration avec Ansible $ vl ansible_inventory > /tmp/inventory
  27. 27. Virt-Lightning - Plusieurs VM (1/2) $ vl distro_list > virt-lightning.yaml $ vim virt-lightning.yaml $ vl up
  28. 28. Virt-Lightning - Plusieurs VM (2/2) $ vl ansible_inventory > /tmp/inventory $ ansible -m ping -i /tmp/inventory all $ vl down
  29. 29. Virt-Lightning - Lab VMware https://galaxy.ansible.com/virt_lightning/virt_lightning
  30. 30. Virt-Lightning - Intégration avec Ansible https://galaxy.ansible.com/virt_lightning/virt_lightning
  31. 31. Ressources Github https://github.com/virt-lightning/virt-lightning Site Internet https://virt-lightning.org/ Galaxy https://galaxy.ansible.com/virt_lightning/virt_lightning PyPi https://pypi.org/project/virt-lightning/
  32. 32. Questions!?
  33. 33. Et Vagrant? ● Philosophie VM, plutôt que Cloud ● Pas d’intégration native avec Cloud-Init et Libvirt ● Virtualbox... ● Stack Ruby
  34. 34. Outils connexes ● Qemu-img ● Guestfs ● Qemu et libvirt
  35. 35. qemu-img Permet la manipulation d’image disque (pas forcement cloud) ● qemu-img info ● qemu-img create ● qemu-img convert ● etc...
  36. 36. Guestfs Modification d’une image existante (pas forcement cloud) ● virt-customize ● virt-sysprep ● Etc virt-sysprep -a rhel-6.10.qcow2 --run-command 'rm /etc/sysconfig/network-scripts/ifcfg-eth0'
  37. 37. 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

×