ฉันพยายามดึง ID กลุ่มของสองกลุ่ม ( syslog
และutmp
) ตามชื่อโดยใช้งาน Ansible สำหรับวัตถุประสงค์ในการทดสอบฉันได้สร้าง playbook เพื่อดึงข้อมูลจาก Ansible host เอง
---
- 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
น่าเสียดายที่ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อเรียกใช้ playbook:
fatal: [hostname] => error while evaluating conditional: gid_syslog.rc != 0
ฉันจะรวมงานเช่นนี้เป็นรูปแบบ parametrized ในขณะที่ลงทะเบียนตัวแปรแยกกันหนึ่งรายการต่อรายการเพื่อใช้ในภายหลังได้อย่างไร ดังนั้นเป้าหมายคือการมีตัวแปรตามชื่อกลุ่มซึ่งสามารถใช้ในงานต่อมาได้
ฉันใช้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