ansible.builtin.service_facts 模块 – 以事实数据形式返回服务状态信息

注意

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

概述

  • 以事实数据形式返回各种服务管理实用程序的服务状态信息。

要求

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

  • 以下任何受支持的初始化系统:systemd、sysv、upstart、openrc、AIX SRC

属性

属性

支持

描述

check_mode

支持:完全支持

可以在 check_mode 下运行,并在不修改目标的情况下返回更改状态预测,如果不受支持,则将跳过操作。

diff_mode

支持:不支持

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

facts

支持:完全支持

操作返回一个 ansible_facts 字典,该字典将更新现有的主机事实

platform

平台: posix

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

说明

注意

  • 访问由此模块收集的 ansible_facts.services 事实时,建议不要使用“点表示法”,因为服务在其名称中可能包含 - 字符,这会导致“点表示法”无效,例如 ansible_facts.services.zuul-gateway。相反,建议使用服务名称的字符串值作为键,以便获取事实数据值,例如 ansible_facts.services['zuul-gateway']

  • AIX SRC 在版本 2.11 中添加。

示例

- name: Populate service facts
  ansible.builtin.service_facts:

- name: Print service facts
  ansible.builtin.debug:
    var: ansible_facts.services

- name: show names of existing systemd services, sometimes systemd knows about services that were never installed
  debug: msg={{ existing_systemd_services | map(attribute='name') }}
  vars:
     known_systemd_services: "{{ ansible_facts['services'].values() | selectattr('source', 'equalto', 'systemd') }}"
     existing_systemd_services: "{{ known_systemd_services | rejectattr('status', 'equalto', 'not-found') }}"

- name: restart systemd service if it exists
  service:
    state: restarted
    name: ntpd.service
  when: ansible_facts['services']['ntpd.service']['status'] | default('not-found') != 'not-found'

返回的事实

此模块返回的事实将添加到 hostvars 主机事实中或更新其中的内容,并且可以像其他主机事实一样按名称引用。它们不需要注册才能使用。

描述

services

列表 / 元素=字典

服务的狀態,以服务名称作为键。

返回:始终

name

字符串

服务的名称。

返回:始终

示例: "arp-ethers.service"

source

字符串

服务的初始化系统。

以下是其中之一: rcctlsystemdsysvupstartsrc

返回:始终

示例: "sysv"

state

字符串

服务的狀態。

这通常包括(但不限于)以下内容:failedrunningstoppedunknown

根据使用的初始化系统,可能会返回其他状态。

返回:始终

示例: "running"

status

字符串

服务的狀態。

以下是其中之一:enableddisabledstaticindirectunknown

返回:systemd 系统或 RedHat/SUSE 风格的 sysvinit/upstart 或 OpenBSD

示例: "enabled"

作者

  • Adam Miller (@maxamillion)