我正在使用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的东西以用户身份运行。
处理此问题的正常方法是什么?基本上我需要从一个在角色中定义但不从该角色执行任务的剧本中触发处理程序。
答案 0 :(得分:0)
您需要在剧本或 ../ handlers / main.yml 中定义处理程序。
当然pm2
必须是远程计算机上的服务,并且你需要sudo权限。
handlers:
- name: restart pm2
service: name=pm2 state=restarted