TP 7 (interactif) : Provisionner des comptes sur plusieurs conteneurs live

Objectif

Écrire un playbook complet qui crée plusieurs comptes, leurs groupes, distribue leurs clés SSH et accorde des droits sudo ciblés, en une seule exécution sur toute la flotte — puis observer l’idempotence en le rejouant.

Environnement disponible

Vous disposez de :

  • 1 serveur de contrôle avec Ansible installé
  • 2 clients Debian
    • nrd-web1
    • nrd-db1

Informations de connexion

  • Utilisateur : root
  • Mot de passe : formation

⚠️ Les conteneurs de ce lab repartent de zéro à chaque session. Les premières étapes ci-dessous refont donc systématiquement tout le bootstrap.

Ce que vous allez réaliser

  1. Installer Ansible
  2. Générer une clé SSH pour le nœud de contrôle et la déployer sur les deux clients
  3. Localiser les IP et créer l’inventaire
  4. Générer une clé SSH dédiée pour chacun des deux nouveaux employés (Alice, Bob)
  5. Écrire un playbook qui, en une seule exécution :
    • crée le groupe support
    • crée les comptes alice et bob, rattachés à ce groupe
    • déploie la clé publique de chacun
    • accorde à alice un droit sudo ciblé (redémarrer Apache uniquement)
  6. Exécuter le playbook, puis le rejouer pour observer l’idempotence
  7. Vérifier qu’Alice peut se connecter avec sa propre clé, sans mot de passe

Conseils

  • Utilisez loop avec une liste de dictionnaires pour créer les deux comptes en une seule tâche, plutôt que de dupliquer les tâches.
  • N’oubliez pas validate: "visudo -cf %s" sur le fichier sudoers — une erreur de syntaxe non détectée pourrait bloquer sudo sur toute la machine.
  • Le mot de passe des nouveaux comptes n’est pas traité dans ce TP (on le fera proprement avec Vault en section 8) — seule la connexion par clé est mise en place ici.