我想从Jinja2模板安装systemd服务。我该怎么做?
我是否必须使用copy
模块将文件复制到/lib/systemd/system
,然后使用systemd
模块启用它?
有更好的方法吗?
答案 0 :(得分:29)
我使用template
模块将.service
文件安装到/etc/systemd/system
中。根据{{3}} /lib/systemd/system
应保留与操作系统本身捆绑的软件包,第三方服务应在/etc/systemd/system
中定义。
使用ansible的systemd
模块,我可以使用daemon_reload=yes
启动服务。
在Ansible 2.2之前:之后我做systemctl daemon-reload
(如果合适,可以使用ansible处理程序)来prod 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