Virtualisation
Qu'est-ce que cloud-init ?
cloud-init is the standard mechanism for configuring a virtual machine on first boot, using metadata supplied by the platform. It handles SSH key injection, hostname, network configuration and arbitrary user scripts, which is what makes fully automated provisioning possible.
Pourquoi cloud-init est important
Il gère l'injection de clés SSH, le nom d'hôte, la configuration réseau et des scripts utilisateur arbitraires, ce qui rend possible un provisionnement entièrement automatisé.
cloud-init en pratique
Lors d'un démarrage à froid, cloud-init s'exécute avant le démarrage de vos services. Vous surveilleriez la console pour « running modules » et vérifieriez /var/log/cloud-init-output.log. Un script user-data mal configuré peut suspendre le démarrage ou laisser SSH verrouillé. Vous devriez tester sur une instance jetable d'abord. Vous pouvez relancer avec « cloud-init clean » et redémarrer. Une erreur vous coûte du temps de re-provisionnement à partir du panneau, ou une session VNC pour corriger à la main.
Ce qu'on comprend mal à propos de cloud-init
L'erreur courante consiste à supposer que cloud-init s'exécute à chaque démarrage. Il ne s'exécute qu'une seule fois, au premier démarrage. Si vous ajoutez un script aux user-data en espérant qu'il s'applique au redémarrage, cela ne se produira pas. Correction : utilisez-le uniquement pour le provisionnement initial, ou appelez explicitement 'cloud-init clean' pour réinitialiser l'état en vue d'une nouvelle exécution.
cloud-init — questions fréquentes
Comment transmettre des user-data à cloud-init ?
Lors du provisionnement depuis le panneau ou l'API, vous pouvez fournir un champ user-data. Il est injecté via les métadonnées, et cloud-init l'applique au premier démarrage. Utilisez un script shell ou un YAML cloud-config, selon vos besoins.
Puis-je utiliser cloud-init avec une ISO personnalisée ?
Oui, si l'ISO inclut cloud-init. Par exemple, les images cloud des principales distributions le contiennent. Vous pouvez aussi téléverser votre propre image avec cloud-init. Assurez-vous que l'instance est en KVM, pas en conteneur, car cloud-init s'appuie sur les métadonnées fournies par la plateforme.
Plus de virtualisation
- KVM
- KVM est une virtualisation matérielle complète intégrée au noyau Linux, donnant à chaque invité son propre noyau et une isolation renforcée par le matériel vis-à-vis des autres locataires.
- OpenVZ
- OpenVZ est une virtualisation par conteneurs dans laquelle chaque instance partage le noyau hôte, de sorte que les invités ne peuvent pas charger de modules noyau ni exécuter un système d'exploitation différent.
- LXC
- LXC est la conteneurisation native de Linux qui isole les processus avec des espaces de noms et des cgroups tout en partageant le noyau hôte.
- Hyperviseur
- Un hyperviseur est la couche logicielle qui crée et exécute des machines virtuelles, allouant les CPU physiques, la mémoire et les entrées-sorties entre elles.
- Virtualisation imbriquée
- La virtualisation imbriquée permet à une machine virtuelle d'exécuter elle-même des machines virtuelles, en exposant les extensions de virtualisation du processeur à l'invité.
- vCPU
- Un vCPU est un processeur virtuel présenté à un invité, adossé au temps d'ordonnancement sur un cœur ou un thread physique.