community.vmware.vmware_host_iscsi – Manage the iSCSI configuration of ESXi host

Note

This plugin is part of the community.vmware collection (version 1.15.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install community.vmware.

To use it in a playbook, specify: community.vmware.vmware_host_iscsi.

Synopsis

  • In this module, can manage the iSCSI configuration of ESXi host

Requirements

The below requirements are needed on the host that executes this module.

  • python >= 2.7
  • PyVmomi

Parameters

Parameter Choices/Defaults Comments
esxi_hostname
string / required
The ESXi hostname on which to change iSCSI settings.
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.
iscsi_config
dictionary
The iSCSI configs.
This parameter is required if state=present or state=absent.
alias
string
Default:
""
The new value for the alias of the adapter.
authentication
dictionary
CHAP authentication parent settings for iSCSI.
chap_auth_enabled
boolean
    Choices:
  • no
  • yes
Whether to enable CHAP authentication.
chap_authentication_type
string
    Choices:
  • chapDiscouraged
  • chapPreferred
  • chapRequired
  • chapProhibited
The preference for CHAP or non-CHAP protocol of CHAP if CHAP is enabled.
chap_name
string
Default:
""
CHAP user name if CHAP is enabled.
chap_secret
string
The secret password of CHAP if CHAP is enabled.
mutual_chap_authentication_type
string
    Choices:
  • chapProhibited
  • chapRequired
The preference for CHAP or non-CHAP protocol of Mutual-CHAP if CHAP is enabled.
mutual_chap_name
string
Default:
""
The user name that the target needs to use to authenticate with the initiator if Mutual-CHAP is enabled.
mutual_chap_secret
string
The secret password of mutual CHAP if Mutual-CHAP is enabled.
force
boolean
    Choices:
  • no
  • yes
Force port bind VMkernels to be removed.
iscsi_name
string
added in 1.7.0 of community.vmware
The name for the iSCSI HBA adapter.
This is iSCSI qualified name.

aliases: initiator_iqn
port_bind
list / elements=string
Default:
[]
The list of the VMkernels if use port bindings.
send_target
dictionary
The iSCSI dynamic target settings.
address
string / required
The IP address or hostname of the storage device.
authentication
dictionary
CHAP authentication settings of a dynamic target for iSCSI.
chap_auth_enabled
boolean
    Choices:
  • no
  • yes
Whether to enable CHAP authentication.
chap_authentication_type
string
    Choices:
  • chapDiscouraged
  • chapPreferred
  • chapRequired
  • chapProhibited
The preference for CHAP or non-CHAP protocol of CHAP if CHAP is enabled.
chap_inherited
boolean
    Choices:
  • no
  • yes
Whether or not to inherit CHAP settings from the parent settings.
chap_name
string
Default:
""
CHAP user name if CHAP is enabled.
chap_secret
string
The secret password of CHAP if CHAP is enabled.
mutual_chap_authentication_type
string
    Choices:
  • chapProhibited
  • chapRequired
The preference for CHAP or non-CHAP protocol of Mutual-CHAP if CHAP is enabled.
mutual_chap_inherited
boolean
    Choices:
  • no
  • yes
Whether or not to inherit Mutual-CHAP settings from the parent settings.
mutual_chap_name
string
Default:
""
The user name that the target needs to use to authenticate with the initiator if Mutual-CHAP is enabled.
mutual_chap_secret
string
The secret password of mutual CHAP if Mutual-CHAP is enabled.
port
integer
Default:
3260
The TCP port of the storage device.
If not specified, the standard default of 3260 is used.
static_target
dictionary
The iSCSI static target settings.
address
string / required
The IP address or hostname of the storage device.
authentication
dictionary
CHAP authentication settings of a static target for iSCSI.
chap_auth_enabled
boolean
    Choices:
  • no
  • yes
Whether to enable CHAP authentication.
chap_authentication_type
string
    Choices:
  • chapDiscouraged
  • chapPreferred
  • chapRequired
  • chapProhibited
The preference for CHAP or non-CHAP protocol of CHAP if CHAP is enabled.
chap_inherited
boolean
    Choices:
  • no
  • yes
Whether or not to inherit CHAP settings from the parent settings.
chap_name
string
Default:
""
CHAP user name if CHAP is enabled.
chap_secret
string
The secret password of CHAP if CHAP is enabled.
mutual_chap_authentication_type
string
    Choices:
  • chapProhibited
  • chapRequired
The preference for CHAP or non-CHAP protocol of Mutual-CHAP if CHAP is enabled.
mutual_chap_inherited
boolean
    Choices:
  • no
  • yes
Whether or not to inherit Mutual-CHAP settings from the parent settings.
mutual_chap_name
string
Default:
""
The user name that the target needs to use to authenticate with the initiator if Mutual-CHAP is enabled.
mutual_chap_secret
string
The secret password of mutual CHAP if Mutual-CHAP is enabled.
iscsi_name
string / required
The name of the iSCSI target to connect to.
port
integer
Default:
3260
The TCP port of the storage device.
If not specified, the standard default of 3260 is used.
vmhba_name
string / required
The iSCSI adapter name.
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
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.
proxy_host
string
Address of a proxy that will receive all HTTPS requests and relay them.
The format is a hostname or a IP.
If the value is not specified in the task, the value of environment variable VMWARE_PROXY_HOST will be used instead.
This feature depends on a version of pyvmomi greater than v6.7.1.2018.12
proxy_port
integer
Port of the HTTP proxy that will receive all HTTPS requests and relay them.
If the value is not specified in the task, the value of environment variable VMWARE_PROXY_PORT will be used instead.
state
string
    Choices:
  • present
  • absent
  • enabled
  • disabled
If set to present, add the iSCSI target or the bind ports if they are not existing.
If set to present, update the iSCSI settings if they already exist and occur change.
If set to absent, remove the iSCSI target or the bind ports if they are existing.
If set to (enabled), enable the iSCSI of ESXi if the iSCSI is disabled.
If set to (disabled), disable the iSCSI of ESXi if the iSCSI is enabled.
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
    Choices:
  • no
  • yes
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 true, please make sure Python >= 2.7.9 is installed on the given machine.

Notes

Note

  • All modules requires API write access and hence is not supported on a free ESXi license.

Examples

- name: Enable iSCSI of ESXi
  community.vmware.vmware_host_iscsi:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    esxi_hostname: "{{ esxi_hostname }}"
    state: enabled

- name: Add a dynamic target to iSCSI config of ESXi
  community.vmware.vmware_host_iscsi:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    esxi_hostname: "{{ esxi_hostname }}"
    iscsi_config:
      vmhba_name: vmhba65
      send_target:
        address: "{{ send_target_address }}"
    state: present

- name: Add a static target to iSCSI config of ESXi
  community.vmware.vmware_host_iscsi:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    esxi_hostname: "{{ esxi_hostname }}"
    iscsi_config:
      vmhba_name: vmhba65
      static_target:
        iscsi_name: iqn.2011-08.com.xxxxxxx:as6104t-8c3e9d.target001
        address: "{{ send_target_address }}"
    state: present

- name: Add VMKernels to iSCSI config of ESXi
  community.vmware.vmware_host_iscsi:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    esxi_hostname: "{{ esxi_hostname }}"
    iscsi_config:
      vmhba_name: vmhba65
      port_bind:
        - vmk0
        - vmk1
    state: present

- name: Use CHAP authentication
  community.vmware.vmware_host_iscsi:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    esxi_hostname: "{{ esxi_hostname }}"
    iscsi_config:
      vmhba_name: vmhba65
      authentication:
        chap_auth_enabled: true
        chap_authentication_type: chapPreferred
        chap_name: chap_user_name
        chap_secret: secret
    state: present

- name: Remove a dynamic target from iSCSI config of ESXi
  community.vmware.vmware_host_iscsi:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    esxi_hostname: "{{ esxi_hostname }}"
    iscsi_config:
      vmhba_name: vmhba65
      send_target:
        address: "{{ send_target_address }}"
    state: absent

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description
iscsi_properties
dictionary
changed
Parameter return when system defaults config is changed.

Sample:
{ "iscsi_alias": "", "iscsi_authentication_properties": { "_vimtype": "vim.host.InternetScsiHba.AuthenticationProperties", "chapAuthEnabled": false, "chapAuthenticationType": "chapProhibited", "chapInherited": null, "chapName": "", "chapSecret": "XXXXXXXXXXXXXXXXXXXXX", "mutualChapAuthenticationType": "chapProhibited", "mutualChapInherited": null, "mutualChapName": "XXXXXXXXXXXXXXXXXXXXX", "mutualChapSecret": "" }, "iscsi_enabled": true, "iscsi_name": "", "iscsi_send_targets": [], "iscsi_static_targets": [], "port_bind": [], "vmhba_name": "vmhba65" }


Authors

  • sky-joker (@sky-joker)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/vmware/vmware_host_iscsi_module.html