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 :
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.
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 :
bash chname <nouveau_nom_de_machine>` , puis redémarrer
- utiliser le script s-adm-start :
bash s-adm-start
, puis redémarrer - ou sinon :
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 <nouveau_nom_de_machine>
- soit (ici on renomme la machine en s-infra) avec :
- en utilisant le script de renommage comme suit :
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:
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'' :
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