infoblox.nios_modules.nios_host_record 模块 – 配置 Infoblox NIOS 主机记录

注意

此模块是 infoblox.nios_modules 集合 (版本 1.7.1) 的一部分。

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

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

要在剧本中使用它,请指定:infoblox.nios_modules.nios_host_record

infoblox.nios_modules 1.0.0 中的新增功能

概要

  • 添加和/或删除 Infoblox NIOS 服务器上的主机记录对象的实例。此模块使用通过 REST 的 Infoblox WAPI 接口管理 NIOS record:host 对象。

  • 更新 Infoblox NIOS 服务器上的主机记录对象的实例。

需求

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

  • infoblox-client

参数

参数

注释

aliases

列表 / 元素=字符串

配置要添加到主机记录的附加别名可选列表。这些等效于 CNAME,但保留在主机记录中。必须采用列表格式。

comment

字符串

配置要与该对象实例关联的文本字符串注释。提供的文本字符串将在对象实例上配置。

configure_for_dns

aliases: dns

布尔值

将 DNS 设置为特定父项。如果用户需要绕过 DNS,则可以将值设置为 false。

选项

  • false

  • true ← (默认)

extattrs

字典

允许在对象的实例上配置可扩展属性。此参数接受一组键/值对进行配置。

ipv4addrs

aliases: ipv4

列表 / 元素=字典

配置此主机记录的 IPv4 地址。此参数接受值列表(请参阅子选项)。

add

aliases: add

布尔值

infoblox.nios_modules 1.0.0 中新增

如果用户希望将 ipv4 地址添加到现有主机记录。请注意,使用 *add*,用户必须将 *state* 保持为 *present*,因为新的 IP 地址已分配给现有主机记录。请参阅示例。

选项

  • false

  • true

configure_for_dhcp

aliases: dhcp

布尔值

通过 DHCP 而不是 DNS 配置 host_record,如果用户将其更改为 true,则需要提及 MAC 地址才能进行配置。

选项

  • false

  • true

ipv4addr

aliases: address

字符串 / 必需

配置主机记录的 IPv4 地址。用户可以通过传递包含 *nios_next_ip* 和 *CIDR 网络范围* 的字典来动态地将 ipv4 地址分配给主机记录。如果用户想要添加或删除现有记录中的 ipv4 地址,则需要使用 *add/remove* 参数。请参阅示例。

mac

aliases: mac

字符串

配置主机记录的硬件 MAC 地址。如果用户将 DHCP 设置为 true,则需要提及 MAC 地址。

nextserver

aliases: pxe

字符串

infoblox.nios_modules 1.0.0 中新增

以 FQDN 格式的名称和/或主机需要从中引导的下一个服务器的 IPv4 地址作为输入。

remove

aliases: remove

布尔值

infoblox.nios_modules 1.0.0 中新增

如果用户希望从现有主机记录中删除 ipv4 地址。请注意,使用 *remove*,用户必须将 *state* 更改为 *absent*,因为 IP 地址已从现有主机记录中取消分配。请参阅示例。

选项

  • false

  • true

use_for_ea_inheritance

布尔值

infoblox.nios_modules 1.7.0 中新增

当 use_for_ea_inheritance 为 True 时,EA 将从主机地址继承。默认值为 False。

选项

  • false ← (默认)

  • true

use_nextserver

aliases: use_pxe

布尔值

infoblox.nios_modules 1.0.0 中新增

启用 nextserver 选项的使用

选项

  • false

  • true

ipv6addrs

aliases: ipv6

列表 / 元素=字典

配置主机记录的 IPv6 地址。此参数接受值列表(请参阅选项)。

configure_for_dhcp

aliases: dhcp

布尔值

通过 DHCP 而不是 DNS 配置 host_record,如果用户将其更改为 true,则需要提及 DUID 地址才能进行配置。

选项

  • false

  • true

duid

aliases: duid

字符串

配置主机记录的硬件 DUID 地址。如果用户将 DHCP 设置为 true,则需要提及 DUID 地址。

ipv6addr

aliases: address

