community.general.nosh 模块 – 使用 nosh 管理服务

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您正在使用 ansible 软件包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,请参阅 要求 以了解详情。

要在 playbook 中使用它,请指定:community.general.nosh

概要

  • 控制系统范围或用户服务的运行和启用状态。

  • 支持 BSD 和 Linux 系统。

要求

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

  • 具有活动 nosh 服务管理器的系统,有关更多信息,请参见注释。

参数

参数

注释

enabled

布尔值

启用或禁用服务,独立于 *.preset 文件首选项或运行状态。与 preset 互斥。将在 state=reset 之前生效。

选项

  • false

  • true

name

字符串 / 必需

要管理的服务的名称。

preset

布尔值

根据 *.preset 文件中的本地首选项启用或禁用服务。与 enabled 互斥。仅当设置为 true 时才有效。将在 state=reset 之前生效。

选项

  • false

  • true

state

字符串

started/stopped 是幂等操作,除非必要,否则不会运行命令。restarted 将始终重新启动服务。reloaded 将发送 SIGHUP 或启动服务。reset 将根据服务是否启用启动或停止服务。

选项

  • "started"

  • "stopped"

  • "reset"

  • "restarted"

  • "reloaded"

user

布尔值

运行与调用用户的服务管理器对话的 system-control,而不是系统范围的服务管理器。

选项

  • false ← (默认)

  • true

属性

属性

支持

描述

check_mode

支持:完全支持

可以在 check_mode 中运行并返回更改状态预测,而无需修改目标。

diff_mode

支持:不支持

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

注释

注意

示例

- name: Start dnscache if not running
  community.general.nosh:
    name: dnscache
    state: started

- name: Stop mpd, if running
  community.general.nosh:
    name: mpd
    state: stopped

- name: Restart unbound or start it if not already running
  community.general.nosh:
    name: unbound
    state: restarted

- name: Reload fail2ban or start it if not already running
  community.general.nosh:
    name: fail2ban
    state: reloaded

- name: Disable nsd
  community.general.nosh:
    name: nsd
    enabled: false

- name: For package installers, set nginx running state according to local enable settings, preset and reset
  community.general.nosh:
    name: nginx
    preset: true
    state: reset

- name: Reboot the host if nosh is the system manager, would need a "wait_for*" task at least, not recommended as-is
  community.general.nosh:
    name: reboot
    state: started

- name: Using conditionals with the module facts
  tasks:
    - name: Obtain information on tinydns service
      community.general.nosh:
        name: tinydns
      register: result

    - name: Fail if service not loaded
      ansible.builtin.fail:
        msg: "The {{ result.name }} service is not loaded"
      when: not result.status

    - name: Fail if service is running
      ansible.builtin.fail:
        msg: "The {{ result.name }} service is running"
      when: result.status and result.status['DaemontoolsEncoreState'] == "running"

返回值

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

描述

enabled

布尔值

服务在系统引导时是否启用

返回:成功

示例:true

name

字符串

用于查找服务的名称

返回:成功

示例:"sshd"

preset

布尔值

启用状态是否反映相关 *.preset 文件中设置的状态

返回:成功

示例:false

service_path

字符串

服务的已解析路径

返回:成功

示例:"/var/sv/sshd"

state

字符串

服务进程运行状态,如果服务未加载且不会启动,则为none

返回值:如果使用了 state 选项

示例: "reloaded"

状态

复杂类型

一个字典,包含 system-control show-json 返回的键值对,如果服务未加载,则为 none

返回:成功

之后

列表 / 元素=字符串

返回:成功

示例: ["/etc/service-bundles/targets/basic", "../sshdgenkeys", "log"]

之前

列表 / 元素=字符串

返回:成功

示例: ["/etc/service-bundles/targets/shutdown"]

冲突

列表 / 元素=字符串

返回:成功

示例: []

DaemontoolsEncoreState

字符串

返回:成功

示例: "running"

DaemontoolsState

字符串

返回:成功

示例: "up"

已启用

布尔值

返回:成功

示例:true

LogService

字符串

返回:成功

示例: "../cyclog@sshd"

主进程ID

整数

返回:成功

示例: 661

已暂停

布尔值

返回:成功

示例:false

运行后就绪

布尔值

返回:成功

示例:false

退出后保留

布尔值

返回:成功

示例:false

被……需要

列表 / 元素=字符串

返回:成功

示例: []

重启退出状态码

整数

返回:成功

示例: 0

重启退出状态数字

整数

返回:成功

示例: 0

重启时间戳

整数

返回:成功

示例: 4611686019935648081

重启UTC时间戳

整数

返回:成功

示例: 1508260140

运行退出状态码

整数

返回:成功

示例: 0

运行退出状态数字

整数

返回:成功

示例: 0

运行时间戳

整数

返回:成功

示例: 4611686019935648081

运行UTC时间戳

整数

返回:成功

示例: 1508260140

启动退出状态码

整数

返回:成功

示例: 1

启动退出状态数字

整数

返回:成功

示例: 0

启动时间戳

整数

返回:成功

示例: 4611686019935648081

启动UTC时间戳

整数

返回:成功

示例: 1508260140

停止退出状态码

整数

返回:成功

示例: 0

停止退出状态数字

整数

返回:成功

示例: 0

被……停止

列表 / 元素=字符串

返回:成功

示例: ["/etc/service-bundles/targets/shutdown"]

停止时间戳

整数

返回:成功

示例: 4611686019935648081

停止UTC时间戳

整数

返回:成功

示例: 1508260140

时间戳

整数

返回:成功

示例: 4611686019935648081

UTC时间戳

整数

返回:成功

示例: 1508260140

想要

字符串

返回:成功

示例: "nothing"

被……想要

列表 / 元素=字符串

返回:成功

示例: ["/etc/service-bundles/targets/server", "/etc/service-bundles/targets/sockets"]

想要

列表 / 元素=字符串

返回:成功

示例: ["/etc/service-bundles/targets/basic", "../sshdgenkeys"]

user

布尔值

是否调用用户级服务管理器

返回:成功

示例:false

作者

  • Thomas Caravia (@tacatac)