Я намагаюся отримати ідентифікатор групи двох груп ( syslog
і utmp
) за назвою, використовуючи завдання Ansible. З метою тестування я створив ігрову книжку, щоб отримати інформацію від самого хазяїна 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
На жаль, я отримую таку помилку під час запуску книги.
fatal: [hostname] => error while evaluating conditional: gid_syslog.rc != 0
Як я можу об'єднати таке завдання в параметризовану форму, реєструючи окремі змінні, по одній на предмет , для подальшого використання? Таким чином, мета - мати змінні на основі назви групи, які потім можуть бути використані в наступних завданнях.
Я використовую int
фільтр gid_syslog.stdout
і gid_utmp.stdout
роблю деякий розрахунок на основі GID в наступних завданнях.
Я також спробував використовувати gid.{{item}}
і gid[item]
замість цього gid_{{item}}
безрезультатно.
На відміну від вищенаведеного, добре працює наступне:
---
- 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