community.vmware.vmware_host 模块 – 在 vCenter 中添加、移除或移动 ESXi 主机

注意

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

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

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

要在 playbook 中使用它,请指定:community.vmware.vmware_host

概要

  • 此模块可用于将 ESXi 主机添加到 vCenter、重新连接或从中移除。

  • 此模块也可用于在同一数据中心内将 ESXi 主机移动到集群或文件夹,反之亦然。

参数

参数

注释

add_connected

布尔值

如果设置为 true,则应在添加主机后立即连接它。

如果未 state=present,则忽略此参数。

选项

  • false

  • true ← (默认)

cluster_name

别名:cluster

字符串

要添加主机的集群名称。

如果未设置 folder,则此参数是必需的。

datacenter_name

别名:datacenter

字符串 / 必需

要添加主机的 vCenter 数据中心名称。

esxi_hostname

字符串 / 必需

要管理的 ESXi 主机名。

esxi_password

字符串

ESXi 密码。

添加主机时必需。

重新连接时可选。

移除时未使用。

从 2.5 版本起不再是必需参数。

esxi_ssl_thumbprint

别名:ssl_thumbprint

字符串

指定主机系统证书的指纹。

使用以下命令获取主机系统证书的指纹:

# openssl x509 -in /etc/vmware/ssl/rui.crt -fingerprint -sha1 -noout

默认值: ""

esxi_username

字符串

ESXi 用户名。

添加主机时必需。

重新连接时可选。如果同时使用了 esxi_usernameesxi_password

移除时未使用。

从 2.5 版本起不再是必需参数。

fetch_ssl_thumbprint

布尔值

获取主机 SSL 证书的指纹。

这实际上禁用了主机证书验证(检查它是否由公认的 CA 签名)。

如果您只想允许具有有效证书的主机添加到 vCenter,请禁用此选项。

如果此选项设置为 false 且无法验证证书,则添加或重新连接将失败。

当设置了 esxi_ssl_thumbprint 时未使用。

重新连接时可选,但仅在使用 esxi_usernameesxi_password 时使用。

移除时未使用。

选项

  • false

  • true ← (默认)

folder

别名:folder_name

字符串

要添加主机的文件夹名称。

如果未设置 cluster_name,则此参数是必需的。

例如,如果在名为“Site1”的文件夹下有一个名为“dc1”的数据中心,则此值为“/Site1/dc1/host”。

此处“host”是 VMware Web Client 下的隐藏文件夹。

另一个示例,如果在数据中心“dc2”下存在类似“/myhosts/india/pune”的嵌套文件夹结构,则folder的值将为“/dc2/host/myhosts/india/pune”。

其他示例:“/Site2/dc2/Asia-Cluster/host”或“/dc3/Asia-Cluster/host”

force_connection

布尔值

如果主机已被另一个vCenter服务器管理,则强制连接。

选项

  • false

  • true ← (默认)

hostname

字符串

vSphere vCenter或ESXi服务器的主机名或IP地址。

如果任务中未指定此值,则将使用环境变量VMWARE_HOST的值。

password

别名:pass,pwd

字符串

vSphere vCenter或ESXi服务器的密码。

如果任务中未指定此值,则将使用环境变量VMWARE_PASSWORD的值。

port

整数

vSphere vCenter或ESXi服务器的端口号。

如果任务中未指定此值,则将使用环境变量VMWARE_PORT的值。

默认值: 443

proxy_host

字符串

将接收所有HTTPS请求并转发它们的代理的地址。

格式为主机名或IP地址。

如果任务中未指定此值,则将使用环境变量VMWARE_PROXY_HOST的值。

proxy_port

整数

将接收所有HTTPS请求并转发它们的HTTP代理的端口。

如果任务中未指定此值,则将使用环境变量VMWARE_PROXY_PORT的值。

reconnect_disconnected

布尔值

重新连接断开的连接。

仅当state=present且主机已存在时才使用。

选项

  • false

  • true ← (默认)

state

字符串

如果设置为present,则在主机不存在时添加主机。

如果设置为present,则在主机已存在时更新主机的定位。

如果设置为absent,则在主机存在时移除主机。

如果设置为absent,则在主机已不存在时不执行任何操作。

如果设置为add_or_reconnect,则在主机不存在时添加主机,否则重新连接并更新其位置。

如果设置为reconnect,则在主机存在时重新连接主机并更新其位置。

如果设置为disconnected,则在主机已存在时断开主机连接。

选项

  • "present" ← (默认)

  • "absent"

  • "add_or_reconnect"

  • "reconnect"

  • "disconnected"

username

别名:admin,user

字符串

vSphere vCenter或ESXi服务器的用户名。

如果任务中未指定此值,则将使用环境变量VMWARE_USER的值。

validate_certs

布尔值

允许在SSL证书无效时进行连接。当证书不受信任时,设置为false

如果任务中未指定此值,则将使用环境变量VMWARE_VALIDATE_CERTS的值。

选项

  • false

  • true ← (默认)

备注

注意

  • 所有模块都需要API写入访问权限,因此在免费ESXi许可证上不受支持。

  • 所有变量和VMware对象名称都区分大小写。

示例

- name: Add ESXi Host to vCenter
  community.vmware.vmware_host:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    datacenter: datacenter_name
    cluster: cluster_name
    esxi_hostname: '{{ esxi_hostname }}'
    esxi_username: '{{ esxi_username }}'
    esxi_password: '{{ esxi_password }}'
    state: present
  delegate_to: localhost

- name: Add ESXi Host to vCenter under a specific folder
  community.vmware.vmware_host:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    datacenter: datacenter_name
    folder: '/Site2/Asia-Cluster/host'
    esxi_hostname: '{{ esxi_hostname }}'
    esxi_username: '{{ esxi_username }}'
    esxi_password: '{{ esxi_password }}'
    state: present
    add_connected: true
  delegate_to: localhost

- name: Reconnect ESXi Host (with username/password set)
  community.vmware.vmware_host:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    datacenter: datacenter_name
    cluster: cluster_name
    esxi_hostname: '{{ esxi_hostname }}'
    esxi_username: '{{ esxi_username }}'
    esxi_password: '{{ esxi_password }}'
    state: reconnect
  delegate_to: localhost

- name: Reconnect ESXi Host (with default username/password)
  community.vmware.vmware_host:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    datacenter: datacenter_name
    cluster: cluster_name
    esxi_hostname: '{{ esxi_hostname }}'
    state: reconnect
  delegate_to: localhost

- name: Add ESXi Host with SSL Thumbprint to vCenter
  community.vmware.vmware_host:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    datacenter: datacenter_name
    cluster: cluster_name
    esxi_hostname: '{{ esxi_hostname }}'
    esxi_username: '{{ esxi_username }}'
    esxi_password: '{{ esxi_password }}'
    esxi_ssl_thumbprint: "3C:A5:60:6F:7A:B7:C4:6C:48:28:3D:2F:A5:EC:A3:58:13:88:F6:DD"
    state: present
  delegate_to: localhost

返回值

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

描述

result

字符串

关于添加的新主机系统的元数据

返回:成功添加后

示例: "Host already connected to vCenter 'vcenter01' in cluster 'cluster01'"

作者

  • Joseph Callen (@jcpowermac)

  • Russell Teague (@mtnbikenc)

  • Maxime de Roucy (@tchernomax)

  • Christian Kotte (@ckotte)