dellemc.openmanage.ome_discovery 模块 – 在 OpenManage Enterprise 上创建、修改或删除发现作业

注意

此模块是 dellemc.openmanage 集合(版本 9.9.0)的一部分。

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

要安装它,请使用: ansible-galaxy collection install dellemc.openmanage。您需要其他要求才能使用此模块,有关详细信息,请参阅要求

要在 playbook 中使用它,请指定:dellemc.openmanage.ome_discovery

dellemc.openmanage 3.3.0 中的新增功能

概要

  • 此模块允许创建、修改或删除发现作业。

要求

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

  • python >= 3.9.6

参数

参数

注释

ca_path

路径

在 dellemc.openmanage 5.0.0 中添加

包含用于验证的 CA 证书的隐私增强邮件 (PEM) 文件。

community_string

布尔值

启用使用 SNMP 社区字符串来接收使用 OpenManage Enterprise 中的应用程序设置的 SNMP 陷阱。此选项仅适用于发现的 iDRAC 服务器和 MX7000 机箱。

选项

  • false ←(默认)

  • true

cron

字符串

提供基于 Quartz cron 格式的 cron 表达式。

discovery_config_targets

列表 / 元素=字典

提供发现目标列表。

每个发现目标都是一组 network_address_detaildevice_types 和一个或多个协议凭据。

statepresent 时,这是必需的。

警告 不支持修改此字段,每次都会覆盖此字段。确保为此字段提供所有必需的详细信息。

device_types

列表 / 元素=字符串 / 必需

提供要发现的设备类型。

接受的类型为 SERVER、CHASSIS、NETWORK SWITCH 和 STORAGE。

可以提供上述类型的组合或所有类型。

每种设备类型支持的协议为

SERVER - wsmanredfishsnmpipmisshvmware

CHASSIS - wsmanredfish

NETWORK SWITCH - snmp

STORAGE - storagesnmp

ipmi

字典

智能平台管理接口 (IPMI)

kgkey

字符串

IPMI 协议的 KgKey。

password

字符串 / 必需

为协议提供密码。

retries

整数

输入发现设备所需的重复尝试次数。

默认值: 3

timeout

整数

输入作业必须停止运行的时间(以秒为单位)。

默认值: 60

username

字符串 / 必需

为协议提供用户名。

network_address_detail

列表 / 元素=字符串 / 必需

提供要发现或包含的设备的 IP 地址、主机名或 IP 地址范围的列表。

有效的 IP 范围格式示例

192.35.0.0

192.36.0.0-10.36.0.255

192.37.0.0/24

2345:f2b1:f083:135::5500/118

2345:f2b1:f083:135::a500-2607:f2b1:f083:135::a600

hostname.domain.tld

主机名

2345:f2b1:f083:139::22a

无效的 IP 范围格式示例

192.35.0.*

192.36.0.0-255

192.35.0.0/255.255.255.0

注意 IP 地址数量的范围大小限制为 16,385 (0x4001)。

注意 支持 IPv6 和 IPv6 CIDR 格式。

redfish

字典

REDFISH 协议。

ca_check

布尔值

启用证书颁发机构 (CA) 检查。

选项

  • false ←(默认)

  • true

certificate_data

字符串

为 CA 检查提供证书数据。

cn_check

布尔值

启用公用名 (CN) 检查。

选项

  • false ←(默认)

  • true

domain

字符串

为协议提供域。

password

字符串 / 必需

为协议提供密码。

port

整数

输入作业必须用于发现设备的端口号。

默认值: 443

retries

整数

输入发现设备所需的重复尝试次数。

默认值: 3

timeout

整数

输入作业必须停止运行的时间(以秒为单位)。

默认值: 60

username

字符串 / 必需

为协议提供用户名。

snmp

字典

简单网络管理协议 (SNMP)。

community

字符串 / 必需

SNMP 协议的社区字符串。

port

整数

输入作业必须用于发现设备的端口号。

默认值: 161

retries

整数

输入发现设备所需的重复尝试次数。

默认值: 3

timeout

整数

输入作业必须停止运行的时间(以秒为单位)。

默认值: 3

ssh

字典

安全外壳 (SSH)。

check_known_hosts

布尔值

验证已知主机密钥。

选项

  • false ←(默认)

  • true

is_sudo_user

布尔值

使用 SUDO 选项。

