在 Ansible 上,如何根据 host/service 使用不同的 postgresql.conf 文件?

On Ansible, how do I use different postgresql.conf files depending on the host/service?

我 运行 正在使用两个不同的服务器,每个服务器都有不同的 postgres 用例,因此我希望每个 postgres 服务 运行不同的配置(在 postgresql.conf 中定义)。

postgresql当前的ansible设置如下,其中postgresql是role:

postgresql
├── handlers
│   └── main.yml
├── tasks
│   └── main.yml
└── templates
    ├── pg_hba.conf
    └── postgresql.conf

我的 objective 是了解执行此操作的最佳做​​法是什么,而不必为 postgresql.conf 文件提供不同的名称(如果可能)。

您可以定义清单中需要使用的文件,这样:

all:
  children:
    postgress:
      hosts:
        host1:
          postgress_conf: postgresql.conf
        host2:
          postgress_conf: pg_hba.conf

然后使用剧本copy任务中的变量:

- hosts: postgress

  tasks:
    - copy:
        src: templates/{{ postgress_conf }}
        dest: /etc/postgresql/x.x/main/postgresql.conf