字符串 / 必需

配置主机记录的 IPv6 地址。

name

字符串 / 必需

指定要添加或删除的完全限定主机名。用户也可以更新主机名,因为可以传递包含new_nameold_name的字典。请参阅示例。

提供者

字典

包含连接详细信息的字典对象。

证书

字符串

指定客户端证书文件,其中包含 x509 配置摘要,用于增强与 NIOS 远程实例的连接安全性。

也可以使用INFOBLOX_CERT环境变量指定值。

主机

字符串

指定用于通过 REST 连接到 NIOS WAPI 远程实例的 DNS 主机名或地址。

也可以使用INFOBLOX_HOST环境变量指定值。

http_pool_connections

整数

在此处插入描述

默认值: 10

http_pool_maxsize

整数

在此处插入描述

默认值: 10

http_request_timeout

整数

接收响应之前的等待时间。

也可以使用INFOBLOX_HTTP_REQUEST_TIMEOUT环境变量指定值。

默认值: 10

密钥

字符串

指定用于与证书一起加密的私钥文件,以便与 NIOS 的远程实例连接。

也可以使用INFOBLOX_KEY环境变量指定值。

max_results

整数

指定要返回的对象的最大数量,如果设置为负数,则当返回的对象数量超过设置值时,设备将返回错误。

也可以使用INFOBLOX_MAX_RESULTS环境变量指定值。

默认值: 1000

max_retries

整数

配置在声明连接可用之前的重试次数。

也可以使用INFOBLOX_MAX_RETRIES环境变量指定值。

默认值: 3

密码

字符串

指定用于验证与 NIOS 远程实例连接的密码。

也可以使用INFOBLOX_PASSWORD环境变量指定值。

silent_ssl_warnings

布尔值

在此处插入描述

选项

  • false

  • true ← (默认)

用户名

字符串

配置用于验证与 NIOS 远程实例连接的用户名。

也可以使用INFOBLOX_USERNAME环境变量指定值。

validate_certs

别名:ssl_verify

布尔值

布尔值,用于启用或禁用 SSL 证书验证。

也可以使用INFOBLOX_SSL_VERIFY环境变量指定值。

选项

  • false ← (默认)

  • true

wapi_version

字符串

指定要使用的 WAPI 版本。

也可以使用INFOBLOX_WAPI_VERSION环境变量指定值。

在 Ansible 2.8 之前,默认 WAPI 版本为 1.4。

默认值: "2.12.3"

状态

字符串

配置 NIOS 服务器上对象实例的预期状态。当此值设置为present时,将在设备上配置该对象;当此值设置为absent时,将从设备中删除该值(如有必要)。

选项

  • "present" ← (默认)

  • "absent"

ttl

整数

配置与此主机记录关联的 TTL。

use_dns_ea_inheritance

布尔值

infoblox.nios_modules 1.7.0 中新增

当 use_dns_ea_inheritance 为 True 时,将从关联区域继承 EA。默认值为 False。

选项

  • false ← (默认)

  • true

view

别名:dns_view

字符串

设置要与此主机记录关联的 DNS 视图。DNS 视图必须已在系统上配置。

默认值: "default"

注释

注意

  • 此模块支持check_mode

  • 此模块必须在本地运行,这可以通过指定connection: local来实现。

  • 请阅读 :ref:`nios_guide`,以获取有关如何将 Infoblox 与 Ansible 一起使用的更多详细信息。

示例

- name: Configure an ipv4 host record
  infoblox.nios_modules.nios_host_record:
    name: host.ansible.com
    ipv4:
      - address: 192.168.10.1
    aliases:
      - cname.ansible.com
    state: present
    provider:
      host: "{{ inventory_hostname_short }}"
      username: admin
      password: admin
  connection: local

- name: Add a comment to an existing host record
  infoblox.nios_modules.nios_host_record:
    name: host.ansible.com
    ipv4:
      - address: 192.168.10.1
    comment: this is a test comment
    state: present
    provider:
      host: "{{ inventory_hostname_short }}"
      username: admin
      password: admin
  connection: local

