ansible.builtin.sysvinit 模块 – 管理 SysV 服务。

注意

此模块是 ansible-core 的一部分,包含在所有 Ansible 安装中。在大多数情况下,即使不指定 collections 关键字,也可以使用简短的模块名称 sysvinit。但是,我们建议您使用 完全限定的集合名称 (FQCN) ansible.builtin.sysvinit,以便轻松链接到模块文档并避免与可能具有相同模块名称的其他集合发生冲突。

概要

  • 控制使用 SysV init 系统的目标主机上的服务。

需求

在执行此模块的主机上需要以下需求。

  • 被管理的服务具有相应的 init 脚本。

参数

参数

注释

arguments

别名:args

字符串

命令行上提供的一些 init 脚本接受的其他参数。

daemonize

布尔值

让模块作为守护进程运行,因为服务本身可能无法正确地做到这一点。

这对于编写不良的 init 脚本或守护进程很有用,这通常表现为任务挂起,因为它仍然持有 tty,或者当任务结束时服务死亡,因为连接关闭了会话。

选项

  • false ← (默认)

  • true

enabled

布尔值

服务是否应在启动时启动。至少需要 state 和 enabled 中的一个。

选项

  • false

  • true

name

别名:service

字符串 / 必需

服务的名称。

pattern

字符串

要查找的子字符串,就像在 *ps* 命令的输出中找到的那样,作为状态结果的替代。

如果找到该字符串,则认为服务正在运行。

此选项主要用于不支持“status”选项的 init 脚本。

runlevels

列表 / 元素=字符串

此脚本应从中启用/禁用的运行级别。

使用此选项可以覆盖包或 init 脚本本身设置的默认值。

sleep

整数

如果服务正在 restartedreloaded,则在停止和启动命令之间休眠这么多秒。这有助于解决行为不良的服务。

默认值: 1

state

字符串

started/stopped 是幂等操作,除非必要,否则不会运行命令。并非所有 init 脚本都原生支持 restartedreloaded,因此这些操作都会根据需要触发停止和启动。

选项

  • "started"

  • "stopped"

  • "restarted"

  • "reloaded"

属性

属性

支持

描述

check_mode

支持:完全支持

可以在 check_mode 下运行并返回更改状态预测,而无需修改目标,如果不支持,则会跳过该操作。

diff_mode

支持:不支持

在 diff 模式下,将返回有关已更改内容(或在 check_mode 中可能需要更改的内容)的详细信息

platform

平台: posix

可以对其进行操作的目标操作系统/系列

备注

注意

  • 除了 name 之外,还需要一个选项。

  • 服务名称可能因特定操作系统/发行版而异

示例

- name: Make sure apache2 is started
  ansible.builtin.sysvinit:
      name: apache2
      state: started
      enabled: yes

- name: Sleep for 5 seconds between stop and start command of badly behaving service
  ansible.builtin.sysvinit:
    name: apache2
    state: restarted
    sleep: 5

- name: Make sure apache2 is started on runlevels 3 and 5
  ansible.builtin.sysvinit:
      name: apache2
      state: started
      enabled: yes
      runlevels:
        - 3
        - 5

返回值

常见的返回值已在此处记录,以下是此模块独有的字段

描述

results

复杂类型

采取的操作结果

返回:始终

name

字符串

服务的名称

返回:始终

示例: "apache2"

status

字典

服务的状态

返回:已更改

示例: {"enabled": {"changed": true, "rc": 0, "stderr": "", "stdout": ""}, "stopped": {"changed": true, "rc": 0, "stderr": "", "stdout": "Stopping web server: apache2.\n"}}

作者

  • Ansible 核心团队