Estoy tratando de recuperar el ID de grupo de dos grupos ( syslogy 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 intfiltro gid_syslog.stdouty gid_utmp.stdoutpara 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