Estoy tratando de recuperar el ID de grupo de dos grupos ( syslog
y utmp
) por nombre usando una tarea Ansible. Para fines de prueba, he creado un libro de jugadas para recuperar la información del host Ansible.
---
- name: My playbook
hosts: enabled
sudo: True
connection: local
gather_facts: False
tasks:
- name: Determine GIDs
shell: "getent group {{ item }} | cut -d : -f 3"
register: gid_{{item}}
failed_when: gid_{{item}}.rc != 0
changed_when: false
with_items:
- syslog
- utmp
Lamentablemente, aparece el siguiente error al ejecutar el libro de jugadas:
fatal: [hostname] => error while evaluating conditional: gid_syslog.rc != 0
¿Cómo puedo consolidar una tarea como esta en una forma parametrizada al registrar variables separadas , una por elemento , para su uso posterior? Por lo tanto, el objetivo es tener variables basadas en el nombre del grupo que luego puedan usarse en tareas posteriores.
Estoy usando el int
filtro gid_syslog.stdout
y gid_utmp.stdout
para hacer algunos cálculos basados en el GID en tareas posteriores.
También intenté usar gid.{{item}}
y en gid[item]
lugar de gid_{{item}}
nada.
Lo siguiente funciona bien en contraste con lo anterior:
---
- name: My playbook
hosts: enabled
sudo: True
connection: local
gather_facts: False
tasks:
- name: Determine syslog GID
shell: "getent group syslog | cut -d : -f 3"
register: gid_syslog
failed_when: gid_syslog.rc != 0
changed_when: false
- name: Determine utmp GID
shell: "getent group utmp | cut -d : -f 3"
register: gid_utmp
failed_when: gid_utmp.rc != 0
changed_when: false
Establecer hecho admite variables, en oposición a la declaración de la solución anterior
fuente