fix 004
Ansible - controle du code / controle (push) Successful in 3m42s
Ansible - controle du code / promouvoir (push) Failing after 3s

This commit is contained in:
hcornet committed 2026-09-15 17:43:07 +02:00
1 parent 05141e6ec2
commit b307a35eb4
9 files changed
+46 -32

No files matched your search

+4 -4
View File
@@ -12,10 +12,10 @@ ssh_port: 22
# connecte en root) ; le mot de passe root reste utilisable sur la console.
ssh_permit_root_login: prohibit-password
# Comptes autorisés en SSH. Chaque entrée : name (obligatoire), groups (liste,
# « sudo_or_wheel » est traduit selon l'OS), sudo_nopasswd (bool), shell,
# password_hash (optionnel, pour un mot de passe local — jamais en clair).
# Les clés publiques sont lues dans files/keys/<name>/*.pub.
# Comptes autorisés en SSH. Chaque entrée : name (obligatoire), keys (liste de
# fichiers .pub pris dans files/keys/), groups (liste, « sudo_or_wheel » est
# traduit selon l'OS), sudo_nopasswd (bool), shell, password_hash (optionnel,
# pour un mot de passe local — jamais en clair).
ssh_users:
- name: root
+15 -3
View File
@@ -1,14 +1,26 @@
---
- name: Recenser les clés publiques disponibles par compte
- name: Recenser les clés publiques de chaque compte
# Fichiers listés dans « keys », à plat dans files/keys/ (comme cles/ du dépôt Terraform).
ansible.builtin.set_fact:
ssh_users_keys: >-
{{ ssh_users_keys | default({}) | combine({
item.name: lookup('ansible.builtin.fileglob', ssh_keys_dir ~ '/' ~ item.name ~ '/*.pub', wantlist=True)
item.name: item['keys'] | default([]) | map('regex_replace', '^', ssh_keys_dir ~ '/') | list
}) }}
loop: "{{ ssh_users }}"
loop_control:
label: "{{ item.name }}"
- name: Vérifier que les fichiers de clés déclarés existent
ansible.builtin.stat:
path: "{{ item }}"
delegate_to: localhost
become: false
loop: "{{ ssh_users_keys.values() | flatten | unique }}"
loop_control:
label: "{{ item | basename }}"
register: ssh_keys_stat
failed_when: not ssh_keys_stat.stat.exists
- name: Calculer la liste AllowUsers
ansible.builtin.set_fact:
ssh_allow_users_effective: "{{ ssh_users | map(attribute='name') | list }}"
@@ -23,7 +35,7 @@
- not (ssh_ansible_login == 'root' and ssh_permit_root_login == 'no')
fail_msg: >-
Le compte de connexion Ansible « {{ ssh_ansible_login }} » doit figurer dans ssh_users
avec au moins une clé dans {{ ssh_keys_dir }}/{{ ssh_ansible_login }}/*.pub,
avec au moins un fichier dans sa liste « keys » (présent dans {{ ssh_keys_dir }}/),
et ssh_permit_root_login ne peut pas valoir « no » si Ansible se connecte en root.
vars:
ssh_ansible_login: "{{ ansible_user | default('root') }}"
+1 -1
View File
@@ -1,5 +1,5 @@
# {{ ansible_managed }}
# Source : files/keys/{{ item.name }}/*.pub
# Source : {{ ssh_users_keys[item.name] | map("basename") | sort | join(", ") }}
{% for key_file in ssh_users_keys[item.name] | sort %}
{{ lookup('ansible.builtin.file', key_file) | trim }}
{% endfor %}