Dans cet article, nous allons utiliser Vagrant et Chef pour voir comment automatiser la création d'un serveur Linux ainsi que l'installation du serveur Apache sur ce serveur.
Vagrant s'inscrit dans la démarche d'une infrastructure agile en permettant l'automatisation de la création et de la configuration de serveurs à la volée.
L'interfaçage de Vagrant avec des outils comme Puppet et Chef permettent de tester dans une intégration continue la création et la préparation de futures machines virtuelles.
Ceci s'intègre dans la démarche DevOps dont l'objectif est d'apporter de l'agilité à la fois du côté des équipes de développement, et à la fois au niveau des équipes chargées de l'infrastructure.
En effet, la création et la mise à disposition rapide de machines virtuelles testées et prêtes à l'emploi permettent aux administrateurs systèmes de répondre rapidement à la demande des équipes projets.
Cela permet de diminuer la frontière entre les mondes du développement et de l'infrastructure en améliorant la communication et la réactivité des deux côtés.
Présentation de Vagrant
De manière concrète, Vagrant est un outil en ligne de commandes qui permet d'automatiser la création et la préparation des machines virtuelles pour les environnements de développement, d'intégration et même de production.Dans un premier temps, il télécharge des images de machines virtuelles existantes.
Ensuite, il effectue la préparation de la machine virtuelle, comme la configuration du système, la création d'utilisateurs systèmes, l'installation et la configuration des programmes.
Cette préparation peut être effectuée par des scripts bash ou à l'aide d'outils comme Puppet, Chef ou Docker. Leur véritable intérêt est que les scripts de Puppet et Chef peuvent être testés.
Nous pouvons ainsi avoir une intégration continue permettant de tester la préparation, la configuration et l'installation des VM pour les différents environnements: développement, intégration, qualification et production.
Vagrant supporte en mode gratuit les VM sous VirtualBox et en mode payant les VM sous VMWare.
Installation
Pour utiliser Vagrant, nous avons besoin d'installer :VirtualBox
- Télécharger VirtualBox :
- Installer VirtualBox
Vagrant
- Télécharger Vagrant :
- Démarrer le programme d'installation
- Indiquer le programme où sera installé Vagrant
- Confirmer et terminer l'installation
Etape 1 - Créer la machine virtuelle avec Vagrant
Nous allons utiliser Vagrant pour créer une machine virtuelle Linux Ubuntu 64bits et y installer un serveur Apache :- Ouvrir un terminal de commandes
- Créer un nouveau dossier et aller dans ce dossier
- Tapper la commande pour créer la VM :
vagrant init precise64 http://files.vagrantup.com/precise64.box
- Ouvrir ce fichier Vagrantfile avec un éditeur de texte
- Décommenter la ligne suivante sans changer l'adresse IP :
config.vm.network :private_network, ip: "192.168.33.10"
Téléchargement et création de la VM
Nous lançons maintenant le téléchargement, la création et le démarrage de la machine virtuelle à l'aide de Vagrant.- Lancer la commande suivante :
vagrant up
Vagrant effectue alors les actions suivantes :
- Il télécharge la machine virtuelle :
- Il configure la VM :
Se connecter en SSH
Il est possible de se connecter en SSH à la machine virtuelle démarrée par vagrant.
- Dans le terminal de commandes, lancer :
vagrant ssh
sudo su
Pour la suite de cet article, il faut quitter l'accès en SSH à la VM de vagrant en lançant deux fois la commande "exit" dans le terminal de commandes.
Etape 2 - Préparer la machine virtuelle avec Chef : configuration du système et installation des programmes
Nous allons utiliser Chef en mode "solo" (sans serveur Chef) pour effectuer la configuration de la machine virtuelle.- Dans le répertoire où se situe le fichier Vagrantfile, créer le répertoire et sous-répertoires suivants :
- cookbooks / apache / recipes
- Dans le répertoire recipes , créer le fichier default.rb suivant :
- Dans le fichier Vagrantfile, ajouter les lignes suivantes pour indiquer à Vagrant que nous utilisons Chef :
- Ouvrir un terminal de commandes
- Aller dans le répertoire où se situe le fichier Vagrantfile
- Tapper la commande Vagrant suivante :
vagrant provision
Vagrant effectue l'installation du serveur Apache.
Vérification de la préparation de la VM
Nous pouvons vérifier que le serveur Apache est bien démarré sur la VM :- Tapper la commande :
vagrant up
Arrêt de la VM
Pour arrêter la machine virtuelle, tapper la commande suivante :vagrant halt
Prochain article
Le prochain article portera sur l'installation de Chef et de Ruby pour écrire des scripts d'intallation plus complexes :Références
- Vagrant : http://docs.vagrantup.com/v2/why-vagrant/index.html
- Chef : http://www.getchef.com/chef/
- Puppet : http://docs.puppetlabs.com/