Vagrant est un outil open-source vous permettant de déployer des machines virtuelles, appelées boxes, et de les administrer depuis un terminal. Vous pourrez donc, et ce extrêmement rapidement, mettre en place des environnements de test et de développement.
Vagrant nécessite d’avoir un logiciel de virtualisation d’installé à ses cotés, cependant depuis la version 1.1 celui-ci n’est plus seulement lié a VirtualBox mais prend aussi en charge VMware. Étant donné que le plugin permettant l’utilisation de VMware est payant nous travaillerons avec VirtualBox.
Si ce n’est pas déjà fait commencez donc par installer les outils suivants :
Initialisation de vagrant sous Windows
Créer un dossier pour votre projet, par exemple D:Vagrant\Project\Ubuntu_Trusty64 puis ouvrez une invite de commandes dans ce dossier (shift + clic droit > Ouvrir une fenêtre de commandes ici).
Utilisation de vagrant sous Windows
Les deux principales commandes que vous devez connaitre afin de déployer et démarrer des serveurs sont vagrant init et vagrant up.
Rendez vous sur le Vagrant Cloud afin d’observer la liste des différentes boxes crées par les utilisateurs. Dans cet exemple nous partirons sur la box « ubuntu/trusty64 » qui est la boxe officiel d’Ubunty Server. Il nous suffit donc de lancer les commandes suivantes
vagrant init ubuntu/trusty64 vagrant up
Vagrant va télécharger la box, la configurer, l’installer et enfin démarrer la VM Vagrant
D:Vagrant\Project\Ubuntu_Trusty64>vagrant init ubuntu/trusty64 A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant. D:Vagrant\Project\Ubuntu_Trusty64>vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Checking if box 'ubuntu/trusty64' is up to date... ==> default: Clearing any previously set forwarded ports... ==> default: Clearing any previously set network interfaces... ==> default: Preparing network interfaces based on configuration... default: Adapter 1: nat ==> default: Forwarding ports... default: 22 (guest) => 2222 (host) (adapter 1) ==> default: Booting VM... ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 default: SSH username: vagrant default: SSH auth method: private key default: Warning: Remote connection disconnect. Retrying... default: default: Vagrant insecure key detected. Vagrant will automatically replace default: this with a newly generated keypair for better security. default: default: Inserting generated public key within guest... default: Removing insecure key from the guest if it's present... default: Key inserted! Disconnecting and reconnecting using new SSH key... ==> default: Machine booted and ready! ==> default: Checking for guest additions in VM... default: The guest additions on this VM do not match the installed version of default: VirtualBox! In most cases this is fine, but in rare cases it can default: prevent things such as shared folders from working properly. If you see default: shared folder errors, please make sure the guest additions within the default: virtual machine match the version of VirtualBox you have installed on default: your host and reload your VM. default: default: Guest Additions Version: 4.3.34 default: VirtualBox Version: 5.0 ==> default: Mounting shared folders... default: /vagrant => D:/Vagrant/Project/Ubuntu_Trusty64
Accéder au serveur
Maintenant que la VM Vagrant est prête, nous souhaitons nous y connecter via le protocole SSH. L’output de la commande vagrant up nous a déjà donné quelques informations concernant l’IP et le port à utiliser mais ce n’est pas suffisant. Il existe une commande parfaite
vagrant ssh-config
Celle ci vous donne tous les détails nécessaire à une connexion via KiTTy/PuTTy ou autre
D:Vagrant\Project\Ubuntu_Trusty64>vagrant ssh-config Host default HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile "D:Vagrant\Project\Ubuntu_Trusty64/.vagrant/machines/default/virtualbox/private_key" IdentitiesOnly yes LogLevel FATAL
Vous avez maintenant toutes les informations nécessaires : IP, port, nom d’utilisateur, pas de mot de passe et la localisation de la clef privée.
Pour stopper une VM
vagrant halt
Pour supprimer une VM Vagrant
vagrant destroy