ansible - 如何使用 Ansible 安装 systemd 服务?

标签 ansible systemd

我想从 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/

相关文章:

ansible - vars 文件夹中的 main.yml 文件在 ansible 角色中的用途是什么?

filter - Ansible/Jinja2 - 映射列表中的嵌套键

docker - 在一台机器上模拟的服务器和客户端网络应用

linux - 从 systemd 启动主进程时无法分 ionic 进程

linux - Docker 守护进程在启动后不久就被杀死

gunicorn 守护进程(事件 : failed)/curl(56) Recv Failure: Connection reset by peer

linux - 指定直接主机的 Ansible ad-hoc 命令 - 没有匹配的主机

linux - 使用 Ansible 自动设置加密分区

jinja2 - 可以使用Ansible/Jinja2整理列表列表吗?

systemd - 运行systemctl enable时 "Failed to execute operation: Invalid argument"是什么意思?