2025-02-20 10:32:03 +01:00
2025-01-26 09:45:38 +01:00
2024-12-20 00:24:00 +01:00
2025-02-20 08:42:38 +01:00
2024-12-17 18:00:05 +01:00
2024-12-17 18:00:05 +01:00
2025-01-27 17:01:51 +01:00
2024-12-17 18:00:05 +01:00
2024-12-17 18:00:05 +01:00
2024-12-17 18:00:05 +01:00
2024-12-17 18:00:05 +01:00
2024-12-17 18:00:05 +01:00
2024-12-20 09:54:09 +01:00
2024-12-20 09:08:14 +01:00
2025-01-23 21:13:40 +01:00
2025-01-23 17:25:32 +01:00
2024-12-17 18:00:05 +01:00
2025-01-23 17:25:32 +01:00
2024-12-17 18:00:05 +01:00
2025-01-26 11:09:18 +01:00
2024-12-17 18:00:05 +01:00
2024-12-17 18:00:05 +01:00
2024-12-17 18:00:05 +01:00
2024-12-20 09:08:14 +01:00
2024-12-20 09:08:14 +01:00
2024-12-17 18:00:05 +01:00
2024-12-17 18:00:05 +01:00
2024-12-17 18:00:05 +01:00
2024-12-17 18:00:05 +01:00
2025-01-24 11:29:36 +01:00
2024-12-20 09:08:14 +01:00
2024-12-20 09:19:35 +01:00
2024-12-20 09:19:35 +01:00
2024-12-20 09:19:35 +01:00
2025-01-16 10:22:07 +01:00
2024-12-20 09:08:14 +01:00
2024-12-17 18:00:05 +01:00
2024-12-20 09:08:14 +01:00
2024-12-17 18:00:05 +01:00
2024-12-17 18:00:05 +01:00
2024-12-17 18:00:05 +01:00
2024-12-20 09:08:14 +01:00
2024-12-17 18:00:05 +01:00

gsb2025

  • 2025-01-25 12h59 ps

Environnement et playbooks ansible pour le projet GSB 2025

Quickstart

Prérequis :

  • une machine Linux Debian Bookworm ou Windows
  • VirtualBox
  • git
  • fichier machines virtuelles ova :
    • debian-bookworm-gsb-2025a.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-2025a.ova (2025-01-13)
    • Debian Bookworm 12.9 - 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 gsb2025.git avec :

   git clone https://gitea.lyc-lecastel.fr/gsb2025/gsb2025.git

On utilisera le script (bash) mkvm ou (PowerShell) mkvm.ps1 pour créer une VM Virtualbox.

cd gsb2025/scripts
mkvm -r -s s-adm

Machine s-adm

La machine s-adm 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 depuis gsb2025/scripts :
`bash chname <nouveau_nom_de_machine>` , puis redémarrer
  • utiliser le script s-adm-start : bash s-adm-start , puis redémarrer
  • ou alors inon :
    mkdir -p tools/ansible ; cd tools/ansible
    git clone https://gitea.lyc-lecastel.fr/gsb2025/gsb2025.git
    cd gsb2025/pre
    bash inst-depl
    cd /root/tools/ansible/gsb2025/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/gsb2025/scripts/chname <nouveau_nom_de_machine>
    • soit (ici on renomme la machine en s-infra) avec :
export HOST=s-infra   
curl 192.168.99.99/gsbstore/inst1|bash
reboot # on redemarre

Etape 2 - installation outils, depot gsb2025 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 gsb2025.git
  • il lance ensuite le script pull-config avec le script portant 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/gsb2025'' :
ansible-playbook -i localhost, -c local s-machine-post.yml

Les tags ansible

Pour limiter l'effet de machines non disponible comme s-mon, il est possible d'utiliser des tags ansible , ...).

Les tags suivants sont définis : zabbix et journald.

L'appel de 'pull-config' comme ci-dessous permet d'ignorer les plays tagués 'zabbix' .

bash pull-config -l --skip-tags zabbix

Les tests

Il peuvent êtres mis en oeuvre avec l'outil goss https://github.com/goss-org/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.yaml).

cd tools/ansible/gsb2025
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

Mise à jour des fichiers de test goss

Les modifications diverses apportées aux playbooks et les changements de version de paquets peuvent nécessiter l'adaption des fichiers de test goss : <host.yaml>

La commande more goss/s-infra.yaml permet d'afficher la contenu du fichier de test de la machine s-infra et de déterminer les modifications à apporter.

On utilisera la commande goss add <test> en spécifiant le fichier concerné avec l'option --gossfile :

gsb2025> goss --gossfile goss/s-infra.yaml add aa lighttpd
Description
Documentation et playbooks ansible du projet gsb2025
http://gitea.lyc-lecastel.fr/gsb2025/gsb2025.git
Readme 3.1 MiB
Languages
Jinja 41.1%
Shell 37%
Perl 16.1%
PowerShell 2.9%
Batchfile 2.2%
Other 0.7%