Je prévois de créer une image de modèle réutilisable pour déployer mon application sur plusieurs machines virtuelles qui peuvent se trouver sur différents réseaux et différents datacenters. Je prévois d'avoir un contrôle total du système hôte et d'exécuter KVM en tant qu'hyperviseur.
L'image sera rendue immuable lorsqu'elle sera attachée à la machine virtuelle afin de pouvoir déployer des modifications plus facilement en mettant à jour un seul modèle au lieu du logiciel interne de chaque machine.
Je sais comment configurer le fichier /etc/network/interfaces sur un système ubuntu standard, mais comment attribuer automatiquement une ou plusieurs adresses IP à chaque machine virtuelle lorsque vous travaillez avec une image immuable pour la machine virtuelle au premier démarrage?
La seule solution que j'ai imaginée jusqu'à présent est de configurer le modèle pour se fier au DHCP pour le réseau lorsqu'il démarre. Après le démarrage de la machine, elle pourrait alors exécuter un script qui vérifie et reconfigure la configuration IP en se connectant à un autre serveur ou système de fichiers distant qui contient les informations de configuration réseau.
Possiblement, juste après que le réseau soit disponible, je pourrais exécuter un script sur la machine virtuelle invitée qui envoie l'adresse MAC de l'interface réseau attachée en tant qu'identifiant unique pour récupérer la configuration réseau à partir d'un autre serveur "maître" qui contient les assignments IP. Cela suppose que toutes les machines virtuelles se verront attribuer une adresse MAC unique lors de leur création.
Je pourrais devoir éviter de démarrer des services comme mysql et php jusqu'à ce que le réseau soit configuré et vérifié afin que le redémarrage du réseau peu de temps après le démarrage ne perturbe rien d'important.
Cela vous semble-t-il être la bonne façon de procéder?
Les services Amazon EC2, openstack ou autres adoptent-ils une approche différente de l'automatisation réseau? Peut-être fournissent-ils une API et/ou des scripts qui font la même chose lors du démarrage?
J'utilise KVM sur l'hôte Ubuntu et le système d'exploitation invité sera également Ubuntu si cela a de l'importance.