Files
awx_update/get_network_config.yml
T
2026-07-11 17:42:09 +02:00

76 lines
3.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
# Playbook Ansible : Récupérer la config réseau + DNS, écrire dans un fichier local, puis SFTP
- name: Collecte configuration réseau et DNS et upload SFTP
hosts: all
become: yes
vars:
nas_url: "https://dartydisk5.maison:5006" # ex: https://192.168.1.10:5006
nas_path: "/Datas/NetworkConfigs" # dossier WebDAV
nas_user: "stephane.david"
nas_pass: "St&ph@ne"
tasks:
# -------------------------------------------------------
# Étape 1 Récupérer les infos réseau, DNS et Netplan du serveur cible
# -------------------------------------------------------
- name: Collecter la configuration réseau et DNS
shell: |
echo "=== Configuration réseau de {{ inventory_hostname }} ===" > /tmp/config_{{ inventory_hostname }}.txt
echo "Hostname :" >> /tmp/config_{{ inventory_hostname }}.txt
hostname >> /tmp/config_{{ inventory_hostname }}.txt
echo "" >> /tmp/config_{{ inventory_hostname }}.txt
# --- Réseau ---
echo "=> ip -4 addr show" >> /tmp/config_{{ inventory_hostname }}.txt
ip -4 addr show >> /tmp/config_{{ inventory_hostname }}.txt
echo "" >> /tmp/config_{{ inventory_hostname }}.txt
echo "=> cat /etc/hostname" >> /tmp/config_{{ inventory_hostname }}.txt
cat /etc/hostname >> /tmp/config_{{ inventory_hostname }}.txt
echo "" >> /tmp/config_{{ inventory_hostname }}.txt
echo "=> ip route show" >> /tmp/config_{{ inventory_hostname }}.txt
ip route show >> /tmp/config_{{ inventory_hostname }}.txt
# --- DNS ---
echo "=== Configuration DNS ===" >> /tmp/config_{{ inventory_hostname }}.txt
echo "=> cat /etc/resolv.conf" >> /tmp/config_{{ inventory_hostname }}.txt
cat /etc/resolv.conf >> /tmp/config_{{ inventory_hostname }}.txt
echo "" >> /tmp/config_{{ inventory_hostname }}.txt
echo "=> resolvectl status" >> /tmp/config_{{ inventory_hostname }}.txt
resolvectl status >> /tmp/config_{{ inventory_hostname }}.txt 2>&1 || true
# --- Netplan ---
echo "=== Configuration Netplan ===" >> /tmp/config_{{ inventory_hostname }}.txt
if [ -d /etc/netplan ]; then
echo "=> Fichiers Netplan :" >> /tmp/config_{{ inventory_hostname }}.txt
ls -1 /etc/netplan >> /tmp/config_{{ inventory_hostname }}.txt
echo "" >> /tmp/config_{{ inventory_hostname }}.txt
for f in /etc/netplan/*.yaml; do
echo "--- $f ---" >> /tmp/config_{{ inventory_hostname }}.txt
cat "$f" >> /tmp/config_{{ inventory_hostname }}.txt
echo "" >> /tmp/config_{{ inventory_hostname }}.txt
done
# netplan get (Ubuntu 22.04+)
if command -v netplan >/dev/null 2>&1; then
echo "=> netplan get" >> /tmp/config_{{ inventory_hostname }}.txt
netplan get >> /tmp/config_{{ inventory_hostname }}.txt 2>&1 || true
fi
else
echo "!!! Netplan non présent sur ce système." >> /tmp/config_{{ inventory_hostname }}.txt
fi
args:
creates: "/tmp/config_{{ inventory_hostname }}.txt"
# -------------------------------------------------------
# Étape 2 Envoyer le résultat en WebDav à un serveur NAS
# -------------------------------------------------------
- name: Upload vers NAS via WebDAV
shell: |
curl -k -u '{{ nas_user }}:{{ nas_pass }}' \
-T /tmp/config_{{ inventory_hostname }}.txt \
"{{ nas_url }}{{ nas_path }}/config_{{ inventory_hostname }}.txt"
delegate_to: "{{ inventory_hostname }}"