En tant que développeur, je teste pas mal de choses. J’installe, je bidouille et parfois, je désinstalle. Au final, mon PC se retrouve pollué par toutes ces choses non utiles.
Pour conserver une machine dans un état pas trop mauvais, j’ai donc décidé de passer, comme beaucoup, aux machines virtuelles.
J’installe une VM avec l’OS de mon choix (très souvent une distribution Linux), je la lance le temps de mes tests et une fois que j’ai terminé, soit je la supprime, soit je l’archive.
Le plus long dans ce cas est de paramétrer la VM puis d’y installer tout ce dont j’ai besoin, tâche qui peut vite s’avérer fastidieuse.
Je me suis alors tourné vers les solutions de virtualisation et j’ai découvert des solutions assez fun comme Vagrant ou Ansible.
On va donc voir comment installer facilement une VM avec une distribution Ubuntu Server 16.04, Kibana et ElasticSearch.
La première étape est d’installer Vagrant sur la machine qui va héberger la VM. L’installeur se trouve à l’adresse : https://www.vagrantup.com/downloads.html
Vagrant utilise un système de « box » qui contiennent un OS complet plus quelques options en fonction du résultat attendu.
Sur le site Vagrant, il y a un annuaire qui recense toutes les box disponible. Cet annuaire se trouve à l’adresse https://atlas.hashicorp.com/boxes/search?_ga=1.65962158.1280280004.1486837010
Il suffit de faire une recherche pour trouver la box qui nous intéresse : https://atlas.hashicorp.com/ubuntu/boxes/xenial64
Ensuite, il faut dire à Vagrant de télécharger cette box et de la stocker dans son référentiel local. Ainsi, à chaque nouvelle installation, on pourra économiser le temps de téléchargement de l’OS.
Vagrant box add elastic/ubuntu-16.04-x86_64
Pour faire tourner une VM, il faut un logiciel de virtualisation. Pour cet article, on va utiliser VirtualBox, la solution gratuite d’Oracle. Mais il faut savoir que Vagrant peut aussi fonctionner avec d’autres logiciels comme VMWare par exemple.
VirtualBox se trouve à l’adresse suivante : https://www.virtualbox.org/wiki/Downloads
Une fois le téléchargement terminé, on va pouvoir s’occuper d’initialiser notre projet.
Avant de commencer, je me permets de recommander un logiciel qui permet de s’affranchir de la fenêtre DOS si vous êtes sous Windows : cmder (http://cmder.net/ ).
Ce logiciel propose une coloration syntaxique et quelques options qui nous facilitent la vie si vous avez l’habitude de travailler avec Putty (par exemple).
Il faut créer le répertoire sur le disque dur qui va contenir les fichiers de configuration et de mise en place de la VM.
Le premier fichier de configuration à créer se nomme Vagrantfile et doit être positionné à la racine du répertoire choisi. Il peut être créé automatiquement par Vagrant avec la commande suivante :
vagrant init
Le contenu de ce fichier est le suivant (une fois purgé des commentaires) :
# -*- mode: ruby -*- # vi: set ft=ruby : # All Vagrant configuration is done below. The "2" in Vagrant.configure # configures the configuration version (we support older styles for # backwards compatibility). Please don't change it unless you know what # you're doing. Vagrant.configure("2") do |config| # The most common configuration options are documented and commented below. # For a complete reference, please see the online documentation at # https://docs.vagrantup.com. # Every Vagrant development environment requires a box. You can search for # boxes at https://atlas.hashicorp.com/search. config.vm.box = "base" end
Ce fichier peut être simplement modifié pour le paramétrage de base de notre VM. Par exemple :
# -*- mode: ruby -*- # vi: set ft=ruby : # All Vagrant configuration is done below. The "2" in Vagrant.configure # configures the configuration version (we support older styles for # backwards compatibility). Please don't change it unless you know what # you're doing. Vagrant.configure("2") do |config| #Nom de la box téléchargée précédemment config.vm.box = "elastic/ubuntu-16.04-x86_64" #Désactivation des mises à jour automatiques config.vm.box_check_update = false #Configuration de la VM, liée au logiciel de virtualisation installé config.vm.provider "virtualbox" do |vb| #Nom de la VM vb.name = " FirstVM" #Mémoire vive allouée à la VM, exprimée en Mo vb.memory = "4096" #Nombre de CPU alloués à la VM vb.cpus= "4" end end
Rien qu’avec ces quelques lignes, si on lance la commande suivante
vagrant up
L’installation de la VM va débuter et une fois installée, elle sera démarrée.
Une fois démarrée, il est alors possible de se connecter en SSH sur la VM, soit avec Putty, soit avec la commande
vagrant ssh
Pour se connecter, par défaut, la VM est installée sur l’adresse IP 127.0.01. Les identifiants en sont vagrant/vagrant.
Le répertoire dans lequel se trouve le Vagrantfile est aussi un répertoire partagé avec la VM. Tous les fichiers qui s’y trouvent sont également accessibles via /vagrant.