Bir Ansible görevi kullanarak iki grubun ( syslog
ve utmp
) grup kimliğini adıyla almaya çalışıyorum . Test amacıyla, Ansible sunucusundan bilgi almak için bir oyun kitabı oluşturdum.
---
- 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
Ne yazık ki, playbook'u çalıştırırken aşağıdaki hatayı alıyorum:
fatal: [hostname] => error while evaluating conditional: gid_syslog.rc != 0
Böyle bir görevi daha sonra kullanmak üzere her öğe için ayrı değişkenler kaydederken parametreli bir forma nasıl birleştirebilirim ? Bu nedenle amaç , daha sonra görevlerde kullanılabilecek grup adına dayalı değişkenlere sahip olmaktır.
Ben kullanıyorum int
filtreyi gid_syslog.stdout
ve gid_utmp.stdout
daha sonraki görevlerde GID dayalı bazı hesaplama yapmak.
Ayrıca boşuna kullanmak yerine gid.{{item}}
ve gid[item]
kullanmayı denedim gid_{{item}}
.
Yukarıdakilerin aksine aşağıdakiler iyi çalışır:
---
- 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