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

注意

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

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

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

要在剧本中使用它,请指定: 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

布尔值

重新连接断开的hosts。

仅当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)