Configuration basée sur Ansible d'un poste de travail Linux pour le ministère de la transition écologique.
| .gitignore | ||
| LICENSE | ||
| README.md | ||
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
--checket vérifie les changements attendus.
Étapes suivantes conseillées
- Compléter le rôle
lan_dnum_pame(certificats, profils NetworkManager via templates). - Créer les rôles
vpn_ipsec,navigation_proxy,ssh_smartcardselon tes besoins. - Ajouter des
vars/spécifiques (Debian/Arch) si tu cibles plusieurs distributions. - Mettre en place une CI basique (lint YAML,
ansible-lint,--check).