community.windows.win_hosts 模块 – 管理 Windows 上的 hosts 文件条目。

注意

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

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

要安装它,请使用:ansible-galaxy collection install community.windows

要在剧本中使用它,请指定:community.windows.win_hosts

概要

  • 管理 Windows 上的 hosts 文件条目。

  • 将 IPv4 或 IPv6 地址映射到规范名称。

  • 为 IP 和主机名对添加、删除或设置 CNAME 记录。

  • 修改 %windir%\system32\drivers\etc\hosts。

参数

参数

注释

action

字符串

控制 _aliases_ 的行为。

仅当 state=present 时适用。

如果 add,则 _aliases_ 中的每个别名都将添加到主机条目中。

如果 set,则 _aliases_ 中的每个别名都将添加到主机条目中,并且其他别名将从条目中删除。

选择

  • "add"

  • "remove"

  • "set" ← (默认)

aliases

列表 / 元素=字符串

主机条目的其他名称(CNAME 记录)的列表。

仅当 state=present 时适用。

canonical_name

字符串

主机条目的规范名称。

state=present 时是必需的。

ip_address

字符串

主机条目的 IP 地址。

可以是 IPv4(A 记录)或 IPv6(AAAA 记录)。

state=present 时是必需的。

state

字符串

条目应该是存在还是不存在。

如果当 state=absent 时仅提供 _canonical_name_,则将删除规范名称为 _canonical_name_ 的所有主机条目。

如果当 state=absent 时仅提供 _ip_address_,则将删除 IP 地址为 _ip_address_ 的所有主机条目。

如果当 state=absent 时 _ip_address_ 和 _canonical_name_ 都被省略,则将删除所有主机条目。

选择

  • "absent"

  • "present" ← (默认)

备注

注意

  • 每个规范名称只能映射到一个 IPv4 和一个 IPv6 地址。如果提供了 _canonical_name_,并且当 state=present 时发现它映射到另一个 IP 地址,该 IP 地址与 _ip_address_ 的类型相同,但与 _ip_address_ 不同,则将从条目中删除 _canonical_name_ 和所有 _aliases_,并添加到具有所提供 IP 地址的条目中。

  • 每个别名只能映射到一个规范名称。如果提供了 _aliases_,并且当 state=present 时发现别名映射到另一个规范名称,则将从条目中删除该别名,并将其添加到或删除到(取决于 _action_)具有所提供规范名称的条目中。

另请参阅

另请参阅

ansible.windows.win_template

将文件模板化到远程服务器。

ansible.windows.win_file

创建、触摸或删除文件或目录。

ansible.windows.win_copy

将文件复制到 Windows 主机上的远程位置。

示例

- name: Add 127.0.0.1 as an A record for localhost
  community.windows.win_hosts:
    state: present
    canonical_name: localhost
    ip_address: 127.0.0.1

- name: Add ::1 as an AAAA record for localhost
  community.windows.win_hosts:
    state: present
    canonical_name: localhost
    ip_address: '::1'

- name: Remove 'bar' and 'zed' from the list of aliases for foo (192.168.1.100)
  community.windows.win_hosts:
    state: present
    canonical_name: foo
    ip_address: 192.168.1.100
    action: remove
    aliases:
      - bar
      - zed

- name: Remove hosts entries with canonical name 'bar'
  community.windows.win_hosts:
    state: absent
    canonical_name: bar

- name: Remove 10.2.0.1 from the list of hosts
  community.windows.win_hosts:
    state: absent
    ip_address: 10.2.0.1

- name: Ensure all name resolution is handled by DNS
  community.windows.win_hosts:
    state: absent

作者

  • Micah Hunsberger (@mhunsber)