Vagrant: utilisation de base

vagrant est un outil permettant de provisionner une machine virtuelle. Voyons quelques bases de son utilisation.

Il peut utiliser plusieurs fournisseurs de moteur de machine virtuelle, dont virtualbox. Utiliser une machine virtuelle a un intérêt pour tester un playbook ansible sans attaquer la machine cible directement.

Installation

Avec un hôte MacOS intel et le gestionnaire de paquet homebrew :

1brew install virtualbox virtualbox-extension-pack vagrant

Création d'une machine

1mkdir -p vm/centos7-1 && cd vm/centos7-1
2vagrant init centos/7

La commande précédente crée un fichier Vagrantfile et un sous répertoire .vagrant dans le répertoire centos7-1. La box utilisée sera centos/7.

Lançons la VM (et provisionnons la si 1er boot) :

1vagrant up [id]

Si le paramètre optionnel id est passé, il permet de lancer une VM spécifique sans avoir besoin d'être dans le même répertoire que son Vagrantfile associé. Sans paramètre id, la VM lancée est celle dans laquelle le Vagrantfile est dans le répertoire courant.

Ceci télécharge si besoin l'OS etc ...

Quelques infos sur notre nouvelle VM :

 1% vagrant ssh-config
 2Host default
 3  HostName 127.0.0.1
 4  User vagrant
 5  Port 2222
 6  UserKnownHostsFile /dev/null
 7  StrictHostKeyChecking no
 8  PasswordAuthentication no
 9  IdentityFile .vagrant/machines/default/virtualbox/private_key
10  IdentitiesOnly yes
11  LogLevel FATAL

Le serveur ssh de cette VM est accessible sur le port 2222 avec la clé privée ssh qui est localement dans .vagrant/machines/default/virtualbox/private_key

On peut s'y connceter avec la commande :

1ssh vagrant@127.0.0.1 -p 2222 -i .vagrant/machines/default/virtualbox/private_key

Commandes utiles

Voir toutes les infos sur toutes les VM vagrant

1vagrant global-status
2id       name    provider   state   directory
3------------------------------------------------------------------------
4e4a9aff  default virtualbox running /Users/<user>/vm/centos7-1

Arrêter la VM

1vagrant halt [id]

Arrêter + effacer la VM

1vagrant destroy [id]

Voir les box installées

1$ vagrant box list
2centos/7            (virtualbox, 2004.01)
3geerlingguy/centos7 (virtualbox, 1.2.26)
4generic/rocky9      (virtualbox, 4.1.16)

Password root

L'utilisateur vagrant est par défaut dans les sudoers, on peut utiliser la commande suivante pour définir un mot de passe root:

1$ sudo passwd root
2Changing password for user root.
3New password:
4Retype new password:
5passwd: all authentication tokens updated successfully.

Update: dans le Vagrantfile on peut provisionner la VM avec un script shell de ce type :

1usermod --password $(echo vagrant | openssl passwd -1 -stdin) root

ce qui modifie le password root sans interaction.

comments powered by Disqus