From 86507edd688cc877b22b0f468cf2a8e3ae478f77 Mon Sep 17 00:00:00 2001 From: gauvainboiche Date: Wed, 22 Oct 2025 10:04:12 +0200 Subject: [PATCH] Initial commit --- Semaine_01/Jour_01.md | 76 +++++++++++++++++++++++++++++++++++++++++++ Semaine_01/Jour_02.md | 55 +++++++++++++++++++++++++++++++ desktop.ini | 6 ++++ 3 files changed, 137 insertions(+) create mode 100644 Semaine_01/Jour_01.md create mode 100644 Semaine_01/Jour_02.md create mode 100644 desktop.ini diff --git a/Semaine_01/Jour_01.md b/Semaine_01/Jour_01.md new file mode 100644 index 0000000..48f23f4 --- /dev/null +++ b/Semaine_01/Jour_01.md @@ -0,0 +1,76 @@ +# L'infra avancée : + +## Exercice 1 + +### Lancer une machine + +`qemu-img create -f qcow2 'C:\Program Files\qemu\testVM.qcow2' 10G` + +`qemu-system-x86_64 -m 2048 -hda 'C:\_VMs\testVM.qcow2' -cdrom 'D:\Users\GaWin\Downloads\_Compressed\debian-13.1.0-amd64-netinst.iso' -boot d` + +Pour lancer une machine depuis le disque : + +`qemu-system-x86_64 -m 4096 -smp 4 -hda 'C:\_VMs\testVM.qcow2' -boot c` + +- -boot d : Boot sur le CD/ROM +- -boot c : Boot sur le Disque Dur +- m XXXX : Alloue une mémoire RAM fixe +- smp X : Alloue un nombre de coeurs virtuels fixe + +Pour convertir le .qcow2 en .vdi, dans l'interface c'est plus clair. + +## Exercice 2 + +### Créer une VM + +Pour refaire une VM en CLI : + +``` +vboxmanage createvm --basefolder="C:\_VMs\VirtualCreationCLI" --register --name "VirtualBoxCLI" + +vboxmanage storagectl "VirtualBoxCLI" --name "sata-controller" --add sata --controller IntelAHCI --portcount 1 --bootable on + +vboxmanage storageattach "VirtualBoxCLI" --storagectl "sata-controller" --port 0 --device 0 --type hdd --medium ".\test_copy.vdi" + +vboxmanage modifyvm "VirtualBoxCLI" --memory 4096 --cpus 4 +``` + +### Convertir un disque virtuel .qcow2 en CLI + +https://github.com/michaelrudy/qemu-img-convert + +D'abord, dans la VM d'origine, il faut préparer la transition : + +``` +sudo tee /etc/dracut.conf.d/hyperv.conf >/dev/null <<'EOF' +add_drivers+=" hv_vmbus hv_storvsc hv_netvsc hv_utils " +hostonly="no" +EOF + +sudo dracut -f --kver "$(uname -r)" + +ls -lh /boot/initramfs-$(uname -r).img ### pour confirmer + +cat /etc/fstab +blkid + +sudo shutdown -h now +``` + +`qemu-img convert -f qcow2 -O vhdx -o subformat=dynamic .\test.qcow2 .\test_copy.vhdx` + +Bizarrement, pour que la conversion soit prise en compte par Hyper-V, il faut lancer cette commande : + +`fsutil sparse setflag .\test_copy.vhdx 0` + +### Cloner une VM en CLI + +Exporter pour VirtualBox +`vboxmanage clonevm "VirtualBoxCLI" --basefolder ".\NewVirtualBoxCLI" --name "NewVirtualBoxCLI" --register` + +Exporter pour HyperV +``` +Export-VM -Name "HyperVCLI" -Path "C:\_VMs\HyperVCLI" -CaptureLiveState CaptureSavedState + +Import-VM -Name "NewHyperVCLI" -Path "C:\_VMs\HyperVCLI\{ID-de-ses-morts}.vmcx" -Copy -GenerateNewId -VirtualMachinePath "C:\_VMs\NewHyperVCLI" -VhdDestinationPath "C:\_VMs\NewHyperVCLI" +``` \ No newline at end of file diff --git a/Semaine_01/Jour_02.md b/Semaine_01/Jour_02.md new file mode 100644 index 0000000..5ac36b4 --- /dev/null +++ b/Semaine_01/Jour_02.md @@ -0,0 +1,55 @@ +# Infra avancée + +## Cours + +### Contenerisation + +- Namespace : les processus ne peuvent pas voir les ressources utilisées par l'hôte ou ses congénères +- cgroups : contrôle des ressources allouées à un processus + +#### Solutions : + +- Docker / Podman +- OpenVZ +- Les zones (Solaris) +- Les jails (FreeBSD) +- LXC + +### LXC + +``` +# Avec interactivté +sudo lxc-create -n NOM_CONTENEUR -t download + +# Sans interactivité (pour script) +sudo lxc-create --template=download --name NOM_CONTENEUR -- --dist NOM_DISTRIBUTION --release NUMERO_VERSION --arch amd64 +``` + +``` +# Démarrer +sudo lxc-start -n NOM_CONTENEUR + +# Entrer dans un conteneur +sudo lxc-attach -n NOM_CONTENEUR + +# Stopper +sudo lxc- + +# Supprimer +sudo lxc-destroy -n NOM_CONTENEUR + +# Lister +sudo lxc-ls (--active, --running, --frozen) + +# Info sur conteneur précis +sudo lxc-info -n NOM_CONTENEUR +``` + +Fichier config du conteneur (/var/lib/lxc/xxx) : +``` +# Méthode 1 : Montage d'un dossier de l'hôte +lxc.mount.entry = /dossier_hote dossier_interne_conteneur none bind,create=dir 0 0 + +# Méthode 2 : Montage d'un disque entier ou partition de l'hôte +lxc.mount.entry = /dev/disque_ou_partition dossier_interne_conteneur FS_type defaults,create=dir 0 0 +``` \ No newline at end of file diff --git a/desktop.ini b/desktop.ini new file mode 100644 index 0000000..779fe55 --- /dev/null +++ b/desktop.ini @@ -0,0 +1,6 @@ +[.ShellClassInfo] +IconResource=C:\WINDOWS\System32\SHELL32.dll,314 +[ViewState] +Mode= +Vid= +FolderType=Generic