私の目的は、辞書のリストを動的に生成し、必要な役割を果たすことです。ロールの変数を可能な遊びで生成する
私は変数を生成することができましたが、今はその役割に渡すことができません。
これは私の遊びである:私は私の変数を生成するタスクで
- hosts:
- some-hosts
tasks:
- name: create zkh var
vars:
zkh: []
set_fact:
zkh: "{{ zkh + [ {'host': item.1, 'id': item.0} ] }}"
with_indexed_items: "{{ groups.some-hosts }}"
roles:
- {role: ansible-zookeeper, zookeeper_hosts: "{{ zkh }}" }
が、(私は想像)、私はそれが定義されている範囲にアクセスすることができないとして、私はロールにそれを渡すことはできません("AnsibleUndefinedVariable: ERROR! ERROR! 'zkh' is undefined"}
)。
プレイレベルの変数を定義し、それにset_fact
と値を割り当て、新しいタスクを割り当てて、zkh
の値を指定しても役立たない。
どうすればこの問題を解決できますか?私はあなたのset_fact
が正常に動作していることを想定しています
- hosts:
- some-hosts
tasks:
- name: create zkh var
vars:
zkh: []
set_fact:
zkh: "{{ zkh + [ {'host': item.1, 'id': item.0} ] }}"
with_indexed_items: "{{ groups.some-hosts }}"
- {role: ansible-zookeeper, zookeeper_hosts: "{{ zkh }}" }
:
'tasks'の代わりに' pre_tasks'を使って変数を作成してみてください。それでは、var – shaps
にアクセスできるはずです。 –
@shaps、私はそれを受け入れることができるように答えとしてそれを書いてください! –