Estou tentando recuperar a identificação do grupo de dois grupos ( syslog
e utmp
) pelo nome usando uma tarefa Ansible. Para fins de teste, criei um manual para recuperar as informações do próprio 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
Infelizmente, recebo o seguinte erro ao executar o manual:
fatal: [hostname] => error while evaluating conditional: gid_syslog.rc != 0
Como consolidar uma tarefa como esta em um formulário parametrizado enquanto registro variáveis separadas , uma por item , para uso posterior? Portanto, o objetivo é ter variáveis baseadas no nome do grupo que possam ser usadas em tarefas posteriores.
Estou usando o int
filtro gid_syslog.stdout
e gid_utmp.stdout
para fazer alguns cálculos com base no GID em tarefas posteriores.
Eu também tentei usar gid.{{item}}
e em gid[item]
vez de gid_{{item}}
sem sucesso.
O seguinte funciona bem em contraste com o acima:
---
- 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
O fato do conjunto suporta variáveis, em oposição à declaração da solução anterior
fonte