选项

  • false ←(默认)

  • true

password

字符串 / 必需

为协议提供密码。

port

整数

输入作业必须用于发现设备的端口号。

默认值: 22

retries

整数

输入发现设备所需的重复尝试次数。

默认值: 3

timeout

整数

输入作业必须停止运行的时间(以秒为单位)。

默认值: 60

username

字符串 / 必需

为协议提供用户名。

storage

字典

HTTPS 存储协议。

ca_check

布尔值

启用证书颁发机构 (CA) 检查。

选项

  • false ←(默认)

  • true

certificate_data

字符串

为 CA 检查提供证书数据。

cn_check

布尔值

启用公用名 (CN) 检查。

选项

  • false ←(默认)

  • true

domain

字符串

为协议提供域。

password

字符串 / 必需

为协议提供密码。

port

整数

输入作业必须用于发现设备的端口号。

默认值: 443

retries

整数

输入发现设备所需的重复尝试次数。

默认值: 3

timeout

整数

输入作业必须停止运行的时间(以秒为单位)。

默认值: 60

username

字符串 / 必需

为协议提供用户名。

vmware

字典

VMWARE 协议。

ca_check

布尔值

启用证书颁发机构 (CA) 检查。

选项

  • false ←(默认)

  • true

certificate_data

字符串

为 CA 检查提供证书数据。

cn_check

布尔值

启用公用名 (CN) 检查。

选项

  • false ←(默认)

  • true

domain

字符串

为协议提供域。

password

字符串 / 必需

为协议提供密码。

port

整数

输入作业必须用于发现设备的端口号。

默认值: 443

retries

整数

输入发现设备所需的重复尝试次数。

默认值: 3

timeout

整数

输入作业必须停止运行的时间(以秒为单位)。

默认值: 60

username

字符串 / 必需

为协议提供用户名。

wsman

字典

Web 服务管理 (WS-Man)。

ca_check

布尔值

启用证书颁发机构 (CA) 检查。

选项

  • false ←(默认)

  • true

certificate_data

字符串

为 CA 检查提供证书数据。

cn_check

布尔值

启用公用名 (CN) 检查。

选项

  • false ←(默认)

  • true

domain

字符串

为协议提供域。

password

字符串 / 必需

为协议提供密码。

port

整数

输入作业必须用于发现设备的端口号。

默认值: 443

retries

整数

输入发现设备所需的重复尝试次数。

默认值: 3

timeout

整数

输入作业必须停止运行的时间(以秒为单位)。

默认值: 60

username

字符串 / 必需

为协议提供用户名。

discovery_id

整数

发现配置组的 ID。

此值是 discovery_status 下返回值的 DiscoveryConfigGroupId。

它与 discovery_job_name 互斥。

discovery_job_name

字符串

发现配置作业的名称。

它与 discovery_id 互斥。

email_recipient

字符串

输入要向其发送关于发现作业状态通知的电子邮件地址。配置 SMTP 设置以允许向电子邮件地址发送通知。

主机名

字符串 / 必需

OpenManage Enterprise IP 地址或主机名。

ignore_partial_failure

布尔值

提供忽略部分失败的选项。当同时存在已发现和未发现的 IP 时,会发生部分失败。

如果为 false,则不忽略部分失败,并且模块将报错。

如果为 true,则忽略部分失败。

仅当 job_waittrue 时,此选项才适用。

选项

  • false ←(默认)

  • true

job_wait

布尔值

提供等待作业完成的选项。

statepresent 时,此选项适用。

选项

  • false

  • true ← (默认)

job_wait_timeout

整数

job_wait 的最大等待时间(以秒为单位)。仅在此持续时间内跟踪作业。

job_waittrue 时,此选项适用。

默认值: 10800

new_name

字符串

发现配置作业的新名称。

password

字符串

OpenManage Enterprise 密码。

如果未提供密码,则使用环境变量 OME_PASSWORD

示例:export OME_PASSWORD=password

port

整数

OpenManage Enterprise HTTPS 端口。

默认值: 443

schedule

字符串

提供计划发现作业的选项。

如果选择 RunLater,则必须指定 cron

选项

  • "RunNow" ← (默认)

  • "RunLater"

state

字符串

present 创建发现作业或修改现有发现作业。

创建新发现作业时,discovery_job_name 是强制性的。

如果存在多个具有相同 discovery_job_name 的发现,则不会创建新的发现作业。

