site.yml
Ansible - controle du code / controle (push) Successful in 57s
Ansible - controle du code / promouvoir (push) Successful in 4s

This commit is contained in:
hcornet committed 2026-09-20 20:35:26 +02:00
1 parent 6be665af06
commit 538390bf6a
1 file changed
+56 -2
+56 -2
View File
@@ -11,7 +11,60 @@
- name: Configuration et durcissement des serveurs Linux
hosts: all
become: true
gather_facts: true
# Faits collectés dans pre_tasks, une fois le port SSH joignable déterminé.
gather_facts: false
pre_tasks:
# Un seul sondage sert deux buts : choisir le port de connexion (une VM neuve
# répond sur 22, une machine déjà traitée sur ssh_port) et repérer les machines
# éteintes, écartées proprement au lieu de faire échouer le passage.
# Un ansible_port fixé dans l'inventaire fige le port : seul celui-là est testé.
- name: Sonder les ports SSH possibles
ansible.builtin.wait_for:
host: "{{ ansible_host | default(inventory_hostname) }}"
port: "{{ item }}"
search_regex: "^SSH-"
timeout: "{{ ssh_probe_timeout }}"
delegate_to: localhost
become: false
check_mode: false
loop: "{{ ssh_probe_ports }}"
register: ssh_probe
failed_when: false
tags: [always]
- name: Retenir les ports qui répondent
ansible.builtin.set_fact:
ssh_probe_reachable: "{{ ssh_probe.results | selectattr('state', 'defined') | map(attribute='port') | list }}"
tags: [always]
- name: Se connecter sur le port qui répond
ansible.builtin.set_fact:
ansible_port: "{{ ssh_probe_reachable | first }}"
when:
- ansible_port is not defined
- ssh_probe_reachable | length > 0
tags: [always]
- name: Signaler une machine injoignable
ansible.builtin.debug:
msg: >-
Aucun service SSH sur {{ ansible_host | default(inventory_hostname) }}
(ports testés : {{ ssh_probe_ports | join(', ') }}) — machine éteinte ou filtrée.
{{ 'Hôte écarté de ce passage.' if skip_unreachable_hosts | bool else 'Le passage va échouer sur cet hôte.' }}
when: ssh_probe_reachable | length == 0
tags: [always]
- name: Écarter la machine injoignable du passage
ansible.builtin.meta: end_host
when:
- ssh_probe_reachable | length == 0
- skip_unreachable_hosts | bool
tags: [always]
- name: Collecter les faits
ansible.builtin.setup:
tags: [always]
roles:
- role: common
@@ -62,7 +115,8 @@
ansible.builtin.debug:
msg:
- "Hôte : {{ inventory_hostname }} ({{ ansible_facts['distribution'] }} {{ ansible_facts['distribution_version'] }})"
- "SSH : port {{ ssh_port }}, root={{ ssh_permit_root_login }}"
- "SSH : port(s) {{ ssh_ports_effective | default([ssh_port]) | join(', ') }}, root={{ ssh_permit_root_login }}"
- "Session : port {{ ansible_port | default(22) }}"
- "Pare-feu : {{ firewall_backend_effective | default('non géré') }}"
- "Redémarrage : {{ 'REQUIS' if (updates_reboot_required | default(false)) else 'non requis' }}"
tags: [always]