Vagrantfile-tp-deploiement
Note de lecture générée automatiquement
Le vrai fichier est
scripts/virtualisation/Vagrantfile-tp-deploiement(Obsidian n’affiche pas les scripts eux-mêmes). Ne modifie pas cette note : modifie le script, puis relancepython3 generer_vues_obsidian.pydans le dossierscripts.
- À quoi il sert : Labo TP déploiement : tp-web + tp-bdd sous KVM (2 VM)
- Lancer (dans le dossier
scripts/virtualisation/) :cp Vagrantfile-tp-deploiement ~/labo-tp-deploiement/Vagrantfile(puis vagrant up dans ce dossier : labo TP deploiement sous KVM, doc V07) - Fiche : V07 - Vagrant et KVM (labo du TP déploiement)
- Retour : 00 - Tous les scripts
Code
# -*- mode: ruby -*-
# Labo du TP deploiement : 2 VM Debian 12 sous QEMU/KVM (provider libvirt)
# vagrant up -> cree et demarre les 2 VM
# vagrant status -> etat des VM
# vagrant halt -> eteint les VM
# vagrant snapshot restore propre -> revient a l'etat de depart (VM eteintes)
# puis vagrant up -> les redemarre
# les VM sont vides : c'est le script deploiement.sh qui installe tout
# les commandes vagrant se lancent dans le dossier qui contient ce fichier
# notre cle ssh publique, copiee dans les VM pour faire "ssh vagrant@IP" sans mot de passe
CLE_PUBLIQUE = File.read(File.expand_path("~/.ssh/id_ed25519.pub")).strip
Vagrant.configure("2") do |config|
config.vm.box = "debian/bookworm64"
# pas de dossier partage /vagrant (inutile pour le TP)
config.vm.synced_folder ".", "/vagrant", disabled: true
config.vm.provider "libvirt" do |libvirt|
# connexion systeme : les VM apparaissent dans virt-manager
libvirt.uri = "qemu:///system"
# nom des VM dans virt-manager : tp-web et tp-bdd (sans prefixe)
libvirt.default_prefix = ""
libvirt.memory = 1024
libvirt.cpus = 1
end
# on ajoute notre cle dans /home/vagrant/.ssh/authorized_keys (si elle n'y est pas deja)
config.vm.provision "shell", privileged: false, inline: <<-SHELL
grep -qF "#{CLE_PUBLIQUE}" ~/.ssh/authorized_keys || echo "#{CLE_PUBLIQUE}" >> ~/.ssh/authorized_keys
SHELL
# VM 1 : web + wordpress
config.vm.define "tp-web" do |web|
web.vm.hostname = "tp-web"
web.vm.network "private_network", ip: "192.168.56.10",
libvirt__network_name: "tp-deploiement", libvirt__forward_mode: "none"
end
# VM 2 : bdd
config.vm.define "tp-bdd" do |bdd|
bdd.vm.hostname = "tp-bdd"
bdd.vm.network "private_network", ip: "192.168.56.11",
libvirt__network_name: "tp-deploiement", libvirt__forward_mode: "none"
end
end