如何仅引用ansible中的角色处理程序?

时间:2015-06-02 08:26:16

标签: ansible ansible-playbook

我正在使用ansible来配置和部署到计算机。在我的配置文件中,我有安装pm2的角色。

provision.yml:

roles:
  - franklinkim.pm2

include:
  - deploy.yml

但是在部署文件中我更新了东西,需要触发重启

deploy.yml:

tasks:
- name: Pull sources from the repository.
  git: repo=https://mygit.com/someproj.net.git dest={{ project_root }}/someproj version={{ branch }} 
  notify:
    - restart pm2

当然,如果我只运行deploy.yml文件,那么它将失败,因为它没有引用pm2。我可以在那里添加pm2角色,但这没有意义,provision.yml的东西以root身份运行,但deploy.yml的东西以用户身份运行。

处理此问题的正常方法是什么?基本上我需要从一个在角色中定义但不从该角色执行任务的剧本中触发处理程序。

1 个答案:

答案 0 :(得分:0)

您需要在剧本或 ../ handlers / main.yml 中定义处理程序。 当然pm2必须是远程计算机上的服务,并且你需要sudo权限。

handlers:
  - name: restart pm2
    service: name=pm2 state=restarted