ansible 常用模块 systemd
模块说明
-
控制远程主机上的 systemd 单元(服务、计时器等)。
参数说明
Parameter |
Comments |
---|---|
daemon_reexec aliases: daemon-reexec boolean added in Ansible 2.8 |
在执行任何其他操作之前运行 daemon_reexec 命令,systemd 管理器将序列化管理器状态。 Choices:
|
daemon_reload aliases: daemon-reload boolean |
在执行任何其他操作之前运行 daemon-reload,以确保 systemd 已读取任何更改。 当设置为 true 时,即使模块没有启动或停止任何东西,也会运行 daemon-reload。 Choices:
|
enabled boolean |
设备是否应在开机时启动。至少需要 state 和 enabled 之一。 Choices:
|
force boolean added in Ansible 2.6 |
是否覆盖现有的符号链接。 Choices:
|
masked boolean |
不管单位要不要屏蔽,被屏蔽的单位是不可能启动的。 Choices:
|
name aliases: service, unit string |
单位名称。此参数只使用一个单元的名称。 当没有给出扩展时,它被隐含到作为systemd的.service。 在chroot环境中使用时,您总是需要指定带有扩展名的单元的名称。例如,cron.service。 |
no_block boolean added in Ansible 2.3 |
不要同步等待请求的操作完成。排队的作业将继续进行,而 Ansible 不会在其完成时进行阻塞。 Choices:
|
scope string added in Ansible 2.7 |
在给定的服务管理器范围内运行systemctl,作为默认的系统范围系统、当前用户的范围用户或全局所有用户的范围。 要使systemd与“user”一起工作,执行用户必须启动并访问自己的dbus实例(systemd要求)。 用户dbus进程通常在正常登录期间启动,但在运行Ansible任务期间不启动。否则,您可能会得到一个“无法连接到总线:没有这样的文件或目录”错误。 用户必须具有访问权限,通常通过设置XDG_RUNTIME_DIR变量进行访问,请参阅下面的示例。 Choices:
|
state string |
started/stopped 是幂等操作,除非必要,否则不会运行命令。重新启动将始终反弹单位。重新加载将始终重新加载。 Choices:
|
示例
- name: Make sure a service unit is running
ansible.builtin.systemd:
state: started
name: httpd
- name: Stop service cron on debian, if running
ansible.builtin.systemd:
name: cron
state: stopped
- name: Restart service cron on centos, in all cases, also issue daemon-reload to pick up config changes
ansible.builtin.systemd:
state: restarted
daemon_reload: true
name: crond
- name: Reload service httpd, in all cases
ansible.builtin.systemd:
name: httpd.service
state: reloaded
- name: Enable service httpd and ensure it is not masked
ansible.builtin.systemd:
name: httpd
enabled: true
masked: no
- name: Enable a timer unit for dnf-automatic
ansible.builtin.systemd:
name: dnf-automatic.timer
state: started
enabled: true
- name: Just force systemd to reread configs (2.4 and above)
ansible.builtin.systemd:
daemon_reload: true
- name: Just force systemd to re-execute itself (2.8 and above)
ansible.builtin.systemd:
daemon_reexec: true
- name: Run a user service when XDG_RUNTIME_DIR is not set on remote login
ansible.builtin.systemd:
name: myservice
state: started
scope: user
environment:
XDG_RUNTIME_DIR: "/run/user/{{ myuid }}"
参考文档
https://docs.ansible.com/ansible/latest/collections/ansible/builtin/systemd_module.html#ansible-collections-ansible-builtin-systemd-module