存储库:https://github.com/patsevanton/ansible-role-patroni-question Inventory:
[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。
发布于 2018-11-26 06:12:34
事实上,它是在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,因为外部剧本不能(容易地)向下查看角色以获取现有的默认值。C‘’est la vie当使用一个默认设计不佳的角色时。
https://stackoverflow.com/questions/53466836
复制相似问题