ssh_baseline gere les cles d'administration declarees au plan, avec un `etat` par entree : revoquer devient un changement de plan, pas une visite sur chaque machine. Pas d'exclusive -- il effacerait la cle de cloud-init et fermerait la flotte a tout le monde. cloud-init reecrivait /etc/hosts a chaque demarrage et effacait le plancher de resolution. Constate sur infra-dns-01 apres un redemarrage : six entrees perdues, revelees deux jours plus tard par un apt update qui ne resolvait plus. requirements.yml ne declarait pas ansible.posix ni community.docker, pourtant utilisees. Ca marchait chez le mainteneur, pas sur un runner. Et le cache des collections suivait l'existence du fichier au lieu de son contenu. Enfin : deux `when` sur une meme tache, c'est un seul -- le dernier. Le check-mode avait disparu en silence. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
28 lines
1.5 KiB
YAML
28 lines
1.5 KiB
YAML
---
|
|
ssh_baseline_password_authentication: "no"
|
|
ssh_baseline_permit_root_login: "no"
|
|
ssh_baseline_pubkey_authentication: "yes"
|
|
|
|
# --- QUI A LE DROIT D'ENTRER --------------------------------------------------
|
|
#
|
|
# La cle du compte d'administration est posee par CLOUD-INIT, a la creation de la VM.
|
|
# Il n'existait donc aucun moyen declaratif d'en autoriser une SECONDE sur des machines
|
|
# deja nees — constate le 2026-08-24 : le poste d'exploitation fabriquait sa propre paire
|
|
# depuis son premier deploiement, et n'a jamais pu joindre un seul hote
|
|
# (`Permission denied (publickey)`).
|
|
#
|
|
# CHAQUE ENTREE PORTE SON `etat`, ET C'EST DELIBERE. Une liste purement additive ne sait
|
|
# pas RETIRER : une cle autorisee une fois le resterait pour toujours, et « revoquer »
|
|
# voudrait dire se connecter a la main sur chaque machine. Ici, passer une entree a
|
|
# `absent` la retire au prochain passage, sur toute la flotte.
|
|
#
|
|
# ON N'UTILISE PAS `exclusive: true` : il effacerait la cle posee par cloud-init si le
|
|
# plan ne la reprenait pas, et fermerait la flotte a tout le monde d'un seul deploiement.
|
|
# Le prix de ce choix est qu'une cle posee HORS du plan ne sera pas detectee ici.
|
|
#
|
|
# ssh_baseline_cles_admin:
|
|
# - cle: "ssh-ed25519 AAAA… setops@ops-01.exemple.internal"
|
|
# pourquoi: "poste d'exploitation — configure la flotte"
|
|
# etat: present # `absent` pour revoquer
|
|
ssh_baseline_admin_user: "{{ sudo_ansible_admin_user | default('ansible') }}"
|
|
ssh_baseline_cles_admin: []
|