Automatiser la création d'instances
Page enfant de OpenStack
Les fichiers de configuration discutés ici servent à rapidement créer des instances virtuelles (VM pour virtual machine) et des grappes d'instances virtuelles. Les fichiers au format YAML sont soit des gabarits Heat, soit des fichiers CloudInit. Les fichiers CloudInit servent à initialiser une VM particulière et y sont exécutés. Ces fichiers sont en quelque sorte un moyen d'automatiser les tâches que vous accompliriez en ligne de commande lorsque vous êtes connecté à la VM. Ils servent entre autres à effectuer la mise à jour du système d'exploitation, à installer et configurer des applications, à exécuter des commandes et à créer des utilisateurs et des groupes. Les gabarits Heat offrent encore plus de possibilités : ils servent à automatiser les tâches du tableau de bord OpenStack comme la création simultanée de plusieurs VMs, la configuration de groupes de sécurité, la création et la configuration de réseaux et la création de volumes et leur association avec les VMs. Les gabarits Heat peuvent être utilisés avec les fichiers CloudInit : une fois que Heat a créé la VM, il lui envoie un fichier CloudInit pour l'exécution de tâches de configuration et peut même lui passer par CLoudInit des renseignements sur d'autres ressources dynamiques (par exemple les adresses IP flottantes d'autres VMs).
Utilisation de CloudInit
Nous ne discutons pas ici de la création des fichiers YAML; pour ce, consultez la documentation officielle. À la création d'une VM, vous pouvez utiliser un fichier CloudInit pour décrire la configuration de la VM une fois que l'image sélectionnée est chargée. On peut utiliser les fichiers CloudInit avec le tableau de bord Horizon (l'interface Web d'OpenStack), le CLI ou l'API Python. Nous décrirons l'utilisation de CloudInit avec Horizon.
Spécifier le fichier CloudInit
- Démarrez une instance de manière habituelle par Projet->Calcul->Instances , en cliquant sur le bouton Démarrer l'instance. Configurez l'instance tel que décrit dans Launching a VM.
- Avantde cliquer sur Démarrer, sélectionnez l'onglet Post-création et entrez un fichier YAML CloudInit dans le champ Source du script de personnalisation, soit en faisant un copier-coller du fichier (méthode Entrée directe), soit en téléversant le fichier à partir de votre ordinateur (méthode Fichier). Dans des versions antérieures d'OpenStack, et en particulier IceHouse, le fichier CloudInit est copié dans une zone de texte. Retournez à l'onglet Détails.
- Une fois que tous les champs sont remplis, cliquez sur Démarrer pour créer l'instance.
La durée de l'opération peut être longue puisqu'elle dépend du contenu du fichier YAML.
Suivi de CloudInit
To see the progress of CloudInit on a VM, check the console log of the VM by: Pour suivre la progression, examinez le journal de la console de l'instance.
- Dans la colonne Nom de l'instance, cliquez sur l'instance pour obtenir l'information sur cette instance.
- Sous l'onglet Journal, les lignes qui contiennent 'cloud-init' décrivent les phases de CloudInit.
- Les renseignements de complétion paraissent à la fin du journal.
Cloud-init v. 0.7.5 finished at Wed, 22 Jun 2016 17:52:29 +0000. Datasource DataSourceOpenStack [net,ver=2]. Up 44.33 seconds
- Le rafraîchissement du journal se fait en cliquant sur le bouton Go, en haut de la page.
Using Heat Templates
As with CloudInit the creation of Heat Orchestration Template (HOT) files is not covered here, instead see the official documentation. Heat allows automation of operations performed in the OpenStack dashboard (Horizon) as well as the ability to pass information into the embedded CloudInit files, such as an IP of another server. Before using a Heat template there is usually no need to create any resources in advance. In fact it is often good practice to remove any resources you are not currently using before hand, as using a Heat template consumes resources towards your quota and will fail if it tries to exceed your quota.
To use a HOT file:
- Select Project->Ochestration->Stacks
- Click the Launch Stack button to start creating a new stack
- Provide a HOT file. This can be done using a URL, File, or Direct Input. To use a HOT file from links below, follow the link and copy the URL on the linked page for Template Source and paste the URL into the Template URL box.
- Click Next to begin setting your stack parameters. Stack parameters will vary depending on the template, however all Stacks have the following parameters by default:
- The Stack Name parameter which identifies a given stack, choose a name which is meaningful.
- The Creation Timeout parameter indicates how long after stack creation before OpenStack will give up trying to create the stack if it hasn't finished. The default value is usually sufficient.
- The Password for user parameter sets the password required for later stack changes. This is often not used as many of the below stacks are not designed to be updated.
- Click Launch to begin creating your stack.
To graphically see the progress of your stack creation click on the Stack Name and select the Topology tab. Gray nodes indicate that creation is in progress, green nodes have finished being created, and red nodes indicate failures. Once the stack has completed successfully click the Overview tab to see any information that the stack may provide (e.g. a URL to access a service or website).
Available Setups
- Hadoop+Spark Heat Template
- Creates a Hadoop cluster with Spark configured to run ontop of HDFS and submit jobs using YARN.
- Apache2 CloudInit
- Sets up an apache2 webserver with the document root in users home dir under the
public_html
folder. - Mediawiki Heat Template
- Sets up a mediawiki webserver.