Saltar al contenido

Variable de fecha Ansible

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 setupel 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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *