Configuration basée sur Ansible d'un poste de travail Linux pour le ministère de la transition écologique.
Find a file
2025-10-13 13:15:07 +00:00
.gitignore Initial commit 2025-10-09 13:00:26 +00:00
LICENSE Initial commit 2025-10-09 13:00:26 +00:00
README.md Actualiser README.md 2025-10-13 13:15:07 +00:00

Poste Linux — Squelette Ansible (LAN, Proxy, VPN, SSH)

Ce dépôt fournit une base minimale pour piloter un poste Linux via Ansible en séparant les fonctionnalités en rôles et en playbooks ciblés.

Arborescence

ansible.cfg
inventories/
  prod/
    hosts.ini
    group_vars/
      all.yml
playbooks/
  site.yml
  lan.yml
  vpn.yml
  proxy.yml
  ssh.yml
roles/
  lan_dnum_pame/
  vpn_ipsec/
  navigation_proxy/
  ssh_smartcard/

Prérequis

Utilisation rapide

1) Définir l'inventaire

Édite inventories/prod/hosts.ini :

[postes_linux]
poste-bureau-001 ansible_host=192.0.2.10

2) Variables communes

Édite inventories/prod/group_vars/all.yml (identités, options IPv6, etc.).
Pour les secrets (mots de passe EAP/VPN), utilise Ansible Vault :

ansible-vault create inventories/prod/group_vars/secrets.yml

et inclue ces variables via vars_files dans tes playbooks, ou via group_vars/all/*.yml.

3) Lancer des playbooks ciblés

  • Uniquement le LAN :
ansible-playbook playbooks/lan.yml
  • Uniquement le VPN :
ansible-playbook playbooks/vpn.yml
  • Tout le poste :
ansible-playbook playbooks/site.yml

4) Ciblage fin avec les tags

Chaque rôle pose un tag à son nom. Tu peux exécuter :

ansible-playbook playbooks/site.yml --tags lan_dnum_pame

ou exclure :

ansible-playbook playbooks/site.yml --skip-tags vpn_ipsec

5) Bonnes pratiques

  • Idempotence : ajoute progressivement des tâches réelles dans chaque rôle. Elles ne doivent rien modifier si l'état est conforme.
  • Handlers : ne redémarrer les services qu'en cas de changement.
  • Sécurité : secrets via Ansible Vault (pas en clair dans all.yml).
  • Dry-run : teste avec --check et vérifie les changements attendus.

Étapes suivantes conseillées

  1. Compléter le rôle lan_dnum_pame (certificats, profils NetworkManager via templates).
  2. Créer les rôles vpn_ipsec, navigation_proxy, ssh_smartcard selon tes besoins.
  3. Ajouter des vars/ spécifiques (Debian/Arch) si tu cibles plusieurs distributions.
  4. Mettre en place une CI basique (lint YAML, ansible-lint, --check).