我想(step1)更改postgresql配置文件,(step2)重启服务然后(step3)添加db user。
../角色/ postgres的/任务/ main.yml
- name: change postgre pg_hba.conf
template: src=pg_hba.conf.j2 dest=/etc/postgresql/9.4/main/pg_hba.conf
notify: restart postgresql service
tags: pg_hba
- name: set password for postgres
postgresql_user:
db: postgres
user: postgres
password: postgres
../角色/ postgres的/处理/ main.yml
---
- name: restart postgresql service
service: name=postgresql state=restarted enabled='yes'
postgres.yml
- hosts: postgresql_server
remote_user: ubuntu
become: true
become_method: sudo
become_user: root
roles:
- role: postgres
问题:ansible角色的真正工作流程是:step1 - >步骤3 - >步骤2。
我可以通过将处理程序任务移动到../roles/postgres/tasks/main.yml
来修复它,但无论配置文件是否更改,它都会重新启动服务。
此类请求的最佳做法是什么?
答案 0 :(得分:1)
在需要它的任务之前用meta: flush_handlers
刷新处理程序:
- name: change postgre pg_hba.conf
template: src=pg_hba.conf.j2 dest=/etc/postgresql/9.4/main/pg_hba.conf
notify: restart postgresql service
tags: pg_hba
- meta: flush_handlers
- name: set password for postgres
postgresql_user:
db: postgres
user: postgres
password: postgres