TP de prise en main de Vagrant¶
Pré-requis¶
Si besoin d'utiliser un proxy sortant (pas nécessaire à l'ENSG):
- Installer le plugin vagrant-proxyconf :
vagrant plugin install vagrant-proxyconf
Créer un fichier Vagrantfile¶
Les commandes ci-après illustre la création d'un fichier vagrant/helloworld/Vagrantfile :
# on créé un dossier pour le projet
mkdir ~/vagrant-helloworld
# on se place dans le projet
cd ~/vagrant-helloworld
# Générer un modèle de Vagrantfile
vagrant init ubuntu/focal64
Adapter la configuration¶
Le fichier Vagrantfile généré est commenté. Il pourra être adapté comme suit :
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/focal64"
config.vm.hostname = "helloworld"
#--------------------------------------------------------
# Passage de HTTP_PROXY, HTTPS_PROXY,... à la VM
# avec le plugin vagrant-proxyconf
#--------------------------------------------------------
if Vagrant.has_plugin?("vagrant-proxyconf")
if ENV["http_proxy"]
puts "http_proxy: " + ENV["http_proxy"]
config.proxy.http = ENV["http_proxy"]
end
if ENV["https_proxy"]
puts "https_proxy: " + ENV["https_proxy"]
config.proxy.https = ENV["https_proxy"]
end
if ENV["no_proxy"]
config.proxy.no_proxy = ENV["no_proxy"]
end
else
puts "proxy not configured (use 'vagrant plugin install vagrant-proxyconf')"
end
#--------------------------------------------------------
# Ajout d'une IP fixe avec un réseau privé
# (le même que vagrantbox)
#--------------------------------------------------------
config.vm.network "private_network", ip: "192.168.50.101"
#--------------------------------------------------------
# Personnalisation de la VM VirtualBox
#--------------------------------------------------------
config.vm.provider "virtualbox" do |vb|
vb.name = "helloworld"
vb.memory = "1024"
# vb.gui = true
end
#--------------------------------------------------------
# Exécution d'un script d'initialisation
# (dans cours-devops, nous traitons plutôt avec ansible)
#--------------------------------------------------------
# config.vm.provision "shell", inline: <<-SHELL
# apt-get update
# apt-get install -y apache2
# SHELL
end
Démarrer la VM¶
vagrant up
Problèmes possibles¶
- Sous ubuntu, la plage IP correspondante devra être autorisée via le fichier
/etc/vbox/networks.conf
. S'il est absent, ajouter le contenu suivant :
* 192.168.50.0/24
- Sous windows, la création du réseau privé virtual (
192.168.50.0/24
) avant affectation de l'IP192.168.50.101
demandera des droits administrateurs.
Installer manuellement le serveur web nginx¶
# Se connecter à la VM
vagrant ssh
# Puis dans la VM
sudo apt-get update
sudo apt-get install nginx
Vérifier l'accès à nginx¶
Depuis l'hôte de la VM, nous aurons normalement accès http://192.168.50.101
Supprimer la VM¶
vagrant destroy