Я намагаюся отримати ідентифікатор групи двох груп ( 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