在 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
我 运行 正在使用两个不同的服务器,每个服务器都有不同的 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