¿Cómo puedo registrar inventario_hostname en un archivo en el control remoto usando un Playbook?

¿Cómo puedo registrar inventario_hostname en un archivo en el control remoto usando un Playbook?

Estoy intentando escribir el nombre de host del inventario en un archivo remoto para su posterior procesamiento (eventualmente un archivo de datos remoto). El siguiente host tiene el nombre de host físico calvin.mydomain, sin embargo, el controlador se conecta a él usando el nombre de host de inventario (DNS diferente), calvin.test.mydomainpor lo que no puedo usar las -m setupvariables de hecho que solo recopilan información desde la perspectiva remota (AFAIK).

Pensé que podría hacer esto exportando una variable de entorno al control remoto y luego escribiéndola en un archivo, pero eso solo produce la palabra literal.nombre_host_inventario.

¿Cómo puedo escribir hostvars[inventory_hostname]o {{inventory_hostname}}en un archivo /etc/ansible/facts.d/en el control remoto?

sudo ansible-playbook ./playbooks/hostname.yml -k -u root -i calvin.test.mydomain,
TASK [echo the LAN_HOSTNAME environment var] *******...
changed: [calvin.my.testing.dom]

este es mi libro de jugadas

---
- hosts: all
  tasks:
      - name: "echo the LAN hostname into a file on the remote"
        shell: "echo $LAN_HOSTNAME > /tmp/hostname.ans"
        environment:
            LAN_HOSTNAME: inventory_hostname

Respuesta1

necesario para usar esto (cambiado a copylo sugerido por @Michael Hampton):

---
- hosts: all
  tasks:
   - name: "Create custom fact directory"
     file:
         path: "/etc/ansible/facts.d"
         state: "directory"

   - name: "Insert custom fact file"
     copy:
         content: "#!/bin/bash\necho {\\\"ansible_LAN_hostname\\\" : \\\"{{ inventory_hostname }}\\\"}"
         dest: /etc/ansible/facts.d/lan_hostname.fact
         owner: root
         group: sysadmin
         mode: 0775

información relacionada