# gsb2024 * 2024-05-23 16h07 ps * 2024-04-12 8h55 ps * 2024-01-19 11h45 ps Environnement et playbooks **ansible** pour le projet **GSB 2024** ## Quickstart Prérequis : * une machine **Linux Debian Bookworm** ou **Windows** * VirtualBox * git * fichier machines virtuelles **ova** : * **debian-bookworm-gsb-2024b.ova** * **debian-bullseye-gsb-2024b.ova** ## Les machines * **s-adm** : routeur adm, DHCP + NAT, déploiement, proxy squid * **s-infra** : DNS maitre, autoconfiguration navigateurs avec **wpad** * **r-int** : routage, DHCP * **r-ext** : routage, NAT * **s-proxy** : proxy **squid** * **s-itil** : serveur GLPI * **s-backup** : DNS esclave + sauvegarde s-win (SMB), Stork et Gotify * **s-mon** : supervision avec **Nagios4/Zabbix**, notifications et journald * **s-fog** : deploiement postes de travail avec **FOG** * **s-win** : Windows Server 2019, AD, DNS, DHCP, partage fichiers * **s-nxc** : NextCloud avec **docker** via proxy inverse **traefik** et certificat auto-signé * **s-elk** : pile **ELK** dockerisée * **s-lb** : Load Balancer **HaProxy** pour application Wordpress (DMZ) * **r-vp1** : Routeur VPN Wireguard coté siège * **r-vp2** : Routeur VPN Wireguard coté agence, DHCP * **s-agence** : Serveur agence * **s-lb** : Load Balancer **HaProxy** pour application Wordpress * **s-lb-web1** : Serveur Wordpress 1 Load Balancer * **s-lb-web2** : Serveur Wordpress 2 Load Balancer * **s-lb-db** : Serveur Mariadb pour Wordpress * **s-nas** : Serveur NFS pour application Wordpress avec LB * **s-kea1** : Serveur DHCP Kea HA 1 * **s-kea2** : Serveur DHCP Kea HA 2 ## Les playbooks Il existe un playbook ansible pour chaque machine à installer, nommé comme la machine avec l'extension **.yml** ## Installation On utilisera les images de machines virtuelle suivantes : * **debian-bookworm-gsb-2024b.ova** (2024-05-23) * Debian Bookworm 12.5 - 2 cartes - 1 Go - Stockage 20 Go et pour **s-fog** : * **debian-bullseye-2024b.ova** (2024-04-11) * Debian Bullseye 11.9 - 2 cartes - 1 Go - stockage 20 Go Les images **.ova** doivent etre stockées dans le répertoire habituel de téléchargement de l'utilisateur courant. ### Création d'une VM Sur la machine physique, récupérer le dépot **gsb2024.git** avec : ```shell git clone https://gitea.lyc-lecastel.fr/gsb/gsb2024.git ``` On utilisera le script (bash) **mkvm** ou (PowerShell) **mkvm.ps1** pour créer une VM Virtualbox. ```shell cd gsb2024/scripts mkvm -r s-adm ``` ### Machine s-adm La machine **-sadm** est la première machine à installer. * créer la machine virtuelle **s-adm** avec **mkvm** comme décrit plus haut. * démarrer la VM puis ouvir une session * utiliser le script de renommage comme suit : ```shell bash chname ` , puis redémarrer ``` * utiliser le script **s-adm-start** : `bash s-adm-start` , puis redémarrer * ou sinon : ```shell mkdir -p tools/ansible ; cd tools/ansible git clone https://gitea.lyc-lecastel.fr/gsb/gsb2024.git cd gsb2024/pre bash inst-depl cd /root/tools/ansible/gsb2024/pre DEPL=192.168.99.99 bash gsbboot cd ../.. ; bash pull-config ``` - redémarrer - la machine **s-adm** doit etre opérationnelle ### Pour chaque machine #### Etape 1 - Nommage machine - créer la machine avec **mkvm -r**, les cartes réseau sont paramétrées par **mkvm** selon les spécifications - ouvrir une session sur la machine considérée - renommer la machine soit * en utilisant le script de renommage comme suit : ` /root/tools/ansible/gsb2024/scripts/chname ` * soit (ici on renomme la machine en **s-infra**) avec : ```shell export HOST=s-infra curl 192.168.99.99/gsbstore/inst1|bash reboot # on redemarre ``` #### Etape 2 - installation outils, depot gsb2024 et lancement playbook - utiliser le script **gsb-start** : `bash gsb-start` - ou sinon: ```shell curl 192.168.99.99/gsbstore/inst2|bash ``` - le script recupere le dépot **gsb2024.git** - il lance ensuite le script **pull-config** avec le script porant le nom de la machine - on peut alors redémarrer #### Etape 3 - Redémarrage et tests - redémarrer - **Remarque** : une machine doit avoir été redémarrée pour prendre en charge la nouvelle configuration, en particulier la couche réseau et l'adressage. - selon les situations, il est possible qu'un seul playbook ne soit pas suffisant pour installer complètement une machine. Dans ce cas de figure, le second playbook s'appelle **s-machine-post.yml**. Il est à lancer depuis ''tools/ansible/gsb2024'' : ```shell ansible-playbook -i localhost, -c local s-machine-post.yml ``` ## Les tests Il peuvent êtres mis en oeuvre avec **goss** de la façon suivante : chaque machine installée dispose d'un fichier de test ad-hoc portant le nom de la machine elle-même (machine.yml). ``` cd tools/ansible/gsb2024 bash agoss # lance le test portant le nom de la machine ``` `bash agoss -f tap` permet de lancer le test avec le détail d'exécution