存储库:https://github.com/patsevanton/ansible-role-patroni-question 库存:
[all]
node1 ansible_host=192.168.88.95
node2 ansible_host=192.168.88.96
node3 ansible_host=192.168.88.97
[patroni]
node1
node2
node3
默认主Yaml文件 https://github.com/patsevanton/ansible-role-patroni-question/blob/master/defaults/main.yml#L115
如何将清单中的IP节点设置为default / main.yaml? 这不是模板!这是default / main.yaml。
答案 0 :(得分:0)
该角色在defaults
中的事实表明,它是设计的,供您覆盖。
因此:
- hosts: patroni
roles:
- patsevanton.patroni-question
vars:
patroni_bootstrap_pg_hba: >-
[
{%- set thing = { "type": "host", "database": "replication", "user": patroni_replication_username, "method": "md5" } -%}
{%- for h, v in dict(hostvars).items() -%}
{%- set _ = thing.update({"address": v.ansible_host}) -%}
{{ "" if loop.first else "," }}
{{ thing | to_json }}
{%- endfor -%}
]
将pg_hba
定义拉到角色之外意味着您现在也必须指定replication_username
,因为外部剧本无法(轻松地)查看角色以获取现有的默认值。当使用默认设计不佳的角色时,最喜欢。