Ansibleタスクを使用して、2つのグループ(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
このようなタスクをパラメーター化されたフォームに統合するには、後で使用するために、項目ごとに1つの変数を登録しますか?したがって、目標は、後のタスクで使用できるグループ名に基づいた変数を持つことです。
私が使用している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