community.vmware.vmware_host_datastore 模块 – 管理 ESXi 主机上的数据存储

注意

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

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

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

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

概要

  • 此模块可用于在 ESXi 主机上挂载/卸载数据存储。

  • 此模块仅支持 NFS(NFS v3 或 NFS v4.1)和 VMFS 数据存储。

  • 对于 VMFS 数据存储,可用的设备必须已连接到 ESXi 主机。

参数

参数

注释

auto_expand

布尔值

如果数据存储具有可用容量,则将其容量扩展至最大。

此参数不能使用另一个数据存储来扩展。

可用于在增加 LUN 卷后扩展数据存储容量。

选择

  • false

  • true ←(默认)

datastore_name

字符串 / 必需

要添加/删除的数据存储的名称。

datastore_type

字符串

要配置的数据存储的类型 (nfs/nfs41/vmfs/vvol)。

选择

  • "nfs"

  • "nfs41"

  • "vmfs"

  • "vvol"

esxi_hostname

字符串

用于管理数据存储的 ESXi 主机名。

与 vCenter 一起使用时是必需的

hostname

字符串

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

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

nfs_path

字符串

NFS 主机上的资源路径。

如果 datastore_type=nfs / datastore_type=nfs41state=present,则为必需,否则未使用。

nfs_ro

布尔值

只读或读写挂载。

如果数据存储类型未设置为 datastore_type=nfs / datastore_type=nfs41 并且不是 state=present,则未使用。

选择

  • false ←(默认)

  • true

nfs_server

字符串

为 nfs 数据存储提供服务的 NFS 主机。

如果 datastore_type=nfs / datastore_type=nfs41state=present,则为必需,否则未使用。

如果 datastore_type=nfs41,则可以定义两个或多个服务器

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 的值。

重新签名

布尔值

在 community.vmware 3.9.0 版本中添加

允许强制重新签名指定磁盘设备上已存在的未解析的 VMFS 数据存储。

如果不是 datastore_type=vmfs 且不是 state=present,则不使用。

选择

  • false ←(默认)

  • true

状态

字符串

present: 如果数据存储不存在,则在主机上挂载数据存储,否则不执行任何操作。

absent: 如果数据存储存在,则卸载数据存储,否则不执行任何操作。

选择

  • "present" ← (默认)

  • "absent"

用户名

别名: admin, user

字符串

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

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

validate_certs

布尔值

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

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

选择

  • false

  • true ←(默认)

vasa_provider

字符串

在 community.vmware 3.9.0 版本中添加

用于 vVols 供应的 VASA 提供程序的主机名或 IP 地址

vmfs_device_name

字符串

用作 VMFS 数据存储的设备名称。

对于 VMFS 数据存储类型和 state=present 是必需的,否则不使用。

vmfs_version

整数

用于创建数据存储的 VMFS 版本。

如果不是 datastore_type=vmfs 且不是 state=present,则不使用。

注释

注意

  • NFS v4.1 的 Kerberos 身份验证未实现

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

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

示例

- name: Mount VMFS datastores to ESXi
  community.vmware.vmware_host_datastore:
      hostname: '{{ vcenter_hostname }}'
      username: '{{ vcenter_username }}'
      password: '{{ vcenter_password }}'
      datastore_name: '{{ item.name }}'
      datastore_type: '{{ item.type }}'
      vmfs_device_name: 'naa.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
      vmfs_version: 6
      esxi_hostname: '{{ inventory_hostname }}'
      state: present
  delegate_to: localhost

- name: Mount NFS datastores to ESXi
  community.vmware.vmware_host_datastore:
      hostname: '{{ vcenter_hostname }}'
      username: '{{ vcenter_username }}'
      password: '{{ vcenter_password }}'
      datastore_name: '{{ item.name }}'
      datastore_type: '{{ item.type }}'
      nfs_server: '{{ item.server }}'
      nfs_path: '{{ item.path }}'
      nfs_ro: false
      esxi_hostname: '{{ inventory_hostname }}'
      state: present
  delegate_to: localhost
  loop:
      - { 'name': 'NasDS_vol01', 'server': 'nas01', 'path': '/mnt/vol01', 'type': 'nfs'}
      - { 'name': 'NasDS_vol02', 'server': 'nas01', 'path': '/mnt/vol02', 'type': 'nfs'}

- name: Mount NFS v4.1 datastores to ESXi
  community.vmware.vmware_host_datastore:
      hostname: '{{ vcenter_hostname }}'
      username: '{{ vcenter_username }}'
      password: '{{ vcenter_password }}'
      datastore_name: '{{ item.name }}'
      datastore_type: '{{ item.type }}'
      nfs_server: '{{ item.server }}'
      nfs_path: '{{ item.path }}'
      nfs_ro: false
      esxi_hostname: '{{ inventory_hostname }}'
      state: present
  delegate_to: localhost
  loop:
      - { 'name': 'NasDS_vol03', 'server': 'nas01,nas02', 'path': '/mnt/vol01', 'type': 'nfs41'}
      - { 'name': 'NasDS_vol04', 'server': 'nas01,nas02', 'path': '/mnt/vol02', 'type': 'nfs41'}

- name: Mount vVols datastore to ESXi
  community.vmware.vmware_host_datastore:
      hostname: '{{ vcenter_hostname }}'
      username: '{{ vcenter_username }}'
      password: '{{ vcenter_password }}'
      datastore_name: myvvolds
      datastore_type: vvol
      vasa_provider: pure-X90a
      esxi_hostname: esxi-1
      state: absent
  delegate_to: localhost

- name: Mount unresolved VMFS datastores to ESXi
  community.vmware.vmware_host_datastore:
      hostname: '{{ vcenter_hostname }}'
      username: '{{ vcenter_username }}'
      password: '{{ vcenter_password }}'
      datastore_name: mydatastore01
      vmfs_device_name: 'naa.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
      vmfs_version: 6
      esxi_hostname:  esxi01
      resignature: true
      state: present
  delegate_to: localhost

- name: Remove/Umount Datastores from a ESXi
  community.vmware.vmware_host_datastore:
      hostname: '{{ esxi_hostname }}'
      username: '{{ esxi_username }}'
      password: '{{ esxi_password }}'
      datastore_name: NasDS_vol01
      state: absent
  delegate_to: localhost

作者

  • Ludovic Rivallain (@lrivallain)

  • Christian Kotte (@ckotte)

  • Eugenio Grosso (@genegr)