Queremos mostrarte la mejor solución que encontramos online. Nuestro deseo es que te sea de mucha ayuda y si deseas comentarnos alguna mejora puedes hacerlo..
Solución:
El comando ansible localhost -m setup
básicamente dice “ejecutar el módulo de configuración contra localhost”, y el módulo de configuración recopila los hechos que ve en la salida.
Cuando ejecutas el echo
comando estos hechos no existen ya que el módulo de configuración no se ejecutó. Un mejor método para probar cosas como esta sería usar ansible-playbook para ejecutar un libro de jugadas que se vea así:
- hosts: localhost
tasks:
- debug: var=ansible_date_time
- debug: msg="the current date is ansible_date_time.date "
Debido a que esto se ejecuta como un libro de jugadas, los datos para localhost se recopilan antes de que se ejecuten las tareas. El resultado del libro de jugadas anterior será algo como esto:
PLAY [localhost] **************************************************
GATHERING FACTS ***************************************************************
ok: [localhost]
TASK: [debug var=ansible_date_time] *******************************************
ok: [localhost] =>
"ansible_date_time":
"date": "2015-07-09",
"day": "09",
"epoch": "1436461166",
"hour": "16",
"iso8601": "2015-07-09T16:59:26Z",
"iso8601_micro": "2015-07-09T16:59:26.896629Z",
"minute": "59",
"month": "07",
"second": "26",
"time": "16:59:26",
"tz": "UTC",
"tz_offset": "+0000",
"weekday": "Thursday",
"year": "2015"
TASK: [debug msg="the current date is ansible_date_time.date "] **********
ok: [localhost] =>
"msg": "the current date is 2015-07-09"
PLAY RECAP ********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0
El módulo de búsqueda de ansible funciona bien para mí. El yml es:
- hosts: test
vars:
time: " lookup('pipe', 'date -d "1 day ago" +"%Y%m%d"') "
Puede reemplazar cualquier comando con fecha para obtener el resultado del comando.
Tenga en cuenta que el ansible
El comando no recopila hechos, pero el ansible-playbook
el comando lo hace. al correr ansible -m setup
el módulo de configuración ejecuta la recopilación de hechos para que obtenga los hechos, pero al ejecutar ansible -m command
no es. Por lo tanto, los hechos no están disponibles. Esta es la razón por la que las otras respuestas incluyen archivos YAML del libro de jugadas e indican que la búsqueda funciona.
Tienes la opción de añadir valor a nuestro contenido cooperando tu veteranía en las notas.