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

布尔值

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

选项

  • false ← (默认)

  • true

属性

属性

支持

描述

check_mode

支持:完全支持

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

diff_mode

支持:不支持

在差异模式下,将返回有关已更改内容(或可能需要在 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"

status

复杂

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"

MainPID

整数

返回:成功

示例: 661

已暂停

布尔值

返回:成功

示例:false

ReadyAfterRun

布尔值

返回:成功

示例:false

RemainAfterExit

布尔值

返回:成功

示例:false

Required-By

列表 / 元素=字符串

返回:成功

示例: []

RestartExitStatusCode

整数

返回:成功

示例: 0

RestartExitStatusNumber

整数

返回:成功

示例: 0

RestartTimestamp

整数

返回:成功

示例: 4611686019935648081

RestartUTCTimestamp

整数

返回:成功

示例: 1508260140

RunExitStatusCode

整数

返回:成功

示例: 0

RunExitStatusNumber

整数

返回:成功

示例: 0

RunTimestamp

整数

返回:成功

示例: 4611686019935648081

RunUTCTimestamp

整数

返回:成功

示例: 1508260140

StartExitStatusCode

整数

返回:成功

示例: 1

StartExitStatusNumber

整数

返回:成功

示例: 0

StartTimestamp

整数

返回:成功

示例: 4611686019935648081

StartUTCTimestamp

整数

返回:成功

示例: 1508260140

StopExitStatusCode

整数

返回:成功

示例: 0

StopExitStatusNumber

整数

返回:成功

示例: 0

Stopped-By

列表 / 元素=字符串

返回:成功

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

StopTimestamp

整数

返回:成功

示例: 4611686019935648081

StopUTCTimestamp

整数

返回:成功

示例: 1508260140

Timestamp

整数

返回:成功

示例: 4611686019935648081

UTCTimestamp

整数

返回:成功

示例: 1508260140

Want

字符串

返回:成功

示例: "nothing"

Wanted-By

列表 / 元素=字符串

返回:成功

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

Wants

列表 / 元素=字符串

返回:成功

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

user

布尔值

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

返回:成功

示例:false

作者

  • Thomas Caravia (@tacatac)