absent 删除具有指定 discovery_job_name 的现有发现作业。

选项

  • "present" ← (默认)

  • "absent"

timeout

整数

在 dellemc.openmanage 5.0.0 中添加

套接字级别的超时时间(以秒为单位)。

默认值: 30

trap_destination

布尔值

使 OpenManage Enterprise 能够接收来自已发现设备的传入 SNMP 陷阱。

这仅对使用 iDRAC 接口发现的服务器有效。

选项

  • false ←(默认)

  • true

username

字符串

OpenManage Enterprise 用户名。

如果未提供用户名,则使用环境变量 OME_USERNAME

示例:export OME_USERNAME=username

validate_certs

布尔值

在 dellemc.openmanage 5.0.0 中添加

如果为 false,则不会验证 SSL 证书。

仅在个人控制的站点上使用自签名证书时配置 false

在集合版本 5.0.0 之前,默认情况下 validate_certsfalse

选项

  • false

  • true ← (默认)

x_auth_token

字符串

在 dellemc.openmanage 9.3.0 中添加

身份验证令牌。

如果未提供 x_auth_token,则使用环境变量 OME_X_AUTH_TOKEN

示例:export OME_X_AUTH_TOKEN=x_auth_token

注释

注意

  • 从可以直接访问 Dell OpenManage Enterprise 的系统运行此模块。

  • 此模块不支持 check_mode

  • 如果 statepresent,则不支持幂等性。

示例

---
- name: Discover servers in a range
  dellemc.openmanage.ome_discovery:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    ca_path: "/path/to/ca_cert.pem"
    discovery_job_name: "Discovery_server_1"
    discovery_config_targets:
      - network_address_detail:
          - 192.96.24.1-192.96.24.255
        device_types:
          - SERVER
        wsman:
          username: user
          password: password

- name: Discover chassis in a range
  dellemc.openmanage.ome_discovery:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    ca_path: "/path/to/ca_cert.pem"
    discovery_job_name: "Discovery_chassis_1"
    discovery_config_targets:
      - network_address_detail:
          - 192.96.24.1-192.96.24.255
        device_types:
          - CHASSIS
        wsman:
          username: user
          password: password

- name: Discover switches in a range
  dellemc.openmanage.ome_discovery:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    ca_path: "/path/to/ca_cert.pem"
    discovery_job_name: "Discover_switch_1"
    discovery_config_targets:
      - network_address_detail:
          - 192.96.24.1-192.96.24.255
        device_types:
          - NETWORK SWITCH
        snmp:
          community: snmp_creds

- name: Discover storage in a range
  dellemc.openmanage.ome_discovery:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    ca_path: "/path/to/ca_cert.pem"
    discovery_job_name: "Discover_storage_1"
    discovery_config_targets:
      - network_address_detail:
          - 192.96.24.1-192.96.24.255
        device_types:
          - STORAGE
        storage:
          username: user
          password: password
        snmp:
          community: snmp_creds

- name: Delete a discovery job
  dellemc.openmanage.ome_discovery:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    ca_path: "/path/to/ca_cert.pem"
    state: "absent"
    discovery_job_name: "Discovery-123"

- name: Schedule the discovery of multiple devices ignoring partial failure and enable trap to receive alerts
  dellemc.openmanage.ome_discovery:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    ca_path: "/path/to/ca_cert.pem"
    state: "present"
    discovery_job_name: "Discovery-123"
    discovery_config_targets:
      - network_address_detail:
          - 192.96.24.1-192.96.24.255
          - 192.96.0.0/24
          - 192.96.26.108
        device_types:
          - SERVER
          - CHASSIS
          - STORAGE
          - NETWORK SWITCH
        wsman:
          username: wsman_user
          password: wsman_pwd
        redfish:
          username: redfish_user
          password: redfish_pwd
        snmp:
          community: snmp_community
      - network_address_detail:
          - 192.96.25.1-192.96.25.255
          - ipmihost
          - esxiserver
          - sshserver
        device_types:
          - SERVER
        ssh:
          username: ssh_user
          password: ssh_pwd
        vmware:
          username: vm_user
          password: vmware_pwd
        ipmi:
          username: ipmi_user
          password: ipmi_pwd
    schedule: RunLater
    cron: "0 0 9 ? * MON,WED,FRI *"
    ignore_partial_failure: true
    trap_destination: true
    community_string: true
    email_recipient: [email protected]

