Tuto : déploiement de vos machines virtuelles avec Vagrant

Dans nos précédents articles, nous vous avons présenté différents outils indispensables dans les métiers de développeur, intégrateur et administrateur systèmes/réseaux, dont Terraform. Cet outil permet d’automatiser les déploiements d’infrastructure sur une plateforme cloud et de conserver un historique de l’état de l’infrastructure actuelle.

Cependant, toutes les entreprises ne sont pas favorables à passer sur le cloud. Certaines préfèrent garder leurs serveurs en interne avec des solutions de virtualisation, telles que Proxmox, VMWare ou encore Hyper-V. Ces dernières ont besoin d’outils spécifiques pour assurer leurs configurations et leurs déploiements.

Aujourd’hui, nous allons vous parler de Vagrant, un outil qui permet d’automatiser les tâches de déploiement et de configuration de machines virtuelles en interne, dans le cadre d’environnements de développement et de tests de mise à jour.

Qu’est-ce que Vagrant ?

Vagrant est un logiciel open-source développé par HashiCorp qui permet de créer des environnements virtuels et de les configurer. Il est développé en Ruby, mais, il est compatible avec d’autres langages de programmation comme PHP, Python, Java, Javascript et C# pour la mise en place d’un projet.

Comment utiliser Vagrant ?

Pour déployer une infrastructure virtuelle avec Vagrant, il faut faire la description des machines virtuelles : le nombre de processeurs virtuels, mémoire, adresse IP, nom, rôle, …

Description des machines virtuelles
vms = [
{
   :type => "elastic",
   :role => "master",
   :hostname => "elastic-master",
   :private_ip => "192.168.56.10",
   :ram => 2048,
   :cpu => 2
},
{
  :type => "kibana",
  :role => "kibana",
  :hostname => "elastic-kibana",
  :private_ip => "192.168.56.100",
  :ram => 2048,
  :cpu => 2
}
]

Ensuite, il faut configurer ce qu’il y a autour : le système d’exploitation, le mode d’accès réseau, les scripts à exécuter sur la machine ou encore transférer des fichiers sur les machines virtuelles. Il n’y a pas besoin de télécharger des images ISO pour l’installation du système d’exploitation, car Vagrant propose un catalogue avec différentes images prêtes à être utilisées, à la manière de Docker.

Déploiement des machines virtuelles
Vagrant.configure("2") do |config|
   vms.each do |machine|
     config.vm.define machine[:hostname] do |node|
       node.vm.box = "ubuntu/focal64"
      node.vm.hostname = machine[:hostname]
       node.vm.network "private_network", ip: machine[:private_ip]

Puis, on vient spécifier le provider c’est-à-dire la solution de virtualisation à utiliser, pour appliquer la configuration de la machine virtuelle faite précédemment, ici Virtualbox :

Description de la configuration de la VM a appliqué sur Virtualbox
node.vm.provider "virtualbox" do |v|
               v.name = machine[:hostname]
                v.check_guest_additions = false
               v.memory = machine[:ram]
                v.cpus = machine[:cpu]

Il existe plusieurs provisionner pris en charge par Vagrant, pour installer la partie logicielle sur les machines. Comme dit précédemment, on peut utiliser simplement des scripts, ou alors utiliser des commandes shells, Ansible ou encore Chef.

Enfin, pour déployer votre infrastructure, utiliser la commande “vagrant up”, pour la suspendre “vagrant halt” et pour le détruire “vagrant destroy”. Il est possible de cibler qu’une seule machine en spécifiant son nom après la commande.

Il est également possible de mettre à jour les configurations des machines, une fois qu’elles sont déployés avec la commande “vagrant provision”

Les avantages et inconvénients

Avantages

Inconvénients

Vagrant est un bon outil pour déployer un environnement de test de manière automatique qui n’est pas voué à rester en fonctionnement. De plus, l’environnement est portable puisque l’on peut se partager ou déplacer le fichier Vagrantfile et ses fichiers annexes, s’il y en a.

Chez YPSI, nous accompagnons les entreprises dans leurs projets de déploiement d’infrastructures dans le cloud et dans les solutions One-Premise. N’hésitez pas à nous contacter pour être mieux accompagner.

Partagez cet article :

Laisser un commentaire