diff --git a/vms/README.md b/vms/README.md new file mode 100644 index 0000000000000000000000000000000000000000..7b971e0e480eddfd9c1051faf04c32061dfff0f1 --- /dev/null +++ b/vms/README.md @@ -0,0 +1,29 @@ +# Créer des vms pour tout les gpas + +## Génération de la configuration + +1. Les faire papser +2. Figer le paps 10-15 mins avant le tp de déploiment +3. Exporter en csv +4. Mettre le résultat dans le paps.csv +5. Lancer le cloudinit.py + +## Création des vms + +1. Créer autant de vms que de gpas(voir un peu plus): + +- en utilisant le champ `nombre` (premier onglet quand on crée une vm): Le faire 10 par 10 sinon ça peut bugger et les vms se mettent en erreur et tout. +- choisir ubuntu 22.04 pour éviter le bug d'avoir à redémarrer les vms en 138.195.138.qqch +- nano of course +- Configuration: mettre le cloudinit.yaml + +## Récupérer les ips des vms avec OpenStack en CLI + +- si openstack cli pas configuré en local: + - Se ssh sur virt-deploy + - puis os-controller-1 + - `lxc-attach -n os-controller-1_utility_container-07435263` + - `source openrc` +- récupérer les ips + - `openstack server list --project formation -f yaml | yq ".[].Networks.vm[1]"` +- les copier dans un fichier vscode, puis attribuer une vm à chaque mec en mode tu prends le numéro de ton paps et l'ip de la ligne associé. diff --git a/vms/cloudinit.py b/vms/cloudinit.py new file mode 100644 index 0000000000000000000000000000000000000000..7bf8e0259e8d408c879112a7e66de843d670a067 --- /dev/null +++ b/vms/cloudinit.py @@ -0,0 +1,26 @@ +""" +Generate cloud-init configuration for the VMs. +""" +import crypt +cloudinit=""" +#cloud-config +apt_upgrade: true +ssh_pwauth: 1 +users: +""" +with open("paps.csv", encoding="utf-8") as file: + for line in file.readlines()[1:]: + login = line.split(";")[0][4:] + password = crypt.crypt(login, crypt.mksalt(crypt.METHOD_SHA256)) + cloudinit += f""" + - name: {login} + primary_group: {login} + groups: users + lock_passwd: false + shell: /bin/bash + sudo: ALL=(ALL) NOPASSWD:ALL + passwd: {password} + + """ +with open("cloudinit.yaml", "w", encoding="utf-8") as file: + file.write(cloudinit) diff --git a/vms/cloudinit.yaml b/vms/cloudinit.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/vms/paps.csv b/vms/paps.csv new file mode 100644 index 0000000000000000000000000000000000000000..db50ea6883387088e5e1521fe596ef1fcfe88db2 --- /dev/null +++ b/vms/paps.csv @@ -0,0 +1,2 @@ +Login;Nom;Date;Classement;Valide;Scann� +2021labellefl;Florentin Labelle;10/11/22;1;OUI;NON