Ansible 작업을 사용하여 이름 으로 두 그룹 ( syslog
및 utmp
) 의 그룹 ID를 검색하려고합니다 . 테스트 목적으로 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