我想从 Jinja2 模板安装 systemd 服务。我该怎么做?
我是否必须使用copy
模块将文件复制到/lib/systemd/system
,然后使用systemd
模块启用它?
有更好的方法吗?
最佳答案
我使用template
模块将.service
文件安装到/etc/systemd/system
中。根据this digital ocean blog post /lib/systemd/system
应保留用于与操作系统本身捆绑的软件包,并且应在 /etc/systemd/system
中定义第三方服务。
使用 ansible 的 systemd
模块,我可以使用 daemon_reload=yes
启动服务。
在 Ansible 2.2 之前:之后我会执行一个 systemctl daemon-reload
(如果合适的话可以使用 ansible 处理程序)来促使 systemd 获取新文件.
- name: install myservice systemd unit file
template: src=myservice.j2 dest=/etc/systemd/system/myservice.service
- name: start myservice
systemd: state=started name=myservice daemon_reload=yes
# For ansilble < 2.2 only
#- name: reload systemd unit configuration
# command: systemctl daemon-reload
关于ansible - 如何使用 Ansible 安装 systemd 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40113964/