Tôi đang cố truy xuất ID nhóm của hai nhóm ( syslog
và utmp
) bằng tên bằng cách sử dụng tác vụ Ansible. Đối với mục đích thử nghiệm, tôi đã tạo một playbook để lấy thông tin từ chính máy chủ 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
Thật không may, tôi gặp lỗi sau khi chạy Playbook:
fatal: [hostname] => error while evaluating conditional: gid_syslog.rc != 0
Làm cách nào tôi có thể hợp nhất một tác vụ như thế này thành một dạng tham số hóa trong khi đăng ký các biến riêng biệt , một biến cho mỗi mục để sử dụng sau này? Vì vậy, mục tiêu là có các biến dựa trên tên nhóm mà sau đó có thể được sử dụng trong các nhiệm vụ sau.
Tôi đang sử dụng int
bộ lọc trên gid_syslog.stdout
và gid_utmp.stdout
thực hiện một số tính toán dựa trên GID trong các tác vụ sau.
Tôi cũng đã thử sử dụng gid.{{item}}
và gid[item]
thay vì gid_{{item}}
vô ích.
Sau đây hoạt động tốt tương phản với ở trên:
---
- 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