1
2つの変数をマージする方法が見つかりません。 彼らは私のプレイブックのいくつかの部分で使用されているので、彼らはこの構造にとどまっていなければなりません。2つの複雑な辞書を不可能なプレイブックに統合する
ホストが特定のグループに属している場合、特別なssh公開鍵を設定します。
ホスト:
...
[special-bla]
blahost1
blahost2
...
VARS:私のansible脚本で
user_list:
- user: root
uid: 0
# ... other A settings ...
keys:
- {
file: files/ssh/pubkeys/admin1.pub,
options: 'from="10.28.89.0/24"',
}
- {
file: files/ssh/pubkeys/admin2.pub,
options: 'from="10.28.89.0/24"',
}
- {
file: files/ssh/pubkeys/admin3.pub,
options: 'from="10.28.10.32,10.28.89.0/24"',
}
と
special_users:
special_bla_users:
- user: root
# ... other B settings ...
keys:
- {
file: files/ssh/pubkeys/bla/bla_admin.pub,
options: 'from="10.0.0.1"',
}
私はホストが特定のグループ内にある場合に応じて、special_local_usersリストを作成します。
- name: Create special_local_users list
set_fact:
special_local_user_list: |
{% for item in special_host_groups -%}
{% set section= item ~ '_users' %}
{% if special_users[section] is defined -%}
{% for user in special_users[section] -%}
{{ user | to_json }},
{%- endfor %}
{%- endif %}
{%- endfor %}
ここでは、2つのリストの設定をマージします。
user_list:
- user: root
uid: 0
# ... other A settings ...
# ... other B settings ...
keys:
- {
file: files/ssh/pubkeys/admin1.pub,
options: 'from="10.28.89.0/24"',
}
- {
file: files/ssh/pubkeys/admin2.pub,
options: 'from="10.28.89.0/24"',
}
- {
file: files/ssh/pubkeys/admin3.pub,
options: 'from="10.28.10.32,10.28.89.0/24"',
}
- {
file: files/ssh/pubkeys/bla/bla_admin.pub,
options: 'from="10.0.0.1"',
}
でJinja2の私の知識をもたらすべきであるこれは非常に限られているので、私は道を見つけることができませんでした。
アイデア? ありがとうございます!尋ねるため