- name: Discover servers with ca check enabled
  dellemc.openmanage.ome_discovery:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    ca_path: "/path/to/ca_cert.pem"
    discovery_job_name: "Discovery_server_ca1"
    discovery_config_targets:
      - network_address_detail:
          - 192.96.24.108
        device_types:
          - SERVER
        wsman:
          username: user
          password: password
          ca_check: true
          certificate_data: "{{ lookup('ansible.builtin.file', '/path/to/certificate_data_file') }}"

- name: Discover chassis with ca check enabled data
  dellemc.openmanage.ome_discovery:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    ca_path: "/path/to/ca_cert.pem"
    discovery_job_name: "Discovery_chassis_ca1"
    discovery_config_targets:
      - network_address_detail:
          - 192.96.24.108
        device_types:
          - CHASSIS
        redfish:
          username: user
          password: password
          ca_check: true
          certificate_data: "-----BEGIN CERTIFICATE-----\r\n
          ABCDEFGHIJKLMNOPQRSTUVWXYZaqwertyuiopasdfghjklzxcvbnmasdasagasvv\r\n
          ABCDEFGHIJKLMNOPQRSTUVWXYZaqwertyuiopasdfghjklzxcvbnmasdasagasvv\r\n
          ABCDEFGHIJKLMNOPQRSTUVWXYZaqwertyuiopasdfghjklzxcvbnmasdasagasvv\r\n
          aqwertyuiopasdfghjklzxcvbnmasdasagasvv=\r\n
          -----END CERTIFICATE-----"

返回值

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

描述

discovery_ids

列表 / 元素=字符串

具有重复名称的发现的 ID。

返回:statepresent 且存在具有重复名称的发现时

示例: [1234, 5678]

discovery_status

字典

创建或修改的发现作业的详细信息。

如果 job_wait 为 true,还会列出已完成和失败的 IP。

返回:statepresent

示例: {"Completed": ["192.168.24.17", "192.168.24.20", "192.168.24.22"], "DiscoveredDevicesByType": [{"Count": 3, "DeviceType": "SERVER"}], "DiscoveryConfigDiscoveredDeviceCount": 3, "DiscoveryConfigEmailRecipient": "[email protected]", "DiscoveryConfigExpectedDeviceCount": 9, "DiscoveryConfigGroupId": 125, "Failed": ["192.168.24.15", "192.168.24.16", "192.168.24.18", "192.168.24.19", "192.168.24.21", "host123"], "JobDescription": "D1", "JobEnabled": true, "JobEndTime": "2021-01-01 06:27:29.99", "JobId": 12666, "JobName": "D1", "JobNextRun": null, "JobProgress": "100", "JobSchedule": "startnow", "JobStartTime": "2021-01-01 06:24:10.071", "JobStatusId": 2090, "LastUpdateTime": "2021-01-01 06:27:30.001", "UpdatedBy": "admin"}

error_info

字典

HTTP 错误的详细信息。

返回:在 HTTP 错误时

示例: {"error": {"@Message.ExtendedInfo": [{"Message": "无法处理请求,因为发生了错误。", "MessageArgs": [], "MessageId": "GEN1234", "RelatedProperties": [], "Resolution": "重试操作。如果问题仍然存在,请联系系统管理员。", "Severity": "严重"}], "code": "Base.1.0.GeneralError", "message": "发生了一般错误。请查看 ExtendedInfo 了解更多信息。"}}

job_detailed_status

列表 / 元素=字符串

作业的详细上次执行历史记录。

返回:始终。

示例: [{"ElapsedTime": "00:00:00", "EndTime": null, "ExecutionHistoryId": 564873, "Id": 656893, "IdBaseEntity": 0, "JobStatus": {"Id": 2050, "Name": "正在运行"}, "Key": "192.96.24.1", "Progress": "0", "StartTime": "2023-07-04 06:23:54.008", "Value": "正在运行\n已开始发现目标 192.96.24.1。\n发现目标解析为 IP  192.96.24.1 。"}]

msg

字符串

发现操作的总体状态。

返回:始终

示例: "成功删除了 1 个发现作业。"

作者

  • Jagadeesh N V (@jagadeeshnv)

  • Sajna Shetty (@Sajna-Shetty)

  • Abhishek Sinha (@Abhishek-Dell)