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.