- name: Remove a host record from the system
  infoblox.nios_modules.nios_host_record:
    name: host.ansible.com
    state: absent
    provider:
      host: "{{ inventory_hostname_short }}"
      username: admin
      password: admin
  connection: local

- name: Update an ipv4 host record
  infoblox.nios_modules.nios_host_record:
    name: {new_name: host-new.ansible.com, old_name: host.ansible.com}
    ipv4:
      - address: 192.168.10.1
    state: present
    provider:
      host: "{{ inventory_hostname_short }}"
      username: admin
      password: admin
  connection: local

- name: Create an ipv4 host record bypassing DNS
  infoblox.nios_modules.nios_host_record:
    name: new_host
    ipv4:
      - address: 192.168.10.1
    dns: false
    state: present
    provider:
      host: "{{ inventory_hostname_short }}"
      username: admin
      password: admin
  connection: local

- name: Create an ipv4 host record over DHCP
  infoblox.nios_modules.nios_host_record:
    name: host.ansible.com
    ipv4:
      - address: 192.168.10.1
        dhcp: true
        mac: 00-80-C8-E3-4C-BD
    state: present
    provider:
      host: "{{ inventory_hostname_short }}"
      username: admin
      password: admin
  connection: local

- name: Create an ipv4 host record with DNS EA inheritance enabled
  infoblox.nios_modules.nios_host_record:
    name: host.ansible.com
    configure_for_dns: true
    use_dns_ea_inheritance: true
    ipv4:
      - address: 192.168.10.1
        dhcp: true
        mac: 00-80-C8-E3-4C-BD
    state: present
    provider:
      host: "{{ inventory_hostname_short }}"
      username: admin
      password: admin
  connection: local

- name: Create an ipv4 host record with host address EA inheritance enabled
  infoblox.nios_modules.nios_host_record:
    name: host.ansible.com
    configure_for_dns: true
    ipv4:
      - address: 192.168.10.1
        dhcp: true
        mac: 00-80-C8-E3-4C-BD
        use_for_ea_inheritance: true
    state: present
    provider:
      host: "{{ inventory_hostname_short }}"
      username: admin
      password: admin
  connection: local

- name: Create an ipv4 host record over DHCP with PXE server
  infoblox.nios_modules.nios_host_record:
    name: host.ansible.com
    ipv4:
      - address: 192.168.10.1
        dhcp: true
        mac: 00-80-C8-E3-4C-BD
        use_nextserver: true
        nextserver: pxe-server.com
    state: present
    provider:
      host: "{{ inventory_hostname_short }}"
      username: admin
      password: admin
  connection: local


- name: Dynamically add host record to next available ip
  infoblox.nios_modules.nios_host_record:
    name: host.ansible.com
    ipv4:
      - address: {nios_next_ip: 192.168.10.0/24}
    comment: this is a test comment
    state: present
    provider:
      host: "{{ inventory_hostname_short }}"
      username: admin
      password: admin
  connection: local

- name: Add ip to host record
  infoblox.nios_modules.nios_host_record:
    name: host.ansible.com
    ipv4:
      - address: 192.168.10.2
        add: true
    state: present
    provider:
      host: "{{ inventory_hostname_short }}"
      username: admin
      password: admin
  connection: local

- name: Remove ip from host record
  infoblox.nios_modules.nios_host_record:
    name: host.ansible.com
    ipv4:
      - address: 192.168.10.1
        remove: true
    state: absent
    provider:
      host: "{{ inventory_hostname_short }}"
      username: admin
      password: admin
  connection: local

- name: Create host record with IPv4 and IPv6 addresses
  infoblox.nios_modules.nios_host_record:
    name: hostrec.ansible.com
    ipv4:
      - address: 192.168.10.7
        mac: 12:80:C8:E3:4C:AB
    ipv6:
      - address: fe80::10
        duid: 12:80:C8:E3:4C:B4
    state: present
    provider:
      host: "{{ inventory_hostname_short }}"
      username: admin
      password: admin
    connection: local

作者

  • Peter Sprygada (@privateip)