Próbuję pobrać identyfikator grupy dwóch grup ( syslog
i utmp
) według nazwy za pomocą zadania Ansible. Do celów testowych stworzyłem podręcznik, aby pobrać informacje z samego hosta 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
Niestety podczas uruchamiania playbooka pojawia się następujący błąd:
fatal: [hostname] => error while evaluating conditional: gid_syslog.rc != 0
Jak skonsolidować takie zadanie w sparametryzowaną formę, rejestrując osobne zmienne, po jednej na element , do późniejszego wykorzystania? Dlatego celem jest posiadanie zmiennych opartych na nazwie grupy, które mogą być następnie wykorzystane w późniejszych zadaniach.
Używam int
filtra gid_syslog.stdout
i gid_utmp.stdout
wykonuję obliczenia na podstawie GID w późniejszych zadaniach.
Próbowałem także użyć gid.{{item}}
i gid[item]
zamiast gid_{{item}}
bezskutecznie.
Następujące działa dobrze w przeciwieństwie do powyższego:
---
- 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