vmware_host_datastore – Manage a datastore on ESXi host
New in version 2.5.
Synopsis
- This module can be used to mount/umount datastore on ESXi host.
- This module only supports NFS (NFS v3 or NFS v4.1) and VMFS datastores.
- For VMFS datastore, available device must already be connected on ESXi host.
- All parameters and VMware object names are case sensitive.
Requirements
The below requirements are needed on the host that executes this module.
- python >= 2.6
- PyVmomi
Parameters
Parameter | Choices/Defaults | Comments |
---|---|---|
datacenter_name - | Name of the datacenter to add the datastore. The datacenter isn't used by the API to create a datastore. Will be removed in 2.11. | |
datastore_name - / required | Name of the datastore to add/remove. | |
datastore_type - / required |
| Type of the datastore to configure (nfs/nfs41/vmfs). |
esxi_hostname - / required | ESXi hostname to manage the datastore. | |
hostname string | The hostname or IP address of the vSphere vCenter or ESXi server. If the value is not specified in the task, the value of environment variable VMWARE_HOST will be used instead.Environment variable support added in Ansible 2.6. | |
nfs_path - | Resource path on NFS host. Required if datastore type is set to nfs /nfs41 and state is set to present , else unused. | |
nfs_ro boolean |
| ReadOnly or ReadWrite mount. Unused if datastore type is not set to nfs /nfs41 and state is not set to present . |
nfs_server - | NFS host serving nfs datastore. Required if datastore type is set to nfs /nfs41 and state is set to present , else unused.Two or more servers can be defined if datastore type is set to nfs41
| |
password string | The password of the vSphere vCenter or ESXi server. If the value is not specified in the task, the value of environment variable VMWARE_PASSWORD will be used instead.Environment variable support added in Ansible 2.6. aliases: pass, pwd | |
port integer added in 2.5 | Default: 443 | The port number of the vSphere vCenter or ESXi server. If the value is not specified in the task, the value of environment variable VMWARE_PORT will be used instead.Environment variable support added in Ansible 2.6. |
state - |
| present: Mount datastore on host if datastore is absent else do nothing. absent: Umount datastore if datastore is present else do nothing. |
username string | The username of the vSphere vCenter or ESXi server. If the value is not specified in the task, the value of environment variable VMWARE_USER will be used instead.Environment variable support added in Ansible 2.6. aliases: admin, user | |
validate_certs boolean |
| Allows connection when SSL certificates are not valid. Set to false when certificates are not trusted.If the value is not specified in the task, the value of environment variable VMWARE_VALIDATE_CERTS will be used instead.Environment variable support added in Ansible 2.6. If set to yes , please make sure Python >= 2.7.9 is installed on the given machine. |
vmfs_device_name - | Name of the device to be used as VMFS datastore. Required for VMFS datastore type and state is set to present , else unused. | |
vmfs_version - | VMFS version to use for datastore creation. Unused if datastore type is not set to vmfs and state is not set to present . |
Notes
Note
- Tested on vSphere 6.0 and 6.5
- NFS v4.1 tested on vSphere 6.5
- Kerberos authentication with NFS v4.1 isn’t implemented
Examples
- name: Mount VMFS datastores to ESXi 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 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: no 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 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: no 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: Remove/Umount Datastores from ESXi vmware_host_datastore: hostname: '{{ vcenter_hostname }}' username: '{{ vcenter_username }}' password: '{{ vcenter_password }}' datastore_name: NasDS_vol01 esxi_hostname: '{{ inventory_hostname }}' state: absent delegate_to: localhost
Status
- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]
Authors
- Ludovic Rivallain (@lrivallain) <ludovic.rivallain@gmail.com>
- Christian Kotte (@ckotte) <christian.kotte@gmx.de>
Hint
If you notice any issues in this documentation you can edit this document to improve it.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/vmware_host_datastore_module.html