Ansible et AWX - Create Local File

Dans AWX (Ansible Tower), chaque tâche s’exécute dans un environnement d’exécution isolé pour assurer la sécurité et la stabilité des playbooks. Cet environnement restreint limite l’accès aux ressources du système hôte, y compris la création ou la modification de fichiers locaux.

Pour y remédier il est possible d’utiliser le module ansible delegate_to en précisant le nom de la machibe hôte où s’exécute le playbook. Il est possible de préciser directement localhost, l‘@IP du localhost ou son DNS.

---
- name: GET local and distant hostnames | send the created local file via mail
hosts: all
gather_facts: no
vars:
my_localhost: my.localhost.org

tasks:

- name: GET DATE | FROM LOCALHOST
delegate_to: "{{ my_localhost }}"
command: date "+%Y-%m-%d-%H-%M"
register: current_date
run_once: true

- name: CREATE FILE | ON LOCALHOST
delegate_to: "{{ my_localhost }}"
file:
path: "/tmp/hostnames_{{ current_date.stdout }}.txt"
state: touch
mode: '0644'

- name: WRITE FILE | Write on LOCALHOST file
delegate_to: "{{ my_localhost }}"
run_once: no
ignore_errors: yes
lineinfile:
dest: "/tmp/hostnames_{{ current_date.stdout }}.txt"
line: |
────────────────────────────────
DATE: {{ current_date.stdout }}
────────────────────────────────
LOCAL HOST {{ my_localhost }}
REMOTE HOST {{ inventory_hostname }}
────────────────────────────────

- name: SEND MAIL | Send mail with attached report form LOCALHOST
delegate_to: "{{ my_localhost }}"
run_once: true
mail:
host: mail.my.compagny.org
to: [email protected]
subject: "Hostnames Report"
body: "Please find in attached file the report."
attach:
- "/tmp/hostnames_{{ current_date.stdout }}.txt"

Vous devriez recevoir un mail avec un fichier.txt en attachement contenant :

────────────────────────────────
DATE: 2024-10-16-11-30
────────────────────────────────
LOCAL HOST localhost.my.compagny.org
REMOTE HOST awesome-remote-server.org
────────────────────────────────

Documentation

Doc Ansible

Remerciement

Quentin E.

Merci à Quentin E. pour l'astuce.

> Partager <