diff options
Diffstat (limited to 'ansible_collections/community/vmware/docs')
189 files changed, 73326 insertions, 0 deletions
diff --git a/ansible_collections/community/vmware/docs/community.vmware.vcenter_domain_user_group_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vcenter_domain_user_group_info_module.rst new file mode 100644 index 00000000..d83f6640 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vcenter_domain_user_group_info_module.rst @@ -0,0 +1,390 @@ +.. _community.vmware.vcenter_domain_user_group_info_module: + + +*********************************************** +community.vmware.vcenter_domain_user_group_info +*********************************************** + +**Gather user or group information of a domain** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about user or group of a domain. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>belongs_to_group</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>If a group existing, returned contains only users or groups that directly belong to the specified group.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>belongs_to_user</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>If a user existing, returned contains only groups that directly contain the specified user.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>domain</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"vsphere.local"</div> + </td> + <td> + <div>The <em>domain</em> to be specified searching.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>exact_match</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>If <em>exact_match</em> is <code>True</code>, it indicates the <em>search_string</em> passed should match a user or group name exactly.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>find_groups</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>If <em>find_groups</em> is <code>True</code>, domain groups will be included in the result.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>find_users</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>If <em>find_users</em> is <code>True</code>, domain users will be included in the result.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>search_string</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The <em>search_string</em> is a string to be specified searching.</div> + <div>Specify the domain user or group name to be searched.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather all domain user and group of vsphere.local + community.vmware.vcenter_domain_user_group_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + domain: vsphere.local + search_string: '' + register: gather_all_domain_user_group_result + + - name: Gather all domain user and group included the administrator string + community.vmware.vcenter_domain_user_group_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + domain: vsphere.local + search_string: administrator + register: gather_domain_user_group_result + + - name: Gather all domain user of vsphere.local + community.vmware.vcenter_domain_user_group_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + domain: vsphere.local + search_string: '' + find_users: true + find_groups: false + register: gather_all_domain_user_result + + - name: Gather administrator user by exact match condition + community.vmware.vcenter_domain_user_group_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + domain: vsphere.local + search_string: "vsphere.local\\administrator" + exact_match: true + register: gather_administrator_user_exact_match_result + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>domain_user_groups</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>success</td> + <td> + <div>list of domain user and group information</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[ + { + "fullName": "Administrator vsphere.local", + "group": false, + "principal": "Administrator" + } + ]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- sky-joker (@sky-joker) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vcenter_extension_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vcenter_extension_info_module.rst new file mode 100644 index 00000000..0a8cb670 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vcenter_extension_info_module.rst @@ -0,0 +1,229 @@ +.. _community.vmware.vcenter_extension_info_module: + + +*************************************** +community.vmware.vcenter_extension_info +*************************************** + +**Gather info vCenter extensions** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about vCenter extension. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather info about vCenter Extensions + community.vmware.vcenter_extension_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + register: ext_info + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>extension_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>success</td> + <td> + <div>List of extensions</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'extension_company': 'VMware, Inc.', 'extension_key': 'com.vmware.vim.ls', 'extension_label': 'License Services', 'extension_last_heartbeat_time': '2018-09-03T09:36:18.003768+00:00', 'extension_subject_name': '', 'extension_summary': 'Provides various license services', 'extension_type': '', 'extension_version': '5.0'}, {'extension_company': 'VMware Inc.', 'extension_key': 'com.vmware.vim.sms', 'extension_label': 'VMware vCenter Storage Monitoring Service', 'extension_last_heartbeat_time': '2018-09-03T09:36:18.005730+00:00', 'extension_subject_name': '', 'extension_summary': 'Storage Monitoring and Reporting', 'extension_type': '', 'extension_version': '5.5'}]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vcenter_extension_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vcenter_extension_module.rst new file mode 100644 index 00000000..df807ddc --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vcenter_extension_module.rst @@ -0,0 +1,441 @@ +.. _community.vmware.vcenter_extension_module: + + +********************************** +community.vmware.vcenter_extension +********************************** + +**Register/deregister vCenter Extensions** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to register/deregister vCenter Extensions. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>client_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"vsphere-client-serenity"</div> + </td> + <td> + <div>Required for <code>state=present</code>. Type of client the extension is (win32, .net, linux, etc.).</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>company</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Required for <code>state=present</code>. The name of the company that makes the extension.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>description</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Required for <code>state=present</code>. A short description of the extension.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>email</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Required for <code>state=present</code>. Administrator email to use for extension.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>extension_key</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The extension key of the extension to install or uninstall.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Required for <code>state=present</code>. The name of the extension you are installing.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>server_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"vsphere-client-serenity"</div> + </td> + <td> + <div>Required for <code>state=present</code>. Type of server being used to install the extension (SOAP, REST, HTTP, etc.).</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ssl_thumbprint</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Required for <code>state=present</code>. SSL thumbprint of the extension hosting server.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>absent</li> + <li><div style="color: blue"><b>present</b> ←</div></li> + </ul> + </td> + <td> + <div>Add or remove vCenter Extension.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>url</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Required for <code>state=present</code>. Link to server hosting extension zip file to install.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>version</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The version of the extension you are installing or uninstalling.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>visible</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Show the extension in solution manager inside vCenter.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Register vCenter Extension + community.vmware.vcenter_extension: + hostname: "{{ groups['vcsa'][0] }}" + username: "{{ vcenter_username }}" + password: "{{ site_password }}" + extension_key: "{{ extension_key }}" + version: "1.0" + company: "Acme" + name: "Acme Extension" + description: "acme management" + email: "user@example.com" + url: "https://10.0.0.1/ACME-vSphere-web-plugin-1.0.zip" + ssl_thumbprint: "{{ ssl_thumbprint }}" + state: present + delegate_to: localhost + register: register_extension + + - name: Deregister vCenter Extension + community.vmware.vcenter_extension: + hostname: "{{ groups['vcsa'][0] }}" + username: "{{ vcenter_username }}" + password: "{{ site_password }}" + extension_key: "{{ extension_key }}" + version: "1.0" + state: absent + delegate_to: localhost + register: deregister_extension + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>information about performed operation</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">'com.acme.Extension' installed.</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Michael Tipton (@castawayegr) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vcenter_folder_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vcenter_folder_module.rst new file mode 100644 index 00000000..e06b8db1 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vcenter_folder_module.rst @@ -0,0 +1,405 @@ +.. _community.vmware.vcenter_folder_module: + + +******************************* +community.vmware.vcenter_folder +******************************* + +**Manage folders on given datacenter** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to create, delete, move and rename folder on then given datacenter. +- This module is only supported for vCenter. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datacenter.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of folder to be managed.</div> + <div>This is case sensitive parameter.</div> + <div>Folder name should be under 80 characters. This is a VMware restriction.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>datastore</li> + <li>host</li> + <li>network</li> + <li><div style="color: blue"><b>vm</b> ←</div></li> + </ul> + </td> + <td> + <div>This is type of folder.</div> + <div>If set to <code>vm</code>, then 'VM and Template Folder' is created under datacenter.</div> + <div>If set to <code>host</code>, then 'Host and Cluster Folder' is created under datacenter.</div> + <div>If set to <code>datastore</code>, then 'Storage Folder' is created under datacenter.</div> + <div>If set to <code>network</code>, then 'Network Folder' is created under datacenter.</div> + <div>This parameter is required, if <code>state</code> is set to <code>present</code> and parent_folder is absent.</div> + <div>This option is ignored, if <code>parent_folder</code> is set.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>parent_folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the parent folder under which new folder needs to be created.</div> + <div>This is case sensitive parameter.</div> + <div>If user wants to create a folder under '/DC0/vm/vm_folder', this value will be 'vm_folder'.</div> + <div>If user wants to create a folder under '/DC0/vm/folder1/folder2', this value will be 'folder1/folder2'.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>State of folder.</div> + <div>If set to <code>present</code> without parent folder parameter, then folder with <code>folder_type</code> is created.</div> + <div>If set to <code>present</code> with parent folder parameter, then folder in created under parent folder. <code>folder_type</code> is ignored.</div> + <div>If set to <code>absent</code>, then folder is unregistered and destroyed.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Create a VM folder on given datacenter + community.vmware.vcenter_folder: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: datacenter_name + folder_name: sample_vm_folder + folder_type: vm + state: present + register: vm_folder_creation_result + delegate_to: localhost + + - name: Create a datastore folder on given datacenter + community.vmware.vcenter_folder: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: datacenter_name + folder_name: sample_datastore_folder + folder_type: datastore + state: present + register: datastore_folder_creation_result + delegate_to: localhost + + - name: Create a sub folder under VM folder on given datacenter + community.vmware.vcenter_folder: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: datacenter_name + folder_name: sample_sub_folder + parent_folder: vm_folder + state: present + register: sub_folder_creation_result + delegate_to: localhost + + - name: Delete a VM folder on given datacenter + community.vmware.vcenter_folder: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: datacenter_name + folder_name: sample_vm_folder + folder_type: vm + state: absent + register: vm_folder_deletion_result + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">complex</span> + </div> + </td> + <td>On success</td> + <td> + <div>The detail about the new folder</div> + <br/> + </td> + </tr> + <tr> + <td class="elbow-placeholder"> </td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>msg</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td></td> + <td> + <div>string stating about result</div> + <br/> + </td> + </tr> + <tr> + <td class="elbow-placeholder"> </td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>path</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td></td> + <td> + <div>the full path of the new folder</div> + <br/> + </td> + </tr> + + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) +- Christian Kotte (@ckotte) <christian.kotte@gmx.de> +- Jan Meerkamp (@meerkampdvv) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vcenter_license_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vcenter_license_module.rst new file mode 100644 index 00000000..839ce07c --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vcenter_license_module.rst @@ -0,0 +1,361 @@ +.. _community.vmware.vcenter_license_module: + + +******************************** +community.vmware.vcenter_license +******************************** + +**Manage VMware vCenter license keys** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Add and delete vCenter, ESXi server license keys. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster to apply vSAN license.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The datacenter name to use for the operation.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname of the ESXi server to which the specified license will be assigned.</div> + <div>This parameter is optional.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable supported added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>labels</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{"source": "ansible"}</div> + </td> + <td> + <div>The optional labels of the license key to manage in vSphere vCenter.</div> + <div>This is dictionary with key/value pair.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>license</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The license key to manage in vSphere vCenter.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable supported added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable supported added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>absent</li> + <li><div style="color: blue"><b>present</b> ←</div></li> + </ul> + </td> + <td> + <div>Whether to add (<code>present</code>) or remove (<code>absent</code>) the license key.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable supported added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable supported added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - This module will also auto-assign the current vCenter to the license key if the product matches the license key, and vCenter us currently assigned an evaluation license only. + - The evaluation license (00000-00000-00000-00000-00000) is not listed when unused. + - If ``esxi_hostname`` is specified, then will assign the ``license`` key to the ESXi host. + - If ``esxi_hostname`` is not specified, then will just register the ``license`` key to vCenter inventory without assigning it to an ESXi host. + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add a new vCenter license + community.vmware.vcenter_license: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + license: f600d-21ae3-5592b-249e0-cc341 + state: present + delegate_to: localhost + + - name: Remove an (unused) vCenter license + community.vmware.vcenter_license: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + license: f600d-21ae3-5592b-249e0-cc341 + state: absent + delegate_to: localhost + + - name: Add ESXi license and assign to the ESXi host + community.vmware.vcenter_license: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + license: f600d-21ae3-5592b-249e0-dd502 + state: present + delegate_to: localhost + + - name: Add vSAN license and assign to the given cluster + community.vmware.vcenter_license: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter: '{{ datacenter_name }}' + cluster_name: '{{ cluster_name }}' + license: f600d-21ae3-5592b-249e0-dd502 + state: present + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>licenses</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>always</td> + <td> + <div>list of license keys after module executed</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['f600d-21ae3-5592b-249e0-cc341', '143cc-0e942-b2955-3ea12-d006f']</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Dag Wieers (@dagwieers) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vcenter_standard_key_provider_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vcenter_standard_key_provider_module.rst new file mode 100644 index 00000000..d4988ec4 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vcenter_standard_key_provider_module.rst @@ -0,0 +1,549 @@ +.. _community.vmware.vcenter_standard_key_provider_module: + + +********************************************** +community.vmware.vcenter_standard_key_provider +********************************************** + +**Add, reconfigure or remove Standard Key Provider on vCenter server** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module is used for adding, reconfiguring or removing Standard Key Provider on vCenter server. Refer to VMware docs for more information: `Standard Key Provider <https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.security.doc/GUID-6DB1E745-9624-43EA-847C-DD2F767CB94B.html>`_ + + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>kms_info</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>The information of an external key server (KMS).</div> + <div><code>kms_name</code>, <code>kms_ip</code> are required when adding a Standard Key Provider.</div> + <div>If <code>kms_port</code> is not specified, the default port 5696 will be used.</div> + <div><code>kms_ip</code>, <code>kms_port</code> can be reconfigured for an existing KMS with name <code>kms_name</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>kms_ip</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>IP address of the external KMS.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>kms_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the KMS to be configured.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>kms_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the external KMS.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>remove_kms</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Remove the configured KMS with name <code>kms_name</code> from the KMIP cluster.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>kms_password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Password to authenticate to the KMS.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>kms_username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Username to authenticate to the KMS.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>make_kms_trust_vc</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>After adding the Standard Key Provider to the vCenter Server, you can establish a trusted connection, the exact process depends on the certificates that the key provider accepts, and on your company policy.</div> + <div>Three methods implemented here, (1) upload client certificate and private key through <code>upload_client_cert</code> and <code>upload_client_key</code> parameters, (2) generate, update, download vCenter self signed certificate through <code>download_self_signed_cert</code> parameter, (3) download generated Certificate Signing Request(CSR) through <code>download_client_csr</code> parameter, send it to KMS then upload the KMS signed CSR through <code>upload_kms_signed_client_csr</code> parameter.</div> + <div>This is not set to be mandatory, if not set, please go to vCenter to setup trust connection with KMS manually.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>download_client_csr</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">path</span> + </div> + </td> + <td> + </td> + <td> + <div>The absolute path on local machine for keeping vCenter generated CSR.</div> + <div>Then upload the KMS signed CSR using <code>upload_kms_signed_client_csr</code> to vCenter.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>download_self_signed_cert</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">path</span> + </div> + </td> + <td> + </td> + <td> + <div>The absolute path on local machine for keeping vCenter generated self signed client cert.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>upload_client_cert</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">path</span> + </div> + </td> + <td> + </td> + <td> + <div>The absolute file path of client certificate.</div> + <div>Request a certificate and private key from the KMS vendor. The files are X509 files in PEM format.</div> + <div>The certificate might be already trusted by the KMS server.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>upload_client_key</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">path</span> + </div> + </td> + <td> + </td> + <td> + <div>The absolute file path of client private key to be uploaded together with <code>upload_client_cert</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>upload_kms_signed_client_csr</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">path</span> + </div> + </td> + <td> + </td> + <td> + <div>The absolute file path of KMS signed CSR downloaded from <code>download_client_csr</code>.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mark_default</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Set specified Key Provider with name <code>name</code> as the default Key Provider.</div> + <div>If new added Key Provider is the only key provider in vCenter, then will mark it as default after adding.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the Key Provider to be added, reconfigured or removed from vCenter.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the proxy server.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_server</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of the proxy server to connect to KMS.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>If set to <code>absent</code>, the named Key Provider will be removed from vCenter.</div> + <div>If set to <code>present</code>, the named existing Key Provider will be reconfigured or new Key Provider will be added.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add a new Standard Key Provider with client certificate and private key + community.vmware.vcenter_standard_key_provider: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + name: 'test_standard_kp' + state: 'present' + mark_default: True + kms_info: + - kms_name: test_kms_1 + kms_ip: 192.168.1.10 + make_kms_trust_vc: + upload_client_cert: "/tmp/test_cert.pem" + upload_client_key: "/tmp/test_cert_key.pem" + register: add_skp_result + + - name: Remove the KMS from the key provider cluster + community.vmware.vcenter_standard_key_provider: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + name: 'test_standard_kp' + state: 'present' + kms_info: + - kms_name: test_kms_1 + remove_kms: True + register: remove_kms_result + + - name: Remove the Standard Key Provider + community.vmware.vcenter_standard_key_provider: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + name: 'test_standard_kp' + state: 'absent' + register: remove_kp_result + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>key_provider_clusters</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>always</td> + <td> + <div>the Key Provider cluster info</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'has_backup': None, 'key_id': None, 'key_provide_id': 'test_standard', 'management_type': None, 'servers': [{'address': '192.168.1.10', 'name': 'test_kms', 'port': 5696, 'protocol': '', 'proxy': '', 'proxy_port': None, 'user_name': ''}], 'tpm_required': None, 'use_as_default': True}]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Diane Wang (@Tomorrow9) <dianew@vmware.com> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_about_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_about_info_module.rst new file mode 100644 index 00000000..575032f6 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_about_info_module.rst @@ -0,0 +1,237 @@ +.. _community.vmware.vmware_about_info_module: + + +********************************** +community.vmware.vmware_about_info +********************************** + +**Provides information about VMware server to which user is connecting to** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about VMware server to which user is trying to connect. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Provide information about vCenter + community.vmware.vmware_about_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + delegate_to: localhost + register: vcenter_about_info + + - name: Provide information about a standalone ESXi server + community.vmware.vmware_about_info: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + delegate_to: localhost + register: esxi_about_info + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>about_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>success</td> + <td> + <div>dict about VMware server</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'api_type': 'VirtualCenter', 'api_version': '6.5', 'build': '5973321', 'instance_uuid': 'dbed6e0c-bd88-4ef6-b594-21283e1c677f', 'license_product_name': 'VMware VirtualCenter Server', 'license_product_version': '6.0', 'locale_build': '000', 'locale_version': 'INTL', 'os_type': 'darwin-amd64', 'product_full_name': 'VMware vCenter Server 6.5.0 build-5973321', 'product_line_id': 'vpx', 'product_name': 'VMware vCenter Server (govmomi simulator)', 'vendor': 'VMware, Inc.', 'version': '6.5.0'}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_category_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_category_info_module.rst new file mode 100644 index 00000000..a8ce03dc --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_category_info_module.rst @@ -0,0 +1,259 @@ +.. _community.vmware.vmware_category_info_module: + + +************************************* +community.vmware.vmware_category_info +************************************* + +**Gather info about VMware tag categories** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about VMware tag categories. +- Tag feature is introduced in vSphere 6 version, so this module is not supported in earlier versions of vSphere. +- All variables and VMware object names are case sensitive. + + + +Requirements +------------ +The below requirements are needed on the host that executes this module. + +- vSphere Automation SDK + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>protocol</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>http</li> + <li><div style="color: blue"><b>https</b> ←</div></li> + </ul> + </td> + <td> + <div>The connection to protocol.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid.</div> + <div>Set to <code>False</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + </td> + </tr> + </table> + <br/> + + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather info about tag categories + community.vmware.vmware_category_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + delegate_to: localhost + register: all_tag_category_info + + - name: Gather category id from given tag category + community.vmware.vmware_category_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + delegate_to: localhost + register: tag_category_results + + - set_fact: + category_id: "{{ item.category_id }}" + loop: "{{ tag_category_results.tag_category_info|json_query(query) }}" + vars: + query: "[?category_name==`Category0001`]" + - debug: var=category_id + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>tag_category_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata of tag categories</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'category_associable_types': [], 'category_cardinality': 'MULTIPLE', 'category_description': 'awesome description', 'category_id': 'urn:vmomi:InventoryServiceCategory:e785088d-6981-4b1c-9fb8-1100c3e1f742:GLOBAL', 'category_name': 'Category0001', 'category_used_by': []}, {'category_associable_types': ['VirtualMachine'], 'category_cardinality': 'SINGLE', 'category_description': 'another awesome description', 'category_id': 'urn:vmomi:InventoryServiceCategory:ae5b7c6c-e622-4671-9b96-76e93adb70f2:GLOBAL', 'category_name': 'template_tag', 'category_used_by': []}]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_category_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_category_module.rst new file mode 100644 index 00000000..280485ef --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_category_module.rst @@ -0,0 +1,413 @@ +.. _community.vmware.vmware_category_module: + + +******************************** +community.vmware.vmware_category +******************************** + +**Manage VMware categories** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to create / delete / update VMware categories. +- Tag feature is introduced in vSphere 6 version, so this module is not supported in the earlier versions of vSphere. +- All variables and VMware object names are case sensitive. + + + +Requirements +------------ +The below requirements are needed on the host that executes this module. + +- vSphere Automation SDK + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>associable_object_types</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>All objects</li> + <li>Cluster</li> + <li>Content Library</li> + <li>Datacenter</li> + <li>Datastore</li> + <li>Datastore Cluster</li> + <li>Distributed Port Group</li> + <li>Distributed Switch</li> + <li>Folder</li> + <li>Host</li> + <li>Library item</li> + <li>Network</li> + <li>Host Network</li> + <li>Opaque Network</li> + <li>Resource Pool</li> + <li>vApp</li> + <li>Virtual Machine</li> + </ul> + </td> + <td> + <div>List of object types that can be associated with the given category.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>category_cardinality</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>multiple</b> ←</div></li> + <li>single</li> + </ul> + </td> + <td> + <div>The category cardinality.</div> + <div>This parameter is ignored, when updating existing category.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>category_description</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>The category description.</div> + <div>This is required only if <code>state</code> is set to <code>present</code>.</div> + <div>This parameter is ignored, when <code>state</code> is set to <code>absent</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>category_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of category to manage.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>new_category_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The new name for an existing category.</div> + <div>This value is used while updating an existing category.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>protocol</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>http</li> + <li><div style="color: blue"><b>https</b> ←</div></li> + </ul> + </td> + <td> + <div>The connection to protocol.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>The state of category.</div> + <div>If set to <code>present</code> and category does not exists, then category is created.</div> + <div>If set to <code>present</code> and category exists, then category is updated.</div> + <div>If set to <code>absent</code> and category exists, then category is deleted.</div> + <div>If set to <code>absent</code> and category does not exists, no action is taken.</div> + <div>Process of updating category only allows name, description change.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid.</div> + <div>Set to <code>False</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + </td> + </tr> + </table> + <br/> + + + + +Examples +-------- + +.. code-block:: yaml + + - name: Create a category + community.vmware.vmware_category: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + category_name: Sample_Cat_0001 + category_description: Sample Description + category_cardinality: 'multiple' + state: present + + - name: Rename category + community.vmware.vmware_category: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + category_name: Sample_Category_0001 + new_category_name: Sample_Category_0002 + state: present + + - name: Update category description + community.vmware.vmware_category: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + category_name: Sample_Category_0001 + category_description: Some fancy description + state: present + + - name: Delete category + community.vmware.vmware_category: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + category_name: Sample_Category_0002 + state: absent + + - name: Create category with 2 associable object types + community.vmware.vmware_category: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + category_name: 'Sample_Category_0003' + category_description: 'sample description' + associable_object_types: + - Datastore + - Cluster + state: present + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>category_results</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>on success</td> + <td> + <div>dictionary of category metadata</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'category_id': 'urn:vmomi:InventoryServiceCategory:d7120bda-9fa5-4f92-9d71-aa1acff2e5a8:GLOBAL', 'msg': 'Category NewCat_0001 updated.'}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_cfg_backup_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_cfg_backup_module.rst new file mode 100644 index 00000000..a44b4286 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_cfg_backup_module.rst @@ -0,0 +1,312 @@ +.. _community.vmware.vmware_cfg_backup_module: + + +********************************** +community.vmware.vmware_cfg_backup +********************************** + +**Backup / Restore / Reset ESXi host configuration** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to perform various operations related to backup, restore and reset of ESXi host configuration. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>dest</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">path</span> + </div> + </td> + <td> + </td> + <td> + <div>The destination where the ESXi configuration bundle will be saved. The <em>dest</em> can be a folder or a file.</div> + <div>If <em>dest</em> is a folder, the backup file will be saved in the folder with the default filename generated from the ESXi server.</div> + <div>If <em>dest</em> is a file, the backup file will be saved with that filename. The file extension will always be .tgz.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of ESXi server. This is required only if authentication against a vCenter is done.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>src</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">path</span> + </div> + </td> + <td> + </td> + <td> + <div>The file containing the ESXi configuration that will be restored.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>saved</li> + <li>absent</li> + <li>loaded</li> + </ul> + </td> + <td> + <div>If <code>saved</code>, the .tgz backup bundle will be saved in <em>dest</em>.</div> + <div>If <code>absent</code>, the host configuration will be reset to default values.</div> + <div>If <code>loaded</code>, the backup file in <em>src</em> will be loaded to the ESXi host rewriting the hosts settings.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - Works only for ESXi hosts + - For configuration load or reset, the host will be switched automatically to maintenance mode. + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Save the ESXi configuration locally by authenticating directly against the ESXi host + community.vmware.vmware_cfg_backup: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + state: saved + dest: /tmp/ + delegate_to: localhost + + - name: Save the ESXi configuration locally by authenticating against the vCenter and selecting the ESXi host + community.vmware.vmware_cfg_backup: + hostname: '{{ vcenter_hostname }}' + esxi_hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + state: saved + dest: /tmp/ + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>dest_file</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>changed</td> + <td> + <div>The full path of where the file holding the ESXi configurations was stored</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">/tmp/configBundle-esxi.host.domain.tgz</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Andreas Nafpliotis (@nafpliot-ibm) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_dpm_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_dpm_module.rst new file mode 100644 index 00000000..c3c8c5c6 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_dpm_module.rst @@ -0,0 +1,296 @@ +.. _community.vmware.vmware_cluster_dpm_module: + + +*********************************** +community.vmware.vmware_cluster_dpm +*********************************** + +**Manage Distributed Power Management (DPM) on VMware vSphere clusters** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Manages DPM on VMware vSphere clusters. +- All values and VMware object names are case sensitive. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the cluster to be managed.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the datacenter.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>default_dpm_behaviour</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>automated</b> ←</div></li> + <li>manual</li> + </ul> + </td> + <td> + <div>Whether dpm should be automated or manual</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enable_dpm</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to enable DPM.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>host_power_action_rate</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>1</li> + <li>2</li> + <li><div style="color: blue"><b>3</b> ←</div></li> + <li>4</li> + <li>5</li> + </ul> + </td> + <td> + <div>specify host power action rate</div> + <div>1 is the lowest and 5 the highest</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Enable DPM + community.vmware.vmware_cluster_dpm: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: datacenter + cluster_name: cluster + enable_dpm: true + default_dpm_behaviour: automated + host_power_action_rate: 2 + delegate_to: localhost + + + + +Status +------ + + +Authors +~~~~~~~ + +- Olivia Luetolf (@olilu) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_drs_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_drs_module.rst new file mode 100644 index 00000000..92af20e2 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_drs_module.rst @@ -0,0 +1,376 @@ +.. _community.vmware.vmware_cluster_drs_module: + + +*********************************** +community.vmware.vmware_cluster_drs +*********************************** + +**Manage Distributed Resource Scheduler (DRS) on VMware vSphere clusters** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Manages DRS on VMware vSphere clusters. +- All values and VMware object names are case sensitive. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>advanced_settings</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{}</div> + </td> + <td> + <div>A dictionary of advanced DRS settings.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the cluster to be managed.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the datacenter.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>drs_default_vm_behavior</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>fullyAutomated</b> ←</div></li> + <li>manual</li> + <li>partiallyAutomated</li> + </ul> + </td> + <td> + <div>Specifies the cluster-wide default DRS behavior for virtual machines.</div> + <div>If set to <code>partiallyAutomated</code>, vCenter generates recommendations for virtual machine migration and for the placement with a host, then automatically implements placement recommendations at power on.</div> + <div>If set to <code>manual</code>, then vCenter generates recommendations for virtual machine migration and for the placement with a host, but does not implement the recommendations automatically.</div> + <div>If set to <code>fullyAutomated</code>, then vCenter automates both the migration of virtual machines and their placement with a host at power on.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>drs_enable_vm_behavior_overrides</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Whether DRS Behavior overrides for individual virtual machines are enabled.</div> + <div>If set to <code>True</code>, overrides <code>drs_default_vm_behavior</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>drs_vmotion_rate</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>1</li> + <li>2</li> + <li><div style="color: blue"><b>3</b> ←</div></li> + <li>4</li> + <li>5</li> + </ul> + </td> + <td> + <div>Threshold for generated ClusterRecommendations ranging from 1 (lowest) to 5 (highest).</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enable</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Whether to enable DRS.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>predictive_drs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 3.3.0</div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>In addition to real-time metrics, DRS will respond to forecasted metrics provided by vRealize Operations Manager.</div> + <div>You must also configure Predictive DRS in a version of vRealize Operations that supports this feature.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Enable DRS + community.vmware.vmware_cluster_drs: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: datacenter + cluster_name: cluster + enable: true + delegate_to: localhost + - name: Enable DRS and distribute a more even number of virtual machines across hosts for availability + community.vmware.vmware_cluster_drs: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: datacenter + cluster_name: cluster + enable: true + advanced_settings: + 'TryBalanceVmsPerHost': '1' + delegate_to: localhost + - name: Enable DRS and set default VM behavior to partially automated + community.vmware.vmware_cluster_drs: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter_name: DC0 + cluster_name: "{{ cluster_name }}" + enable: True + drs_default_vm_behavior: partiallyAutomated + delegate_to: localhost + + + + +Status +------ + + +Authors +~~~~~~~ + +- Joseph Callen (@jcpowermac) +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_ha_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_ha_module.rst new file mode 100644 index 00000000..40a5c407 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_ha_module.rst @@ -0,0 +1,699 @@ +.. _community.vmware.vmware_cluster_ha_module: + + +********************************** +community.vmware.vmware_cluster_ha +********************************** + +**Manage High Availability (HA) on VMware vSphere clusters** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Manages HA configuration on VMware vSphere clusters. +- All values and VMware object names are case sensitive. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>advanced_settings</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{}</div> + </td> + <td> + <div>A dictionary of advanced HA settings.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>apd_delay</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.9.0</div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">180</div> + </td> + <td> + <div>The response recovery delay time in sec for storage failures categorized as All Paths Down (APD).</div> + <div>Only set if <code>apd_response</code> is <code>restartConservative</code> or <code>restartAggressive</code>.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>apd_reaction</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.9.0</div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>reset</b> ←</div></li> + <li>none</li> + </ul> + </td> + <td> + <div>VM response recovery reaction for storage failures categorized as All Paths Down (APD).</div> + <div>Only set if <code>apd_response</code> is <code>restartConservative</code> or <code>restartAggressive</code>.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>apd_response</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>disabled</li> + <li><div style="color: blue"><b>warning</b> ←</div></li> + <li>restartConservative</li> + <li>restartAggressive</li> + </ul> + </td> + <td> + <div>VM storage protection setting for storage failures categorized as All Paths Down (APD).</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the cluster to be managed.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the datacenter.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter_name</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enable</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Whether to enable HA.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>failover_host_admission_control</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Configure dedicated failover hosts.</div> + <div><code>slot_based_admission_control</code>, <code>reservation_based_admission_control</code> and <code>failover_host_admission_control</code> are mutually exclusive.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>failover_hosts</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>List of dedicated failover hosts.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ha_host_monitoring</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>enabled</b> ←</div></li> + <li>disabled</li> + </ul> + </td> + <td> + <div>Whether HA restarts virtual machines after a host fails.</div> + <div>If set to <code>enabled</code>, HA restarts virtual machines after a host fails.</div> + <div>If set to <code>disabled</code>, HA does not restart virtual machines after a host fails.</div> + <div>If <code>enable</code> is set to <code>False</code>, then this value is ignored.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ha_restart_priority</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>disabled</li> + <li>high</li> + <li>low</li> + <li><div style="color: blue"><b>medium</b> ←</div></li> + </ul> + </td> + <td> + <div>Priority HA gives to a virtual machine if sufficient capacity is not available to power on all failed virtual machines.</div> + <div>Valid only if <em>ha_vm_monitoring</em> is set to either <code>vmAndAppMonitoring</code> or <code>vmMonitoringOnly</code>.</div> + <div>If set to <code>disabled</code>, then HA is disabled for this virtual machine.</div> + <div>If set to <code>high</code>, then virtual machine with this priority have a higher chance of powering on after a failure, when there is insufficient capacity on hosts to meet all virtual machine needs.</div> + <div>If set to <code>medium</code>, then virtual machine with this priority have an intermediate chance of powering on after a failure, when there is insufficient capacity on hosts to meet all virtual machine needs.</div> + <div>If set to <code>low</code>, then virtual machine with this priority have a lower chance of powering on after a failure, when there is insufficient capacity on hosts to meet all virtual machine needs.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ha_vm_failure_interval</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">30</div> + </td> + <td> + <div>The number of seconds after which virtual machine is declared as failed if no heartbeat has been received.</div> + <div>This setting is only valid if <code>ha_vm_monitoring</code> is set to, either <code>vmAndAppMonitoring</code> or <code>vmMonitoringOnly</code>.</div> + <div>Unit is seconds.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ha_vm_max_failure_window</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">-1</div> + </td> + <td> + <div>The number of seconds for the window during which up to <code>ha_vm_max_failures</code> resets can occur before automated responses stop.</div> + <div>Valid only when <em>ha_vm_monitoring</em> is set to either <code>vmAndAppMonitoring</code> or <code>vmMonitoringOnly</code>.</div> + <div>Unit is seconds.</div> + <div>Default specifies no failure window.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ha_vm_max_failures</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">3</div> + </td> + <td> + <div>Maximum number of failures and automated resets allowed during the time that <code>ha_vm_max_failure_window</code> specifies.</div> + <div>Valid only when <em>ha_vm_monitoring</em> is set to either <code>vmAndAppMonitoring</code> or <code>vmMonitoringOnly</code>.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ha_vm_min_up_time</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">120</div> + </td> + <td> + <div>The number of seconds for the virtual machine's heartbeats to stabilize after the virtual machine has been powered on.</div> + <div>Valid only when <em>ha_vm_monitoring</em> is set to either <code>vmAndAppMonitoring</code> or <code>vmMonitoringOnly</code>.</div> + <div>Unit is seconds.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ha_vm_monitoring</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>vmAndAppMonitoring</li> + <li>vmMonitoringOnly</li> + <li><div style="color: blue"><b>vmMonitoringDisabled</b> ←</div></li> + </ul> + </td> + <td> + <div>State of virtual machine health monitoring service.</div> + <div>If set to <code>vmAndAppMonitoring</code>, HA response to both virtual machine and application heartbeat failure.</div> + <div>If set to <code>vmMonitoringDisabled</code>, virtual machine health monitoring is disabled.</div> + <div>If set to <code>vmMonitoringOnly</code>, HA response to virtual machine heartbeat failure.</div> + <div>If <code>enable</code> is set to <code>False</code>, then this value is ignored.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>host_isolation_response</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>none</b> ←</div></li> + <li>powerOff</li> + <li>shutdown</li> + </ul> + </td> + <td> + <div>Indicates whether or VMs should be powered off if a host determines that it is isolated from the rest of the compute resource.</div> + <div>If set to <code>none</code>, do not power off VMs in the event of a host network isolation.</div> + <div>If set to <code>powerOff</code>, power off VMs in the event of a host network isolation.</div> + <div>If set to <code>shutdown</code>, shut down VMs guest operating system in the event of a host network isolation.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>pdl_response</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>disabled</li> + <li><div style="color: blue"><b>warning</b> ←</div></li> + <li>restartAggressive</li> + </ul> + </td> + <td> + <div>VM storage protection setting for storage failures categorized as Permenant Device Loss (PDL).</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>reservation_based_admission_control</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Configure reservation based admission control policy.</div> + <div><code>slot_based_admission_control</code>, <code>reservation_based_admission_control</code> and <code>failover_host_admission_control</code> are mutually exclusive.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>auto_compute_percentages</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>By default, <code>failover_level</code> is used to calculate <code>cpu_failover_resources_percent</code> and <code>memory_failover_resources_percent</code>. If a user wants to override the percentage values, he has to set this field to false.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cpu_failover_resources_percent</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">50</div> + </td> + <td> + <div>Percentage of CPU resources in the cluster to reserve for failover. Ignored if <code>auto_compute_percentages</code> is not set to false.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>failover_level</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Number of host failures that should be tolerated.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>memory_failover_resources_percent</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">50</div> + </td> + <td> + <div>Percentage of memory resources in the cluster to reserve for failover. Ignored if <code>auto_compute_percentages</code> is not set to false.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>slot_based_admission_control</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Configure slot based admission control policy.</div> + <div><code>slot_based_admission_control</code>, <code>reservation_based_admission_control</code> and <code>failover_host_admission_control</code> are mutually exclusive.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>failover_level</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Number of host failures that should be tolerated.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Enable HA without admission control + community.vmware.vmware_cluster_ha: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: datacenter + cluster_name: cluster + enable: true + delegate_to: localhost + + - name: Enable HA and VM monitoring without admission control + community.vmware.vmware_cluster_ha: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter_name: DC0 + cluster_name: "{{ cluster_name }}" + enable: True + ha_vm_monitoring: vmMonitoringOnly + delegate_to: localhost + + - name: Enable HA with admission control reserving 50% of resources for HA + community.vmware.vmware_cluster_ha: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: datacenter + cluster_name: cluster + enable: true + reservation_based_admission_control: + auto_compute_percentages: False + failover_level: 1 + cpu_failover_resources_percent: 50 + memory_failover_resources_percent: 50 + delegate_to: localhost + + + + +Status +------ + + +Authors +~~~~~~~ + +- Joseph Callen (@jcpowermac) +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_info_module.rst new file mode 100644 index 00000000..ef622804 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_info_module.rst @@ -0,0 +1,362 @@ +.. _community.vmware.vmware_cluster_info_module: + + +************************************ +community.vmware.vmware_cluster_info +************************************ + +**Gather info about clusters available in given vCenter** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about clusters in VMWare infrastructure. +- All values and VMware object names are case sensitive. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster.</div> + <div>If set, information of this cluster will be returned.</div> + <div>This parameter is required, if <code>datacenter</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Datacenter to search for cluster/s.</div> + <div>This parameter is required, if <code>cluster_name</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>properties</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify the properties to retrieve.</div> + <div>Example:</div> + <div>properties: [</div> + <div>"name",</div> + <div>"configuration.dasConfig.enabled",</div> + <div>"summary.totalCpu"</div> + <div>]</div> + <div>Only valid when <code>schema</code> is <code>vsphere</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>schema</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>summary</b> ←</div></li> + <li>vsphere</li> + </ul> + </td> + <td> + <div>Specify the output schema desired.</div> + <div>The 'summary' output schema is the legacy output from the module.</div> + <div>The 'vsphere' output schema is the vSphere API class definition which requires pyvmomi>6.7.1.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>show_tag</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Tags related to cluster are shown if set to <code>True</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather cluster info from given datacenter + community.vmware.vmware_cluster_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter: ha-datacenter + delegate_to: localhost + register: cluster_info + + - name: Gather info from datacenter about specific cluster + community.vmware.vmware_cluster_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: DC0_C0 + delegate_to: localhost + register: cluster_info + + - name: Gather info from datacenter about specific cluster with tags + community.vmware.vmware_cluster_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: DC0_C0 + show_tag: True + delegate_to: localhost + register: cluster_info + + - name: Gather some info from a cluster using the vSphere API output schema + vmware_cluster_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: DC0_C0 + schema: vsphere + properties: + - name + - configuration.dasConfig.enabled + - summary.totalCpu + delegate_to: localhost + register: cluster_info + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>clusters</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the available clusters</div> + <div>datacenter added in the return values from version 1.6.0</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'DC0_C0': {'datacenter': 'DC0', 'moid': 'domain-c9', 'drs_default_vm_behavior': None, 'drs_enable_vm_behavior_overrides': None, 'drs_vmotion_rate': None, 'enable_ha': None, 'enabled_drs': True, 'enabled_vsan': False, 'ha_admission_control_enabled': None, 'ha_failover_level': None, 'ha_host_monitoring': None, 'ha_restart_priority': None, 'ha_vm_failure_interval': None, 'ha_vm_max_failure_window': None, 'ha_vm_max_failures': None, 'ha_vm_min_up_time': None, 'ha_vm_monitoring': None, 'ha_vm_tools_monitoring': None, 'vsan_auto_claim_storage': False, 'hosts': [{'name': 'esxi01.vsphere.local', 'folder': '/DC0/host/DC0_C0'}, {'name': 'esxi02.vsphere.local', 'folder': '/DC0/host/DC0_C0'}, {'name': 'esxi03.vsphere.local', 'folder': '/DC0/host/DC0_C0'}, {'name': 'esxi04.vsphere.local', 'folder': '/DC0/host/DC0_C0'}], 'resource_summary': {'cpuCapacityMHz': 4224, 'cpuUsedMHz': 87, 'memCapacityMB': 6139, 'memUsedMB': 1254, 'pMemAvailableMB': 0, 'pMemCapacityMB': 0, 'storageCapacityMB': 33280, 'storageUsedMB': 19953}, 'tags': [{'category_id': 'urn:vmomi:InventoryServiceCategory:9fbf83de-7903-442e-8004-70fd3940297c:GLOBAL', 'category_name': 'sample_cluster_cat_0001', 'description': '', 'id': 'urn:vmomi:InventoryServiceTag:93d680db-b3a6-4834-85ad-3e9516e8fee8:GLOBAL', 'name': 'sample_cluster_tag_0001'}]}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) +- Christian Neugum (@digifuchsi) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_module.rst new file mode 100644 index 00000000..4cdf0c4f --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_module.rst @@ -0,0 +1,275 @@ +.. _community.vmware.vmware_cluster_module: + + +******************************* +community.vmware.vmware_cluster +******************************* + +**Manage VMware vSphere clusters** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Adds or removes VMware vSphere clusters. +- To manage DRS, HA and VSAN related configurations, use the new modules vmware_cluster_drs, vmware_cluster_ha and vmware_cluster_vsan. +- All values and VMware object names are case sensitive. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the cluster to be managed.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the datacenter.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>absent</li> + <li><div style="color: blue"><b>present</b> ←</div></li> + </ul> + </td> + <td> + <div>Create <code>present</code> or remove <code>absent</code> a VMware vSphere cluster.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + +See Also +-------- + +.. seealso:: + + :ref:`community.vmware.vmware_cluster_drs_module` + The official documentation on the **community.vmware.vmware_cluster_drs** module. + :ref:`community.vmware.vmware_cluster_ha_module` + The official documentation on the **community.vmware.vmware_cluster_ha** module. + :ref:`community.vmware.vmware_cluster_vsan_module` + The official documentation on the **community.vmware.vmware_cluster_vsan** module. + + +Examples +-------- + +.. code-block:: yaml + + - name: Create Cluster + community.vmware.vmware_cluster: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: datacenter + cluster_name: cluster + delegate_to: localhost + + - name: Delete Cluster + community.vmware.vmware_cluster: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter_name: datacenter + cluster_name: cluster + state: absent + delegate_to: localhost + + + + +Status +------ + + +Authors +~~~~~~~ + +- Joseph Callen (@jcpowermac) +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_vcls_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_vcls_module.rst new file mode 100644 index 00000000..680ad64e --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_vcls_module.rst @@ -0,0 +1,287 @@ +.. _community.vmware.vmware_cluster_vcls_module: + + +************************************ +community.vmware.vmware_cluster_vcls +************************************ + +**Override the default vCLS (vSphere Cluster Services) VM disk placement for this cluster.** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Override the default vCLS VM disk placement for this cluster. +- Some datastores cannot be selected for vCLS 'Allowed' as they are blocked by solutions as SRM or vSAN maintenance mode where vCLS cannot be configured. +- All values and VMware object names are case sensitive. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>allowed_datastores</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>List of the allowed Datastores.</div> + <div>If there is one more in the current List it will be removed.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the cluster to be managed.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the datacenter.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Set Allowed vCLS Datastores + community.vmware.vmware_cluster_vcls: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: datacenter + cluster_name: cluster + allowed_datastores: + - ds1 + - ds2 + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>information about performed operation</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'result': None, 'Added_AllowedDatastores': ['ds2'], 'Removed_AllowedDatastores': ['ds3']}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Joseph Callen (@jcpowermac) +- Nina Loser (@Nina2244) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_vsan_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_vsan_module.rst new file mode 100644 index 00000000..3129040a --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_cluster_vsan_module.rst @@ -0,0 +1,415 @@ +.. _community.vmware.vmware_cluster_vsan_module: + + +************************************ +community.vmware.vmware_cluster_vsan +************************************ + +**Manages virtual storage area network (vSAN) configuration on VMware vSphere clusters** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Manages vSAN on VMware vSphere clusters. +- All values and VMware object names are case sensitive. + + + +Requirements +------------ +The below requirements are needed on the host that executes this module. + +- vSAN Management SDK, which needs to be downloaded from VMware and installed manually. + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>advanced_options</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Advanced VSAN Options.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>automatic_rebalance</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>If enabled, vSAN automatically rebalances (moves the data among disks) when a capacity disk fullness hits proactive rebalance threshold.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>disable_site_read_locality</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>For vSAN stretched clusters, reads to vSAN objects occur on the site the VM resides on.</div> + <div>Setting to <code>True</code> will force reads across all mirrors.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>large_cluster_support</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Allow > 32 VSAN hosts per cluster; if this is changed on an existing vSAN cluster, all hosts are required to reboot to apply this change.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>object_repair_timer</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Delay time in minutes for VSAN to wait for the absent component to come back before starting to repair it.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>thin_swap</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>When <code>enabled</code>, swap objects would not reserve 100% space of their size on vSAN datastore.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the cluster to be managed.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the datacenter.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter_name</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enable</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Whether to enable vSAN.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vsan_auto_claim_storage</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether the VSAN service is configured to automatically claim local storage on VSAN-enabled hosts in the cluster.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Enable vSAN + community.vmware.vmware_cluster_vsan: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: datacenter + cluster_name: cluster + enable: true + delegate_to: localhost + + - name: Enable vSAN and automatic rebalancing + community.vmware.vmware_cluster_vsan: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: datacenter + cluster_name: cluster + enable: true + advanced_options: + automatic_rebalance: True + delegate_to: localhost + + - name: Enable vSAN and claim storage automatically + community.vmware.vmware_cluster_vsan: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter_name: DC0 + cluster_name: "{{ cluster_name }}" + enable: True + vsan_auto_claim_storage: True + delegate_to: localhost + + + + +Status +------ + + +Authors +~~~~~~~ + +- Joseph Callen (@jcpowermac) +- Abhijeet Kasurde (@Akasurde) +- Mario Lenz (@mariolenz) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_content_deploy_ovf_template_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_content_deploy_ovf_template_module.rst new file mode 100644 index 00000000..ed0275ce --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_content_deploy_ovf_template_module.rst @@ -0,0 +1,461 @@ +.. _community.vmware.vmware_content_deploy_ovf_template_module: + + +*************************************************** +community.vmware.vmware_content_deploy_ovf_template +*************************************************** + +**Deploy Virtual Machine from ovf template stored in content library.** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Module to deploy virtual machine from ovf template in content library. +- All variables and VMware object names are case sensitive. + + + +Requirements +------------ +The below requirements are needed on the host that executes this module. + +- vSphere Automation SDK + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster in datacenter in which to place deployed VM.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datacenter, where VM to be deployed.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datastore to store deployed VM and disk.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore_cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datastore cluster housing a datastore to store deployed VM and disk.</div> + <div>If datastore is not specified, the recommended datastore from this cluster will be used.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"vm"</div> + </td> + <td> + <div>Name of the folder in datacenter in which to place deployed VM.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the ESX Host in datacenter in which to place deployed VM. The host has to be a member of the cluster that contains the resource pool.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>library</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the content library from where the template resides.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: content_library, content_library_src</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>log_level</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>debug</li> + <li>info</li> + <li><div style="color: blue"><b>normal</b> ←</div></li> + </ul> + </td> + <td> + <div>The level of logging desired in this module.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the VM to be deployed.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: vm_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>protocol</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>http</li> + <li><div style="color: blue"><b>https</b> ←</div></li> + </ul> + </td> + <td> + <div>The connection to protocol.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>resource_pool</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the resourcepool in datacenter in which to place deployed VM.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>storage_provisioning</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>thin</b> ←</div></li> + <li>thick</li> + <li>eagerZeroedThick</li> + <li>eagerzeroedthick</li> + </ul> + </td> + <td> + <div>Default storage provisioning type to use for all sections of type vmw:StorageSection in the OVF descriptor.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>template</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of OVF template from which VM to be deployed.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: ovf, ovf_template, template_src</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid.</div> + <div>Set to <code>False</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + </td> + </tr> + </table> + <br/> + + + + +Examples +-------- + +.. code-block:: yaml + + - name: Deploy Virtual Machine from OVF template in content library + community.vmware.vmware_content_deploy_ovf_template: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + ovf_template: rhel_test_template + datastore: Shared_NFS_Volume + folder: vm + datacenter: Sample_DC_1 + name: Sample_VM + resource_pool: test_rp + delegate_to: localhost + + - name: Deploy Virtual Machine from OVF template in content library with eagerZeroedThick storage + vmware_content_deploy_ovf_template: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + ovf_template: rhel_test_template + datastore: Shared_NFS_Volume + folder: vm + datacenter: Sample_DC_1 + name: Sample_VM + resource_pool: test_rp + storage_provisioning: eagerZeroedThick + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>vm_deploy_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>on success</td> + <td> + <div>Virtual machine deployment message and vm_id</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'msg': "Deployed Virtual Machine 'Sample_VM'.", 'vm_id': 'vm-1009'}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Lev Goncharv (@ultral) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_content_deploy_template_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_content_deploy_template_module.rst new file mode 100644 index 00000000..b8f99293 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_content_deploy_template_module.rst @@ -0,0 +1,477 @@ +.. _community.vmware.vmware_content_deploy_template_module: + + +*********************************************** +community.vmware.vmware_content_deploy_template +*********************************************** + +**Deploy Virtual Machine from template stored in content library.** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Module to deploy virtual machine from template in content library. +- Content Library feature is introduced in vSphere 6.0 version. +- vmtx templates feature is introduced in vSphere 67U1 and APIs for clone template from content library in 67U2. +- This module does not work with vSphere version older than 67U2. +- All variables and VMware object names are case sensitive. + + + +Requirements +------------ +The below requirements are needed on the host that executes this module. + +- vSphere Automation SDK + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster in datacenter in which to place deployed VM.</div> + <div>Required if <em>resource_pool</em> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datacenter, where VM to be deployed.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datastore to store deployed VM and disk.</div> + <div>Required if <em>datastore_cluster</em> is not provided.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore_cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datastore cluster to store deployed VM and disk.</div> + <div>Please make sure Storage DRS is active for recommended datastore from the given datastore cluster.</div> + <div>If Storage DRS is not enabled, datastore with largest free storage space is selected.</div> + <div>Required if <em>datastore</em> is not provided.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"vm"</div> + </td> + <td> + <div>Name of the folder in datacenter in which to place deployed VM.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the ESX Host in datacenter in which to place deployed VM.</div> + <div>The host has to be a member of the cluster that contains the resource pool.</div> + <div>Required with <em>resource_pool</em> to find resource pool details. This will be used as additional information when there are resource pools with same name.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>library</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the content library from where the template resides.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: content_library, content_library_src</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>log_level</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>debug</li> + <li>info</li> + <li><div style="color: blue"><b>normal</b> ←</div></li> + </ul> + </td> + <td> + <div>The level of logging desired in this module.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the VM to be deployed.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: vm_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>protocol</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>http</li> + <li><div style="color: blue"><b>https</b> ←</div></li> + </ul> + </td> + <td> + <div>The connection to protocol.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>resource_pool</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the resource pool in datacenter in which to place deployed VM.</div> + <div>Required if <em>cluster</em> is not specified.</div> + <div>For default or non-unique resource pool names, specify <em>host</em> and <em>cluster</em>.</div> + <div><code>Resources</code> is the default name of resource pool.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>poweredon</li> + </ul> + </td> + <td> + <div>The state of Virtual Machine deployed from template in content library.</div> + <div>If set to <code>present</code> and VM does not exists, then VM is created.</div> + <div>If set to <code>present</code> and VM exists, no action is taken.</div> + <div>If set to <code>poweredon</code> and VM does not exists, then VM is created with powered on state.</div> + <div>If set to <code>poweredon</code> and VM exists, no action is taken.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>template</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of template from which VM to be deployed.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: template_src</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid.</div> + <div>Set to <code>False</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + </td> + </tr> + </table> + <br/> + + + + +Examples +-------- + +.. code-block:: yaml + + - name: Deploy Virtual Machine from template in content library + community.vmware.vmware_content_deploy_template: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + template: rhel_test_template + datastore: Shared_NFS_Volume + folder: vm + datacenter: Sample_DC_1 + name: Sample_VM + resource_pool: test_rp + state: present + delegate_to: localhost + + - name: Deploy Virtual Machine from template in content library with PowerON State + community.vmware.vmware_content_deploy_template: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + template: rhel_test_template + content_library: test_content_library + datastore: Shared_NFS_Volume + folder: vm + datacenter: Sample_DC_1 + name: Sample_VM + resource_pool: test_rp + state: poweredon + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>vm_deploy_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>on success</td> + <td> + <div>Virtual machine deployment message and vm_id</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'msg': "Deployed Virtual Machine 'Sample_VM'.", 'vm_id': 'vm-1009'}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Pavan Bidkar (@pgbidkar) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_content_library_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_content_library_info_module.rst new file mode 100644 index 00000000..e33e87a4 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_content_library_info_module.rst @@ -0,0 +1,284 @@ +.. _community.vmware.vmware_content_library_info_module: + + +******************************************** +community.vmware.vmware_content_library_info +******************************************** + +**Gather information about VMWare Content Library** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Module to list the content libraries. +- Module to get information about specific content library. +- Content Library feature is introduced in vSphere 6.0 version, so this module is not supported in the earlier versions of vSphere. +- All variables and VMware object names are case sensitive. + + + +Requirements +------------ +The below requirements are needed on the host that executes this module. + +- vSphere Automation SDK + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>library_id</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>content library id for which details needs to be fetched.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>protocol</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>http</li> + <li><div style="color: blue"><b>https</b> ←</div></li> + </ul> + </td> + <td> + <div>The connection to protocol.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid.</div> + <div>Set to <code>False</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + </td> + </tr> + </table> + <br/> + + + + +Examples +-------- + +.. code-block:: yaml + + - name: Get List of Content Libraries + community.vmware.vmware_content_library_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + delegate_to: localhost + + - name: Get information about content library + community.vmware.vmware_content_library_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + library_id: '13b0f060-f4d3-4f84-b61f-0fe1b0c0a5a8' + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>content_lib_details</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>on success</td> + <td> + <div>list of content library metadata</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'library_creation_time': '2019-07-02T11:50:52.242000', 'library_description': 'new description', 'library_id': '13b0f060-f4d3-4f84-b61f-0fe1b0c0a5a8', 'library_name': 'demo-local-lib', 'library_publish_info': {'authentication_method': 'NONE', 'persist_json_enabled': False, 'publish_url': None, 'published': False, 'user_name': None}, 'library_server_guid': '0fd5813b-aac7-4b92-9fb7-f18f16565613', 'library_type': 'LOCAL', 'library_version': '3'}]</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>content_libs</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>on success</td> + <td> + <div>list of content libraries</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['ded9c4d5-0dcd-4837-b1d8-af7398511e33', '36b72549-14ed-4b5f-94cb-6213fecacc02']</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Pavan Bidkar (@pgbidkar) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_content_library_manager_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_content_library_manager_module.rst new file mode 100644 index 00000000..2e5ce3ea --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_content_library_manager_module.rst @@ -0,0 +1,439 @@ +.. _community.vmware.vmware_content_library_manager_module: + + +*********************************************** +community.vmware.vmware_content_library_manager +*********************************************** + +**Create, update and delete VMware content library** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Module to manage VMware content Library +- Content Library feature is introduced in vSphere 6.0 version, so this module is not supported in the earlier versions of vSphere. +- All variables and VMware object names are case sensitive. + + + +Requirements +------------ +The below requirements are needed on the host that executes this module. + +- vSphere Automation SDK + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datastore on which backing content library is created.</div> + <div>This is required only if <em>state</em> is set to <code>present</code>.</div> + <div>This parameter is ignored, when <em>state</em> is set to <code>absent</code>.</div> + <div>Currently only datastore backing creation is supported.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datastore</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>library_description</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The content library description.</div> + <div>This is required only if <em>state</em> is set to <code>present</code>.</div> + <div>This parameter is ignored, when <em>state</em> is set to <code>absent</code>.</div> + <div>Process of updating content library only allows description change.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>library_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of VMware content library to manage.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>library_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>local</b> ←</div></li> + <li>subscribed</li> + </ul> + </td> + <td> + <div>The content library type.</div> + <div>This is required only if <em>state</em> is set to <code>present</code>.</div> + <div>This parameter is ignored, when <em>state</em> is set to <code>absent</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>protocol</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>http</li> + <li><div style="color: blue"><b>https</b> ←</div></li> + </ul> + </td> + <td> + <div>The connection to protocol.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ssl_thumbprint</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>The SHA1 SSL thumbprint of the subscribed content library to subscribe to.</div> + <div>This is required only if <em>library_type</em> is set to <code>subscribed</code> and the library is https.</div> + <div>This parameter is ignored, when <em>state</em> is set to <code>absent</code>.</div> + <div>The information can be extracted using openssl using the following example: <code>echo | openssl s_client -connect test-library.com:443 |& openssl x509 -fingerprint -noout</code></div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>The state of content library.</div> + <div>If set to <code>present</code> and library does not exists, then content library is created.</div> + <div>If set to <code>present</code> and library exists, then content library is updated.</div> + <div>If set to <code>absent</code> and library exists, then content library is deleted.</div> + <div>If set to <code>absent</code> and library does not exists, no action is taken.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>subscription_url</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>The url of the content library to subscribe to.</div> + <div>This is required only if <em>library_type</em> is set to <code>subscribed</code>.</div> + <div>This parameter is ignored, when <em>state</em> is set to <code>absent</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>update_on_demand</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to download all content on demand.</div> + <div>If set to <code>True</code>, all content will be downloaded on demand.</div> + <div>If set to <code>False</code> content will be downloaded ahead of time.</div> + <div>This is required only if <em>library_type</em> is set to <code>subscribed</code>.</div> + <div>This parameter is ignored, when <em>state</em> is set to <code>absent</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid.</div> + <div>Set to <code>False</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + </td> + </tr> + </table> + <br/> + + + + +Examples +-------- + +.. code-block:: yaml + + - name: Create Local Content Library + community.vmware.vmware_content_library_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + library_name: test-content-lib + library_description: 'Library with Datastore Backing' + library_type: local + datastore_name: datastore + state: present + delegate_to: localhost + + - name: Create Subscribed Content Library + community.vmware.vmware_content_library_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + library_name: test-content-lib + library_description: 'Subscribed Library with Datastore Backing' + library_type: subscribed + datastore_name: datastore + subscription_url: 'https://library.url' + ssl_thumbprint: 'aa:bb:cc:dd:ee:ff:gg:hh:ii:jj:kk:ll:mm:nn:oo:pp:qq:rr:ss:tt' + update_on_demand: true + state: present + delegate_to: localhost + + - name: Update Content Library + community.vmware.vmware_content_library_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + library_name: test-content-lib + library_description: 'Library with Datastore Backing' + state: present + delegate_to: localhost + + - name: Delete Content Library + community.vmware.vmware_content_library_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + library_name: test-content-lib + state: absent + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>content_library_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>on success</td> + <td> + <div>library creation success and library_id</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'library_id': 'd0b92fa9-7039-4f29-8e9c-0debfcb22b72', 'library_description': 'Test description', 'library_type': 'LOCAL', 'msg': "Content Library 'demo-local-lib-4' created."}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Pavan Bidkar (@pgbidkar) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_custom_attribute_manager_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_custom_attribute_manager_module.rst new file mode 100644 index 00000000..3a907722 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_custom_attribute_manager_module.rst @@ -0,0 +1,347 @@ +.. _community.vmware.vmware_custom_attribute_manager_module: + + +************************************************ +community.vmware.vmware_custom_attribute_manager +************************************************ + +**Manage custom attributes from VMware for the given vSphere object** + + +Version added: 3.2.0 + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to add, remove and update custom attributes for the given vSphere object. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>custom_attributes</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>A list of name and value of custom attributes that needs to be manage.</div> + <div>Value of custom attribute is not required and will be ignored, if <code>state</code> is set to <code>absent</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the attribute.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>value</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>Value of the attribute.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>object_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the vSphere object to work with.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>object_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>Cluster</li> + <li>Datacenter</li> + <li>Datastore</li> + <li>DistributedVirtualPortgroup</li> + <li>DistributedVirtualSwitch</li> + <li>Folder</li> + <li>HostSystem</li> + <li>ResourcePool</li> + <li>VirtualMachine</li> + </ul> + </td> + <td> + <div>Type of the object the custom attribute is associated with.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>If set to <code>present</code>, the custom attribute is set to the given value.</div> + <div>If set to <code>absent</code>, the custom attribute is cleared. The given value is ignored in this case.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add virtual machine custom attributes + community.vmware.vmware_custom_attribute_manager: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + object_name: vm1 + object_type: VirtualMachine + state: present + custom_attributes: + - name: MyAttribute + value: MyValue + delegate_to: localhost + + - name: Add multiple virtual machine custom attributes + community.vmware.vmware_custom_attribute_manager: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + object_name: vm1 + object_type: VirtualMachine + state: present + custom_attributes: + - name: MyAttribute + value: MyValue + - name: MyAttribute2 + value: MyValue2 + delegate_to: localhost + + - name: Remove virtual machine Attribute + community.vmware.vmware_custom_attribute_manager: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + object_name: vm1 + object_type: VirtualMachine + state: absent + custom_attributes: + - name: MyAttribute + delegate_to: localhost + register: attributes + + + + +Status +------ + + +Authors +~~~~~~~ + +- Mario Lenz (@mariolenz) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_custom_attribute_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_custom_attribute_module.rst new file mode 100644 index 00000000..6cf06880 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_custom_attribute_module.rst @@ -0,0 +1,279 @@ +.. _community.vmware.vmware_custom_attribute_module: + + +**************************************** +community.vmware.vmware_custom_attribute +**************************************** + +**Manage custom attributes definitions** + + +Version added: 3.2.0 + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to add and remove custom attributes definitions for various vSphere objects. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>custom_attribute</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the custom attribute.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>object_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>Cluster</li> + <li>Datacenter</li> + <li>Datastore</li> + <li>DistributedVirtualPortgroup</li> + <li>DistributedVirtualSwitch</li> + <li>Folder</li> + <li>Global</li> + <li>HostSystem</li> + <li>ResourcePool</li> + <li>VirtualMachine</li> + </ul> + </td> + <td> + <div>Type of the object the custom attribute is associated with.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>Manage definition of custom attributes.</div> + <div>If set to <code>present</code> and definition not present, then custom attribute definition is created.</div> + <div>If set to <code>present</code> and definition is present, then no action taken.</div> + <div>If set to <code>absent</code> and definition is present, then custom attribute definition is removed.</div> + <div>If set to <code>absent</code> and definition is absent, then no action taken.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add VM Custom Attribute Definition + community.vmware.vmware_custom_attribute: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + state: present + object_type: VirtualMachine + custom_attribute: custom_attr_def_1 + delegate_to: localhost + register: defs + + - name: Remove VM Custom Attribute Definition + community.vmware.vmware_custom_attribute: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + state: absent + object_type: VirtualMachine + custom_attribute: custom_attr_def_1 + delegate_to: localhost + register: defs + + + + +Status +------ + + +Authors +~~~~~~~ + +- Mario Lenz (@mariolenz) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_datacenter_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_datacenter_info_module.rst new file mode 100644 index 00000000..f0fcd152 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_datacenter_info_module.rst @@ -0,0 +1,336 @@ +.. _community.vmware.vmware_datacenter_info_module: + + +*************************************** +community.vmware.vmware_datacenter_info +*************************************** + +**Gather information about VMware vSphere Datacenters** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information VMware vSphere Datacenters. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the datacenter to gather information for.</div> + <div>If not provided, will gather information about all datacenters from the VMware infra.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>properties</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify the properties to retrieve.</div> + <div>If not specified, all properties are retrieved (deeply).</div> + <div>Results are returned in a structure identical to the vSphere API.</div> + <div>Example:</div> + <div>properties: [</div> + <div>"overallStatus"</div> + <div>]</div> + <div>Only valid when <code>schema</code> is <code>vsphere</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>schema</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>summary</b> ←</div></li> + <li>vsphere</li> + </ul> + </td> + <td> + <div>Specify the output schema desired.</div> + <div>The 'summary' output schema is the legacy output from the module.</div> + <div>The 'vsphere' output schema is the vSphere API class definition which requires pyvmomi>6.7.1.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>show_tag</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Tags related to Datacenter are shown if set to <code>True</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather information about all datacenters + community.vmware.vmware_datacenter_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + delegate_to: localhost + + - name: Gather information about a particular datacenter + community.vmware.vmware_datacenter_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter: '{{ datacenter_name }}' + delegate_to: localhost + + - name: Gather information about a particular datacenter + community.vmware.vmware_datacenter_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter: '{{ datacenter_name }}' + show_tag: True + delegate_to: localhost + + - name: Gather vSphere schema information + community.vmware.vmware_datacenter_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter: '{{ datacenter_name }}' + schema: vsphere + properties: + - configStatus + - overallStatus + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>datacenter_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>always</td> + <td> + <div>Information about datacenter</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'configStatus': 'gray', 'moid': 'datacenter-2', 'name': 'Asia-Datacenter1'}]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_datacenter_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_datacenter_module.rst new file mode 100644 index 00000000..535a7d41 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_datacenter_module.rst @@ -0,0 +1,244 @@ +.. _community.vmware.vmware_datacenter_module: + + +********************************** +community.vmware.vmware_datacenter +********************************** + +**Manage VMware vSphere Datacenters** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to manage (create, delete) VMware vSphere Datacenters. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the datacenter the cluster will be created in.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>If the datacenter should be present or absent.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Create Datacenter + community.vmware.vmware_datacenter: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: '{{ datacenter_name }}' + state: present + delegate_to: localhost + + - name: Delete Datacenter + community.vmware.vmware_datacenter: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: '{{ datacenter_name }}' + state: absent + delegate_to: localhost + register: datacenter_delete_result + + + + +Status +------ + + +Authors +~~~~~~~ + +- Joseph Callen (@jcpowermac) +- Kamil Szczygiel (@kamsz) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_datastore_cluster_manager_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_datastore_cluster_manager_module.rst new file mode 100644 index 00000000..f43579cf --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_datastore_cluster_manager_module.rst @@ -0,0 +1,318 @@ +.. _community.vmware.vmware_datastore_cluster_manager_module: + + +************************************************* +community.vmware.vmware_datastore_cluster_manager +************************************************* + +**Manage VMware vSphere datastore cluster's members** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to add datastore in the datastore cluster. +- All parameters and VMware object values are case sensitive. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the datacenter.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore_cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the datastore cluster.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datastore_cluster</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastores</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>A list of datastores to be manage.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>If set to <em>present</em>, datastores specified by <em>datastores</em> will be added to the given datastore cluster.</div> + <div>If set to <em>absent</em>, datastores specified by <em>datastores</em> will be moved from the given datastore cluster to datstore folder of the parent datacenter.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add datastore to the given datastore cluster + community.vmware.vmware_datastore_cluster_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: '{{ datacenter_name }}' + datastore_cluster_name: '{{ datastore_cluster_name }}' + datastores: + - ds_001 + - ds_002 + - ds_003 + state: present + delegate_to: localhost + + - name: Move datastore from the given datastore cluster + community.vmware.vmware_datastore_cluster_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: '{{ datacenter_name }}' + datastore_cluster_name: '{{ datastore_cluster_name }}' + datastores: + - ds_001 + state: absent + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>datastore_cluster_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>information about datastore cluster</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'changed_datastores': ['ds_171_1'], 'current_datastores': [], 'msg': None, 'previous_datastores': ['ds_171_1']}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_datastore_cluster_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_datastore_cluster_module.rst new file mode 100644 index 00000000..5f99f75b --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_datastore_cluster_module.rst @@ -0,0 +1,424 @@ +.. _community.vmware.vmware_datastore_cluster_module: + + +***************************************** +community.vmware.vmware_datastore_cluster +***************************************** + +**Manage VMware vSphere datastore clusters** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to add and delete datastore cluster in given VMware environment. +- All parameters and VMware object values are case sensitive. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>automation_level</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>automated</li> + <li><div style="color: blue"><b>manual</b> ←</div></li> + </ul> + </td> + <td> + <div>Run SDRS automated or manually.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the datacenter.</div> + <div>You must specify either a <code>datacenter_name</code> or a <code>folder</code>.</div> + <div>Mutually exclusive with <code>folder</code> parameter.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore_cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the datastore cluster.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enable_io_loadbalance</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether or not storage DRS takes into account storage I/O workload when making load balancing and initial placement recommendations.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enable_sdrs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether or not storage DRS is enabled.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute path to place datastore cluster in.</div> + <div>The folder should include the datacenter.</div> + <div>This parameter is case sensitive.</div> + <div>You must specify either a <code>folder</code> or a <code>datacenter_name</code>.</div> + <div>Examples:</div> + <div>folder: /datacenter1/datastore</div> + <div>folder: datacenter1/datastore</div> + <div>folder: /datacenter1/datastore/folder1</div> + <div>folder: datacenter1/datastore/folder1</div> + <div>folder: /folder1/datacenter1/datastore</div> + <div>folder: folder1/datacenter1/datastore</div> + <div>folder: /folder1/datacenter1/datastore/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>keep_vmdks_together</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Specifies whether or not each VM in this datastore cluster should have its virtual disks on the same datastore by default.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>loadbalance_interval</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">480</div> + </td> + <td> + <div>Specify the interval in minutes that storage DRS runs to load balance among datastores.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>If the datastore cluster should be present or absent.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Create datastore cluster and enable SDRS + community.vmware.vmware_datastore_cluster: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: '{{ datacenter_name }}' + datastore_cluster_name: '{{ datastore_cluster_name }}' + enable_sdrs: True + state: present + delegate_to: localhost + + - name: Create datastore cluster using folder + community.vmware.vmware_datastore_cluster: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + folder: '/{{ datacenter_name }}/datastore/ds_folder' + datastore_cluster_name: '{{ datastore_cluster_name }}' + state: present + delegate_to: localhost + + - name: Delete datastore cluster + community.vmware.vmware_datastore_cluster: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: '{{ datacenter_name }}' + datastore_cluster_name: '{{ datastore_cluster_name }}' + state: absent + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>information about datastore cluster operation</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">Datastore cluster 'DSC2' created successfully.</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_datastore_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_datastore_info_module.rst new file mode 100644 index 00000000..9dd654ab --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_datastore_info_module.rst @@ -0,0 +1,414 @@ +.. _community.vmware.vmware_datastore_info_module: + + +************************************** +community.vmware.vmware_datastore_info +************************************** + +**Gather info about datastores available in given vCenter** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about datastores in VMWare infrastructure. +- All values and VMware object names are case sensitive. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Cluster to search for datastores.</div> + <div>If set, information of datastores belonging this clusters will be returned.</div> + <div>This parameter is required, if <code>datacenter</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Datacenter to search for datastores.</div> + <div>This parameter is required, if <code>cluster</code> is not supplied.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>gather_nfs_mount_info</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Gather mount information of NFS datastores.</div> + <div>Disabled per default because this slows down the execution if you have a lot of datastores.</div> + <div>Only valid when <code>schema</code> is <code>summary</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>gather_vmfs_mount_info</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Gather mount information of VMFS datastores.</div> + <div>Disabled per default because this slows down the execution if you have a lot of datastores.</div> + <div>Only valid when <code>schema</code> is <code>summary</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datastore to match.</div> + <div>If set, information of specific datastores are returned.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>properties</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify the properties to retrieve.</div> + <div>If not specified, all properties are retrieved (deeply).</div> + <div>Results are returned in a structure identical to the vsphere API.</div> + <div>Example:</div> + <div>properties: [</div> + <div>"name",</div> + <div>"info.vmfs.ssd",</div> + <div>"capability.vsanSparseSupported",</div> + <div>"overallStatus"</div> + <div>]</div> + <div>Only valid when <code>schema</code> is <code>vsphere</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>schema</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>summary</b> ←</div></li> + <li>vsphere</li> + </ul> + </td> + <td> + <div>Specify the output schema desired.</div> + <div>The 'summary' output schema is the legacy output from the module</div> + <div>The 'vsphere' output schema is the vSphere API class definition which requires pyvmomi>6.7.1</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>show_tag</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Tags related to Datastore are shown if set to <code>True</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather info from standalone ESXi server having datacenter as 'ha-datacenter' + community.vmware.vmware_datastore_info: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + datacenter_name: "ha-datacenter" + delegate_to: localhost + register: info + + - name: Gather info from datacenter about specific datastore + community.vmware.vmware_datastore_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: '{{ datacenter_name }}' + name: datastore1 + delegate_to: localhost + register: info + + - name: Gather some info from a datastore using the vSphere API output schema + community.vmware.vmware_datastore_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: '{{ datacenter_name }}' + schema: vsphere + properties: + - name + - info.vmfs.ssd + - capability.vsanSparseSupported + - overallStatus + delegate_to: localhost + register: info + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>datastores</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the available datastores</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'accessible': False, 'capacity': 42681237504, 'datastore_cluster': 'datacluster0', 'freeSpace': 39638269952, 'maintenanceMode': 'normal', 'multipleHostAccess': False, 'name': 'datastore2', 'provisioned': 12289211488, 'type': 'VMFS', 'uncommitted': 9246243936, 'url': 'ds:///vmfs/volumes/5a69b18a-c03cd88c-36ae-5254001249ce/', 'vmfs_blockSize': 1024, 'vmfs_uuid': '5a69b18a-c03cd88c-36ae-5254001249ce', 'vmfs_version': '6.81'}, {'accessible': True, 'capacity': 5497558138880, 'datastore_cluster': 'datacluster0', 'freeSpace': 4279000641536, 'maintenanceMode': 'normal', 'multipleHostAccess': True, 'name': 'datastore3', 'nfs_path': '/vol/datastore3', 'nfs_server': 'nfs_server1', 'provisioned': 1708109410304, 'type': 'NFS', 'uncommitted': 489551912960, 'url': 'ds:///vmfs/volumes/420b3e73-67070776/'}]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Tim Rightnour (@garbled1) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_datastore_maintenancemode_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_datastore_maintenancemode_module.rst new file mode 100644 index 00000000..1b4bc2be --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_datastore_maintenancemode_module.rst @@ -0,0 +1,328 @@ +.. _community.vmware.vmware_datastore_maintenancemode_module: + + +************************************************* +community.vmware.vmware_datastore_maintenancemode +************************************************* + +**Place a datastore into maintenance mode** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to manage maintenance mode of a datastore. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster where datastore is connected to.</div> + <div>If multiple datastores are connected to the given cluster, then all datastores will be managed by <code>state</code>.</div> + <div>If <code>datastore</code> or <code>datastore_cluster</code> are not set, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of datastore to manage.</div> + <div>If <code>datastore_cluster</code> or <code>cluster_name</code> are not set, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore_cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datastore cluster from all child datastores to be managed.</div> + <div>If <code>datastore</code> or <code>cluster_name</code> are not set, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>If set to <code>present</code>, then enter datastore into maintenance mode.</div> + <div>If set to <code>present</code> and datastore is already in maintenance mode, then no action will be taken.</div> + <div>If set to <code>absent</code> and datastore is in maintenance mode, then exit maintenance mode.</div> + <div>If set to <code>absent</code> and datastore is not in maintenance mode, then no action will be taken.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Enter datastore into Maintenance Mode + community.vmware.vmware_datastore_maintenancemode: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datastore: '{{ datastore_name }}' + state: present + delegate_to: localhost + + - name: Enter all datastores under cluster into Maintenance Mode + community.vmware.vmware_datastore_maintenancemode: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + state: present + delegate_to: localhost + + - name: Enter all datastores under datastore cluster into Maintenance Mode + community.vmware.vmware_datastore_maintenancemode: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datastore_cluster: '{{ datastore_cluster_name }}' + state: present + delegate_to: localhost + + - name: Exit datastore into Maintenance Mode + community.vmware.vmware_datastore_maintenancemode: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datastore: '{{ datastore_name }}' + state: absent + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>datastore_status</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>Action taken for datastore</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'ds_226_01': "Datastore 'ds_226_01' is already in maintenance mode."}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_datastore_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_datastore_module.rst new file mode 100644 index 00000000..96304be5 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_datastore_module.rst @@ -0,0 +1,345 @@ +.. _community.vmware.vmware_datastore_module: + + +********************************* +community.vmware.vmware_datastore +********************************* + +**Configure Datastores** + + +Version added: 3.0.0 + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Configure Storage I/O Control Settings of a Datastore. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>congestion_threshold_manual</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Storage I/O congestion threshold in ms.</div> + <div>Only use <code>congestion_threshold_percentage</code> or <code>congestion_threshold_manual</code>.</div> + <div>Only valid when <code>storage_io_control</code> is <code>enable_io_statistics</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>congestion_threshold_percentage</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">90</div> + </td> + <td> + <div>Storage I/O congestion threshold in percentage of peak throughput.</div> + <div>A value between 50% and 100%.</div> + <div>Recommended: 90%</div> + <div>Only use <code>congestion_threshold_percentage</code> or <code>congestion_threshold_manual</code>.</div> + <div>Only valid when <code>storage_io_control</code> is <code>enable_io_statistics</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Datacenter to search for the datastores.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datastore.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>statistic_collection</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Include I/O statistics for SDRS.</div> + <div>Only valid when <code>storage_io_control</code> is <code>enable_io_statistics</code> or <code>enable_statistics</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>storage_io_control</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>enable_io_statistics</li> + <li>enable_statistics</li> + <li>disable</li> + </ul> + </td> + <td> + <div>Specify datastore typ.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Configure Storage I/O Control of an mounted datastore + community.vmware.vmware_datastore_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: '{{ datacenter_name }}' + name: datastore1 + storage_io_control: 'enable_io_statistics' + congestion_threshold_manual: 30 + statistic_collection: true + delegate_to: localhost + register: info + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>Information about datastore operation.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">Datastore configured successfully.</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Nina Loser (@Nina2244) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_deploy_ovf_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_deploy_ovf_module.rst new file mode 100644 index 00000000..b0e3af6f --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_deploy_ovf_module.rst @@ -0,0 +1,584 @@ +.. _community.vmware.vmware_deploy_ovf_module: + + +********************************** +community.vmware.vmware_deploy_ovf +********************************** + +**Deploys a VMware virtual machine from an OVF or OVA file** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to deploy a VMware VM from an OVF or OVA file + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>allow_duplicates</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + <b>Default:</b><br/><div style="color: blue">"True"</div> + </td> + <td> + <div>Whether or not to allow duplicate VM names. ESXi allows duplicates, vCenter may not.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Cluster to deploy to.</div> + <div>This is a required parameter, if <code>esxi_hostname</code> is not set and <code>hostname</code> is set to the vCenter server.</div> + <div><code>esxi_hostname</code> and <code>cluster</code> are mutually exclusive parameters.</div> + <div>This parameter is case sensitive.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"ha-datacenter"</div> + </td> + <td> + <div>Datacenter to deploy to.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"datastore1"</div> + </td> + <td> + <div>Datastore to deploy to.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>deployment_option</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The key of the chosen deployment option.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>disk_provisioning</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>flat</li> + <li>eagerZeroedThick</li> + <li>monolithicSparse</li> + <li>twoGbMaxExtentSparse</li> + <li>twoGbMaxExtentFlat</li> + <li><div style="color: blue"><b>thin</b> ←</div></li> + <li>sparse</li> + <li>thick</li> + <li>seSparse</li> + <li>monolithicFlat</li> + </ul> + </td> + <td> + <div>Disk provisioning type.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The ESXi hostname where the virtual machine will run.</div> + <div>This is a required parameter, if <code>cluster</code> is not set and <code>hostname</code> is set to the vCenter server.</div> + <div><code>esxi_hostname</code> and <code>cluster</code> are mutually exclusive parameters.</div> + <div>This parameter is case sensitive.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>fail_on_spec_warnings</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Cause the module to treat OVF Import Spec warnings as errors.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Absolute path of folder to place the virtual machine.</div> + <div>If not specified, defaults to the value of <code>datacenter.vmFolder</code>.</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>inject_ovf_env</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Force the given properties to be inserted into an OVF Environment and injected through VMware Tools.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the VM to work with.</div> + <div>Virtual machine names in vCenter are not necessarily unique, which may be problematic.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>networks</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{"VM Network": "VM Network"}</div> + </td> + <td> + <div><code>key: value</code> mapping of OVF network name, to the vCenter network name.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ovf</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">path</span> + </div> + </td> + <td> + </td> + <td> + <div>Path to OVF or OVA file to deploy.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: ova</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>power_on</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Whether or not to power on the virtual machine after creation.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>properties</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>The assignment of values to the properties found in the OVF as key value pairs.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>resource_pool</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"Resources"</div> + </td> + <td> + <div>Resource Pool to deploy to.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>wait</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Wait for the host to power on.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>wait_for_ip_address</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Wait until vCenter detects an IP address for the VM.</div> + <div>This requires vmware-tools (vmtoolsd) to properly work after creation.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - community.vmware.vmware_deploy_ovf: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + ovf: /path/to/ubuntu-16.04-amd64.ovf + wait_for_ip_address: true + delegate_to: localhost + + # Deploys a new VM named 'NewVM' in specific datacenter/cluster, with network mapping taken from variable and using ova template from an absolute path + - community.vmware.vmware_deploy_ovf: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter: Datacenter1 + cluster: Cluster1 + datastore: vsandatastore + name: NewVM + networks: "{u'VM Network':u'{{ ProvisioningNetworkLabel }}'}" + power_on: no + ovf: /absolute/path/to/template/mytemplate.ova + delegate_to: localhost + + - community.vmware.vmware_deploy_ovf: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter: Datacenter1 + esxi_hostname: test-server + datastore: test-datastore + ovf: /path/to/ubuntu-16.04-amd64.ovf + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>instance</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the new virtual machine</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">None</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Matt Martz (@sivel) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_drs_group_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_drs_group_info_module.rst new file mode 100644 index 00000000..97457bc9 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_drs_group_info_module.rst @@ -0,0 +1,273 @@ +.. _community.vmware.vmware_drs_group_info_module: + + +************************************** +community.vmware.vmware_drs_group_info +************************************** + +**Gathers info about DRS VM/Host groups on the given cluster** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about DRS VM/HOST groups from the given cluster. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Cluster to search for VM/Host groups.</div> + <div>If set, information of DRS groups belonging this cluster will be returned.</div> + <div>Not needed if <code>datacenter</code> is set.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Datacenter to search for DRS VM/Host groups.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + --- + - name: "Gather DRS info about given Cluster" + register: cluster_drs_group_info + community.vmware.vmware_drs_group_info: + hostname: "{{ vcenter_hostname }}" + password: "{{ vcenter_password }}" + username: "{{ vcenter_username }}" + cluster_name: "{{ cluster_name }}" + delegate_to: localhost + + - name: "Gather DRS group info about all clusters in given datacenter" + register: cluster_drs_group_info + community.vmware.vmware_drs_group_info: + hostname: "{{ vcenter_hostname }}" + password: "{{ vcenter_password }}" + username: "{{ vcenter_username }}" + datacenter: "{{ datacenter }}" + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>drs_group_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>Metadata about DRS group from given cluster / datacenter</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'drs_group_info': {'DC0_C0': [{'group_name': 'GROUP_HOST_S01', 'hosts': ['vm-01.zone', 'vm-02.zone'], 'type': 'host'}, {'group_name': 'GROUP_HOST_S02', 'hosts': ['vm-03.zone', 'vm-04.zone'], 'type': 'host'}, {'group_name': 'GROUP_VM_S01', 'type': 'vm', 'vms': ['test-node01']}, {'group_name': 'GROUP_VM_S02', 'type': 'vm', 'vms': ['test-node02']}], 'DC0_C1': []}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Karsten Kaj Jakobsen (@karstenjakobsen) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_drs_group_manager_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_drs_group_manager_module.rst new file mode 100644 index 00000000..5bfe13f3 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_drs_group_manager_module.rst @@ -0,0 +1,397 @@ +.. _community.vmware.vmware_drs_group_manager_module: + + +***************************************** +community.vmware.vmware_drs_group_manager +***************************************** + +**Manage VMs and Hosts in DRS group.** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- The module can be used to add VMs / Hosts to or remove them from a DRS group. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Cluster to which DRS group associated with.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: cluster_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datacenter.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>group_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the group to manage.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hosts</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>A List of hosts to add / remove in the group.</div> + <div>Required only if <em>vms</em> is not set.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>If set to <code>present</code>, VMs/hosts will be added to the given DRS group.</div> + <div>If set to <code>absent</code>, VMs/hosts will be removed from the given DRS group.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vms</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>A List of vms to add / remove in the group.</div> + <div>Required only if <em>hosts</em> is not set.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + --- + - name: Add VMs in an existing DRS VM group + delegate_to: localhost + community.vmware.vmware_drs_group_manager: + hostname: "{{ vcenter_hostname }}" + password: "{{ vcenter_password }}" + username: "{{ vcenter_username }}" + cluster: DC0_C0 + datacenter: DC0 + group_name: TEST_VM_01 + vms: + - DC0_C0_RP0_VM0 + - DC0_C0_RP0_VM1 + state: present + + - name: Add Hosts in an existing DRS Host group + delegate_to: localhost + community.vmware.vmware_drs_group_manager: + hostname: "{{ vcenter_hostname }}" + password: "{{ vcenter_password }}" + username: "{{ vcenter_username }}" + cluster: DC0_C0 + datacenter: DC0 + group_name: TEST_HOST_01 + hosts: + - DC0_C0_H0 + - DC0_C0_H1 + - DC0_C0_H2 + state: present + + - name: Remove VM from an existing DRS VM group + delegate_to: localhost + community.vmware.vmware_drs_group_manager: + hostname: "{{ vcenter_hostname }}" + password: "{{ vcenter_password }}" + username: "{{ vcenter_username }}" + cluster: DC0_C0 + datacenter: DC0 + group_name: TEST_VM_01 + vms: + - DC0_C0_RP0_VM0 + state: absent + + - name: Remove host from an existing DRS Host group + delegate_to: localhost + community.vmware.vmware_drs_group_manager: + hostname: "{{ vcenter_hostname }}" + password: "{{ vcenter_password }}" + username: "{{ vcenter_username }}" + cluster: DC0_C0 + datacenter: DC0 + group_name: TEST_HOST_01 + hosts: + - DC0_C0_H0 + state: absent + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>drs_group_member_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>Metadata about DRS group</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'Asia-Cluster1': [{'group_name': 'vm_group_002', 'type': 'vm', 'vms': ['dev-1']}]}</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>msg</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>Info message</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">Updated host group TEST_HOST_01 successfully</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_drs_group_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_drs_group_module.rst new file mode 100644 index 00000000..9e347fa9 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_drs_group_module.rst @@ -0,0 +1,364 @@ +.. _community.vmware.vmware_drs_group_module: + + +********************************* +community.vmware.vmware_drs_group +********************************* + +**Creates vm/host group in a given cluster.** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to create VM/Host groups in a given cluster. Creates a vm group if ``vms`` is set. Creates a host group if ``hosts`` is set. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Cluster to create vm/host group.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Datacenter to search for given cluster. If not set, we use first cluster we encounter with <code>cluster_name</code>.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>group_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the group to create or remove.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hosts</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>List of hosts to create in group.</div> + <div>Required only if <code>vms</code> is not set.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>If set to <code>present</code> and the group doesn't exists then the group will be created.</div> + <div>If set to <code>absent</code> and the group exists then the group will be deleted.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vms</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>List of vms to create in group.</div> + <div>Required only if <code>hosts</code> is not set.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + --- + - name: "Create DRS VM group" + delegate_to: localhost + community.vmware.vmware_drs_group: + hostname: "{{ vcenter_hostname }}" + password: "{{ vcenter_password }}" + username: "{{ vcenter_username }}" + cluster_name: DC0_C0 + datacenter_name: DC0 + group_name: TEST_VM_01 + vms: + - DC0_C0_RP0_VM0 + - DC0_C0_RP0_VM1 + state: present + + - name: "Create DRS Host group" + delegate_to: localhost + community.vmware.vmware_drs_group: + hostname: "{{ vcenter_hostname }}" + password: "{{ vcenter_password }}" + username: "{{ vcenter_username }}" + cluster_name: DC0_C0 + datacenter_name: DC0 + group_name: TEST_HOST_01 + hosts: + - DC0_C0_H0 + - DC0_C0_H1 + - DC0_C0_H2 + state: present + + - name: "Delete DRS Host group" + delegate_to: localhost + community.vmware.vmware_drs_group: + hostname: "{{ vcenter_hostname }}" + password: "{{ vcenter_password }}" + username: "{{ vcenter_username }}" + cluster_name: DC0_C0 + datacenter_name: DC0 + group_name: TEST_HOST_01 + state: absent + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>drs_group_facts</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>Metadata about DRS group created</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'drs_group_facts': {'changed': True, 'failed': False, 'msg': 'Created host group TEST_HOST_01 successfully', 'result': {'DC0_C0': [{'group_name': 'TEST_HOST_01', 'hosts': ['DC0_C0_H0', 'DC0_C0_H1', 'DC0_C0_H2'], 'type': 'host'}]}}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Karsten Kaj Jakobsen (@karstenjakobsen) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_drs_rule_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_drs_rule_info_module.rst new file mode 100644 index 00000000..6faacf84 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_drs_rule_info_module.rst @@ -0,0 +1,273 @@ +.. _community.vmware.vmware_drs_rule_info_module: + + +************************************* +community.vmware.vmware_drs_rule_info +************************************* + +**Gathers info about DRS rule on the given cluster** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about DRS VM-VM and VM-HOST rules from the given cluster. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster.</div> + <div>DRS information for the given cluster will be returned.</div> + <div>This is required parameter if <code>datacenter</code> parameter is not provided.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datacenter.</div> + <div>DRS information for all the clusters from the given datacenter will be returned.</div> + <div>This is required parameter if <code>cluster_name</code> parameter is not provided.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather DRS info about given Cluster + community.vmware.vmware_drs_rule_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + delegate_to: localhost + register: cluster_drs_info + + - name: Gather DRS info about all Clusters in given datacenter + community.vmware.vmware_drs_rule_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter: '{{ datacenter_name }}' + delegate_to: localhost + register: datacenter_drs_info + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>drs_rule_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about DRS rule from given cluster / datacenter</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'DC0_C0': [{'rule_affinity': False, 'rule_enabled': True, 'rule_key': 1, 'rule_mandatory': True, 'rule_name': 'drs_rule_0001', 'rule_type': 'vm_vm_rule', 'rule_uuid': '52be5061-665a-68dc-3d25-85cd2d37e114', 'rule_vms': ['VM_65', 'VM_146']}], 'DC1_C1': [{'rule_affine_host_group_name': 'host_group_1', 'rule_affine_hosts': ['10.76.33.204'], 'rule_anti_affine_host_group_name': None, 'rule_anti_affine_hosts': [], 'rule_enabled': True, 'rule_key': 1, 'rule_mandatory': False, 'rule_name': 'vm_host_rule_0001', 'rule_type': 'vm_host_rule', 'rule_uuid': '52687108-4d3a-76f2-d29c-b708c40dbe40', 'rule_vm_group_name': 'test_vm_group_1', 'rule_vms': ['VM_8916', 'VM_4010']}]}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_dvs_host_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvs_host_module.rst new file mode 100644 index 00000000..36fd43ca --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvs_host_module.rst @@ -0,0 +1,411 @@ +.. _community.vmware.vmware_dvs_host_module: + + +******************************** +community.vmware.vmware_dvs_host +******************************** + +**Add or remove a host from distributed virtual switch** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Manage a host system from distributed virtual switch. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The ESXi hostname.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>lag_uplinks</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>The ESXi hosts vmnics to use with specific LAGs.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>lag</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the LAG.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vmnics</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>The ESXi hosts vmnics to use with the LAG.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>If the host should be present or absent attached to the vSwitch.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>switch_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the Distributed vSwitch.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vendor_specific_config</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>List of key, value dictionaries for the Vendor Specific Configuration.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>key</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Key of setting.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>value</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Value of setting.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vmnics</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>The ESXi hosts vmnics to use with the Distributed vSwitch.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add Host to dVS + community.vmware.vmware_dvs_host: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + switch_name: dvSwitch + vmnics: + - vmnic0 + - vmnic1 + state: present + delegate_to: localhost + + - name: Add vmnics to LAGs + community.vmware.vmware_dvs_host: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + switch_name: dvSwitch + lag_uplinks: + - lag: lag1 + vmnics: + - vmnic0 + - vmnic1 + - lag: lag2 + vmnics: + - vmnic2 + - vmnic3 + state: present + delegate_to: localhost + + - name: Add Host to dVS/enable learnswitch (https://labs.vmware.com/flings/learnswitch) + community.vmware.vmware_dvs_host: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + switch_name: dvSwitch + vendor_specific_config: + - key: com.vmware.netoverlay.layer1 + value: learnswitch + vmnics: + - vmnic0 + - vmnic1 + state: present + delegate_to: localhost + + + + +Status +------ + + +Authors +~~~~~~~ + +- Joseph Callen (@jcpowermac) +- Abhijeet Kasurde (@Akasurde) +- Joseph Andreatta (@vmwjoseph) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_dvs_portgroup_find_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvs_portgroup_find_module.rst new file mode 100644 index 00000000..00d20063 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvs_portgroup_find_module.rst @@ -0,0 +1,304 @@ +.. _community.vmware.vmware_dvs_portgroup_find_module: + + +****************************************** +community.vmware.vmware_dvs_portgroup_find +****************************************** + +**Find portgroup(s) in a VMware environment** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Find portgroup(s) based on different criteria such as distributed vSwitch, VLAN id or a string in the name. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>dvswitch</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of a distributed vSwitch to look for.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>string to check inside the name of the portgroup.</div> + <div>Basic containment check using python <code>in</code> operation.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>show_uplink</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Show or hide uplink portgroups.</div> + <div>Only relevant when <code>vlanid</code> is supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vlanid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>VLAN id can be any number between 1 and 4094.</div> + <div>This search criteria will looks into VLAN ranges to find possible matches.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Get all portgroups in dvswitch vDS + community.vmware.vmware_dvs_portgroup_find: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + dvswitch: 'vDS' + delegate_to: localhost + + - name: Confirm if vlan 15 is present + community.vmware.vmware_dvs_portgroup_find: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + vlanid: '15' + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>dvs_portgroups</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>on success</td> + <td> + <div>basic details of portgroups found</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'dvswitch': 'vDS', 'name': 'N-51', 'pvlan': True, 'trunk': True, 'vlan_id': '0'}]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- David Martinez (@dx0xm) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_dvs_portgroup_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvs_portgroup_info_module.rst new file mode 100644 index 00000000..c245c66e --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvs_portgroup_info_module.rst @@ -0,0 +1,382 @@ +.. _community.vmware.vmware_dvs_portgroup_info_module: + + +****************************************** +community.vmware.vmware_dvs_portgroup_info +****************************************** + +**Gathers info DVS portgroup configurations** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about DVS portgroup configurations. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datacenter.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>dvswitch</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of a dvswitch to look for.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>show_mac_learning</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Show or hide MAC learning information of the DVS portgroup.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>show_network_policy</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Show or hide network policies of DVS portgroup.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>show_port_policy</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Show or hide port policies of DVS portgroup.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>show_teaming_policy</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Show or hide teaming policies of DVS portgroup.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>show_uplinks</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Show or hide uplinks of DVS portgroup.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>show_vlan_info</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Show or hide vlan information of the DVS portgroup.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Get info about DVPG + community.vmware.vmware_dvs_portgroup_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + register: dvpg_info + + - name: Get number of ports for portgroup 'dvpg_001' in 'dvs_001' + debug: + msg: "{{ item.num_ports }}" + with_items: + - "{{ dvpg_info.dvs_portgroup_info['dvs_001'] | json_query(query) }}" + vars: + query: "[?portgroup_name=='dvpg_001']" + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>dvs_portgroup_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>on success</td> + <td> + <div>metadata about DVS portgroup configuration</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'dvs_0': [{'description': None, 'dvswitch_name': 'dvs_001', 'network_policy': {'forged_transmits': False, 'mac_changes': False, 'promiscuous': False}, 'num_ports': 8, 'port_policy': {'block_override': True, 'ipfix_override': False, 'live_port_move': False, 'network_rp_override': False, 'port_config_reset_at_disconnect': True, 'security_override': False, 'shaping_override': False, 'traffic_filter_override': False, 'uplink_teaming_override': False, 'vendor_config_override': False, 'vlan_override': False}, 'portgroup_name': 'dvpg_001', 'teaming_policy': {'inbound_policy': True, 'notify_switches': True, 'policy': 'loadbalance_srcid', 'rolling_order': False}, 'vlan_info': {'trunk': False, 'pvlan': False, 'vlan_id': 0}, 'type': 'earlyBinding'}]}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_dvs_portgroup_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvs_portgroup_module.rst new file mode 100644 index 00000000..ef0d8b0a --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvs_portgroup_module.rst @@ -0,0 +1,1250 @@ +.. _community.vmware.vmware_dvs_portgroup_module: + + +************************************* +community.vmware.vmware_dvs_portgroup +************************************* + +**Create or remove a Distributed vSwitch portgroup.** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Create or remove a Distributed vSwitch portgroup. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>in_traffic_shaping</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.3.0</div> + </td> + <td> + </td> + <td> + <div>Dictionary which configures the ingress traffic shaping settings for the portgroup.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>average_bandwidth</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Establishes the number of bits per second to allow across a port, averaged over time, that is, the allowed average load.</div> + <div>Ignored if <code>inherited</code> is true.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>burst_size</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>The maximum number of bits per second to allow across a port when it is sending/sending or receiving a burst of traffic.</div> + <div>Ignored if <code>inherited</code> is true.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates whether ingress traffic shaping is activated or not.</div> + <div>Ignored if <code>inherited</code> is true.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>inherited</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Inherit the settings from the switch or not.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>peak_bandwidth</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>The maximum number of bytes to allow in a burst.</div> + <div>Ignored if <code>inherited</code> is true.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mac_learning</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Dictionary which configures MAC learning for portgroup.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>allow_unicast_flooding</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>The flag to allow flooding of unlearned MAC for ingress traffic.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>The flag to indicate if source MAC address learning is allowed.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>limit</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>The maximum number of MAC addresses that can be learned.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>limit_policy</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>allow</li> + <li>drop</li> + </ul> + </td> + <td> + <div>The default switching policy after MAC limit is exceeded.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>net_flow</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.3.0</div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>true</li> + <li>on</li> + <li>yes</li> + <li>false</li> + <li>off</li> + <li>no</li> + <li>inherited</li> + </ul> + </td> + <td> + <div>Indicate whether or not the virtual machine IP traffic that flows through a vds gets analyzed by sending reports to a NetFlow collector.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>network_policy</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Dictionary which configures the different security values for portgroup.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>forged_transmits</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates whether forged transmits are allowed. Ignored if <code>inherited</code> is true.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>inherited</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Inherit the settings from the switch or not.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mac_changes</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates whether mac changes are allowed. Ignored if <code>inherited</code> is true.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>promiscuous</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates whether promiscuous mode is allowed. Ignored if <code>inherited</code> is true.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>num_ports</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>The number of ports the portgroup should contain.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>out_traffic_shaping</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.3.0</div> + </td> + <td> + </td> + <td> + <div>Dictionary which configures the egress traffic shaping settings for the portgroup.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>average_bandwidth</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Establishes the number of bits per second to allow across a port, averaged over time, that is, the allowed average load.</div> + <div>Ignored if <code>inherited</code> is true.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>burst_size</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>The maximum number of bits per second to allow across a port when it is sending/sending or receiving a burst of traffic.</div> + <div>Ignored if <code>inherited</code> is true.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates whether egress traffic shaping is activated or not.</div> + <div>Ignored if <code>inherited</code> is true.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>inherited</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Inherit the settings from the switch or not.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>peak_bandwidth</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>The maximum number of bytes to allow in a burst.</div> + <div>Ignored if <code>inherited</code> is true.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port_allocation</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>elastic</li> + <li>fixed</li> + </ul> + </td> + <td> + <div>Elastic port groups automatically increase or decrease the number of ports as needed.</div> + <div>Only valid if <em>port_binding</em> is set to <code>static</code>.</div> + <div>Will be <code>elastic</code> if not specified and <em>port_binding</em> is set to <code>static</code>.</div> + <div>Will be <code>fixed</code> if not specified and <em>port_binding</em> is set to <code>ephemeral</code>.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port_binding</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>static</li> + <li>ephemeral</li> + </ul> + </td> + <td> + <div>The type of port binding determines when ports in a port group are assigned to virtual machines.</div> + <div>See VMware KB 1022312 <a href='https://kb.vmware.com/s/article/1022312'>https://kb.vmware.com/s/article/1022312</a> for more details.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port_policy</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{"block_override": true, "ipfix_override": false, "live_port_move": false, "mac_management_override": false, "network_rp_override": false, "port_config_reset_at_disconnect": true, "shaping_override": false, "traffic_filter_override": false, "uplink_teaming_override": false, "vendor_config_override": false, "vlan_override": false}</div> + </td> + <td> + <div>Dictionary which configures the advanced policy settings for the portgroup.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>block_override</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Indicates if the block policy can be changed per port.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ipfix_override</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates if the ipfix policy can be changed per port.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>live_port_move</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates if a live port can be moved in or out of the portgroup.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mac_management_override</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates if the security policy can be changed per port.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: security_override</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>network_rp_override</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates if the network resource pool can be changed per port.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port_config_reset_at_disconnect</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Indicates if the configuration of a port is reset automatically after disconnect.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>shaping_override</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates if the shaping policy can be changed per port.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>traffic_filter_override</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates if the traffic filter can be changed per port.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uplink_teaming_override</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates if the uplink teaming policy can be changed per port.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vendor_config_override</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates if the vendor config can be changed per port.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vlan_override</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates if the vlan can be changed per port.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>portgroup_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the portgroup that is to be created or deleted.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>present</li> + <li>absent</li> + </ul> + </td> + <td> + <div>Determines if the portgroup should be present or not.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>switch_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the distributed vSwitch the port group should be created on.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>teaming_policy</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{"load_balance_policy": "loadbalance_srcid", "notify_switches": true, "rolling_order": false}</div> + </td> + <td> + <div>Dictionary which configures the different teaming values for portgroup.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>active_uplinks</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>List of active uplinks used for load balancing.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>inbound_policy</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicate whether or not the teaming policy is applied to inbound frames as well.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>load_balance_policy</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>loadbalance_ip</li> + <li>loadbalance_srcmac</li> + <li><div style="color: blue"><b>loadbalance_srcid</b> ←</div></li> + <li>loadbalance_loadbased</li> + <li>failover_explicit</li> + </ul> + </td> + <td> + <div>Network adapter teaming policy.</div> + <div><code>loadbalance_loadbased</code> is available from version 2.6 and onwards.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>notify_switches</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Indicate whether or not to notify the physical switch if a link fails.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>rolling_order</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicate whether or not to use a rolling policy when restoring links.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>standby_uplinks</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>List of standby uplinks used for failover.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vlan_id</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The VLAN ID that should be configured with the portgroup, use 0 for no VLAN.</div> + <div>If <code>vlan_trunk</code> is configured to be <em>true</em>, this can be a combination of multiple ranges and numbers, example: 1-200, 205, 400-4094.</div> + <div>The valid <code>vlan_id</code> range is from 0 to 4094. Overlapping ranges are allowed.</div> + <div>If <code>vlan_private</code> is configured to be <em>true</em>, the corresponding private VLAN should already be configured in the distributed vSwitch.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vlan_private</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates whether this is for a private VLAN or not.</div> + <div>Mutually exclusive with <code>vlan_trunk</code> parameter.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vlan_trunk</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates whether this is a VLAN trunk or not.</div> + <div>Mutually exclusive with <code>vlan_private</code> parameter.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Create vlan portgroup + community.vmware.vmware_dvs_portgroup: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + portgroup_name: vlan-123-portrgoup + switch_name: dvSwitch + vlan_id: 123 + num_ports: 120 + port_binding: static + state: present + delegate_to: localhost + + - name: Create vlan trunk portgroup + community.vmware.vmware_dvs_portgroup: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + portgroup_name: vlan-trunk-portrgoup + switch_name: dvSwitch + vlan_id: 1-1000, 1005, 1100-1200 + vlan_trunk: True + num_ports: 120 + port_binding: static + state: present + delegate_to: localhost + + - name: Create private vlan portgroup + vmware_dvs_portgroup: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + portgroup_name: private-vlan-portrgoup + switch_name: dvSwitch + vlan_id: 1001 + vlan_private: True + num_ports: 120 + port_binding: static + state: present + delegate_to: localhost + + - name: Create no-vlan portgroup + community.vmware.vmware_dvs_portgroup: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + portgroup_name: no-vlan-portrgoup + switch_name: dvSwitch + vlan_id: 0 + num_ports: 120 + port_binding: static + state: present + delegate_to: localhost + + - name: Create vlan portgroup with all security and port policies + community.vmware.vmware_dvs_portgroup: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + portgroup_name: vlan-123-portrgoup + switch_name: dvSwitch + vlan_id: 123 + num_ports: 120 + port_binding: static + state: present + network_policy: + inherited: false + promiscuous: true + forged_transmits: true + mac_changes: true + port_policy: + block_override: true + ipfix_override: true + live_port_move: true + network_rp_override: true + port_config_reset_at_disconnect: true + mac_management_override: true + shaping_override: true + traffic_filter_override: true + uplink_teaming_override: true + vendor_config_override: true + vlan_override: true + delegate_to: localhost + + + + +Status +------ + + +Authors +~~~~~~~ + +- Joseph Callen (@jcpowermac) +- Philippe Dellaert (@pdellaert) <philippe@dellaert.org> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_dvswitch_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvswitch_info_module.rst new file mode 100644 index 00000000..5508d115 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvswitch_info_module.rst @@ -0,0 +1,349 @@ +.. _community.vmware.vmware_dvswitch_info_module: + + +************************************* +community.vmware.vmware_dvswitch_info +************************************* + +**Gathers info dvswitch configurations** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about dvswitch configurations. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify a folder location of dvswitch to gather information from.</div> + <div>Examples:</div> + <div>folder: /datacenter1/network</div> + <div>folder: datacenter1/network</div> + <div>folder: /datacenter1/network/folder1</div> + <div>folder: datacenter1/network/folder1</div> + <div>folder: /folder1/datacenter1/network</div> + <div>folder: folder1/datacenter1/network</div> + <div>folder: /folder1/datacenter1/network/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>properties</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify the properties to retrieve.</div> + <div>If not specified, all properties are retrieved (deeply).</div> + <div>Results are returned in a structure identical to the vsphere API.</div> + <div>Example:</div> + <div>properties: [</div> + <div>"summary.name",</div> + <div>"summary.numPorts",</div> + <div>"config.maxMtu",</div> + <div>"overallStatus"</div> + <div>]</div> + <div>Only valid when <code>schema</code> is <code>vsphere</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>schema</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>summary</b> ←</div></li> + <li>vsphere</li> + </ul> + </td> + <td> + <div>Specify the output schema desired.</div> + <div>The 'summary' output schema is the legacy output from the module</div> + <div>The 'vsphere' output schema is the vSphere API class definition which requires pyvmomi>6.7.1</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>switch_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of a dvswitch to look for.</div> + <div>If <code>switch_name</code> not specified gather all dvswitch information.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: switch, dvswitch</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather all registered dvswitch + community.vmware.vmware_dvswitch_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + delegate_to: localhost + register: dvswitch_info + + - name: Gather info about specific dvswitch + community.vmware.vmware_dvswitch_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + switch_name: DVSwitch01 + delegate_to: localhost + register: dvswitch_info + + - name: Gather info from folder about specific dvswitch + community.vmware.vmware_dvswitch_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + folder: /datacenter1/network/F01 + switch_name: DVSwitch02 + delegate_to: localhost + register: dvswitch_info + + - name: Gather some info from a dvswitch using the vSphere API output schema + community.vmware.vmware_dvswitch_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + schema: vsphere + properties: + - summary.name + - summary.numPorts + - config.maxMtu + - overallStatus + switch_name: DVSwitch01 + register: dvswitch_info + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>distributed_virtual_switches</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>always</td> + <td> + <div>list of dictionary of dvswitch and their information</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'configure': {'folder': 'network', 'hosts': ['esxi-test-02.local', 'esxi-test-01.local'], 'settings': {'healthCheck': {'TeamingHealthCheckConfig': False, 'VlanMtuHealthCheckConfig': False}, 'netflow': {'activeFlowTimeout': 60, 'collectorIpAddress': '', 'collectorPort': 0, 'idleFlowTimeout': 15, 'internalFlowsOnly': False, 'observationDomainId': 0, 'samplingRate': 0, 'switchIpAddress': None}, 'properties': {'administratorContact': {'contact': None, 'name': None}, 'advanced': {'maxMtu': 1500, 'multicastFilteringMode': 'legacyFiltering'}, 'discoveryProtocol': {'operation': 'listen', 'protocol': 'cdp'}, 'general': {'ioControl': True, 'name': 'DVSwitch01', 'numPorts': 10, 'numUplinks': 1, 'vendor': 'VMware, Inc.', 'version': '6.6.0'}}, 'privateVlan': []}}, 'uuid': '50 30 99 9c a7 60 8a 4f-05 9f e7 b5 da df 8f 17'}]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- sky-joker (@sky-joker) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_dvswitch_lacp_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvswitch_lacp_module.rst new file mode 100644 index 00000000..16b0353c --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvswitch_lacp_module.rst @@ -0,0 +1,405 @@ +.. _community.vmware.vmware_dvswitch_lacp_module: + + +************************************* +community.vmware.vmware_dvswitch_lacp +************************************* + +**Manage LACP configuration on a Distributed Switch** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to configure Link Aggregation Control Protocol (LACP) support mode and Link Aggregation Groups (LAGs). + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>link_aggregation_groups</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>Can only be used if <code>lacp_support</code> is set to <code>enhanced</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>load_balancing_mode</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"srcDestIpTcpUdpPortVlan"</div> + </td> + <td> + <div>Load balancing algorithm.</div> + <div>Valid values are as follows</div> + <div>- srcTcpUdpPort: Source TCP/UDP port number.</div> + <div>- srcDestIpTcpUdpPortVlan: Source and destination IP, source and destination TCP/UDP port number and VLAN.</div> + <div>- srcIpVlan: Source IP and VLAN.</div> + <div>- srcDestTcpUdpPort: Source and destination TCP/UDP port number.</div> + <div>- srcMac: Source MAC address.</div> + <div>- destIp: Destination IP.</div> + <div>- destMac: Destination MAC address.</div> + <div>- vlan: VLAN only.</div> + <div>- srcDestIp: Source and Destination IP.</div> + <div>- srcIpTcpUdpPortVlan: Source IP, TCP/UDP port number and VLAN.</div> + <div>- srcDestIpTcpUdpPort: Source and destination IP and TCP/UDP port number.</div> + <div>- srcDestMac: Source and destination MAC address.</div> + <div>- destIpTcpUdpPort: Destination IP and TCP/UDP port number.</div> + <div>- srcPortId: Source Virtual Port Id.</div> + <div>- srcIp: Source IP.</div> + <div>- srcIpTcpUdpPort: Source IP and TCP/UDP port number.</div> + <div>- destIpTcpUdpPortVlan: Destination IP, TCP/UDP port number and VLAN.</div> + <div>- destTcpUdpPort: Destination TCP/UDP port number.</div> + <div>- destIpVlan: Destination IP and VLAN.</div> + <div>- srcDestIpVlan: Source and destination IP and VLAN.</div> + <div>Please see examples for more information.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mode</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>active</li> + <li>passive</li> + </ul> + </td> + <td> + <div>The negotiating state of the uplinks/ports.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the LAG.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uplink_number</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Number of uplinks.</div> + <div>Can 1 to 30.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>support_mode</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>basic</b> ←</div></li> + <li>enhanced</li> + </ul> + </td> + <td> + <div>The LACP support mode.</div> + <div><code>basic</code>: One Link Aggregation Control Protocol group in the switch (singleLag).</div> + <div><code>enhanced</code>: Multiple Link Aggregation Control Protocol groups in the switch (multipleLag).</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>switch</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the Distributed Switch to manage.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: dvswitch</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - You need to run the task two times if you want to remove all LAGs and change the support mode to 'basic' + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Enable enhanced mode on a Distributed Switch + community.vmware.vmware_dvswitch_lacp: + hostname: '{{ inventory_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + switch: dvSwitch + support_mode: enhanced + validate_certs: "{{ validate_vcenter_certs }}" + delegate_to: localhost + loop_control: + label: "{{ item.name }}" + with_items: "{{ vcenter_distributed_switches }}" + + - name: Enable enhanced mode and create two LAGs on a Distributed Switch + community.vmware.vmware_dvswitch_lacp: + hostname: '{{ inventory_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + switch: dvSwitch + support_mode: enhanced + link_aggregation_groups: + - name: lag1 + uplink_number: 2 + mode: active + load_balancing_mode: srcDestIpTcpUdpPortVlan + - name: lag2 + uplink_number: 2 + mode: passive + load_balancing_mode: srcDestIp + validate_certs: "{{ validate_vcenter_certs }}" + delegate_to: localhost + loop_control: + label: "{{ item.name }}" + with_items: "{{ vcenter_distributed_switches }}" + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>information about performed operation</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'changed': True, 'dvswitch': 'dvSwitch', 'link_aggregation_groups': [{'load_balancing_mode': 'srcDestIpTcpUdpPortVlan', 'mode': 'active', 'name': 'lag1', 'uplink_number': 2}, {'load_balancing_mode': 'srcDestIp', 'mode': 'active', 'name': 'lag2', 'uplink_number': 2}], 'link_aggregation_groups_previous': [], 'support_mode': 'enhanced', 'result': 'lacp lags changed'}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Christian Kotte (@ckotte) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_dvswitch_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvswitch_module.rst new file mode 100644 index 00000000..152c9417 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvswitch_module.rst @@ -0,0 +1,877 @@ +.. _community.vmware.vmware_dvswitch_module: + + +******************************** +community.vmware.vmware_dvswitch +******************************** + +**Create or remove a Distributed Switch** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to create, remove a Distributed Switch. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>contact</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Dictionary which configures administrator contact name and description for the Distributed Switch.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>description</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Description or other details.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Administrator name.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the datacenter that will contain the Distributed Switch.</div> + <div>This parameter is optional, if <code>folder</code> is provided.</div> + <div>Mutually exclusive with <code>folder</code> parameter.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>description</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Description of the Distributed Switch.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>discovery_operation</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>both</li> + <li>advertise</li> + <li><div style="color: blue"><b>listen</b> ←</div></li> + </ul> + </td> + <td> + <div>Select the discovery operation.</div> + <div>Required parameter for <code>state</code> both <code>present</code> and <code>absent</code>, before Ansible 2.6 version.</div> + <div>Required only if <code>state</code> is set to <code>present</code>, for Ansible 2.6 and onwards.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>discovery_proto</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>cdp</b> ←</div></li> + <li>lldp</li> + <li>disabled</li> + </ul> + </td> + <td> + <div>Link discovery protocol between Cisco and Link Layer discovery.</div> + <div>Required parameter for <code>state</code> both <code>present</code> and <code>absent</code>, before Ansible 2.6 version.</div> + <div>Required only if <code>state</code> is set to <code>present</code>, for Ansible 2.6 and onwards.</div> + <div><code>cdp</code>: Use Cisco Discovery Protocol (CDP).</div> + <div><code>lldp</code>: Use Link Layer Discovery Protocol (LLDP).</div> + <div><code>disabled</code>: Do not use a discovery protocol.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: discovery_protocol</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute path to place dvswitch in.</div> + <div>The folder should include the datacenter.</div> + <div>This parameter is case sensitive.</div> + <div>This parameter is optional, if <code>datacenter</code> is provided.</div> + <div>Examples:</div> + <div>folder: /datacenter1/network</div> + <div>folder: datacenter1/network</div> + <div>folder: /datacenter1/network/folder1</div> + <div>folder: datacenter1/network/folder1</div> + <div>folder: /folder1/datacenter1/network</div> + <div>folder: folder1/datacenter1/network</div> + <div>folder: /folder1/datacenter1/network/folder2</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>health_check</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{"teaming_failover": false, "teaming_failover_interval": 0, "vlan_mtu": false, "vlan_mtu_interval": 0}</div> + </td> + <td> + <div>Dictionary which configures Health Check for the Distributed Switch.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>teaming_failover</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Teaming and failover health check.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>teaming_failover_interval</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">0</div> + </td> + <td> + <div>Teaming and failover health check interval (minutes).</div> + <div>The default value is 1 in the vSphere Client if the Teaming and failover health check is enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vlan_mtu</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>VLAN and MTU health check.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vlan_mtu_interval</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">0</div> + </td> + <td> + <div>VLAN and MTU health check interval (minutes).</div> + <div>The default value is 1 in the vSphere Client if the VLAN and MTU health check is enabled.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mtu</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">1500</div> + </td> + <td> + <div>The switch maximum transmission unit.</div> + <div>Required parameter for <code>state</code> both <code>present</code> and <code>absent</code>, before Ansible 2.6 version.</div> + <div>Required only if <code>state</code> is set to <code>present</code>, for Ansible 2.6 and onwards.</div> + <div>Accepts value between 1280 to 9000 (both inclusive).</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>multicast_filtering_mode</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>basic</b> ←</div></li> + <li>snooping</li> + </ul> + </td> + <td> + <div>The multicast filtering mode.</div> + <div><code>basic</code> mode: multicast traffic for virtual machines is forwarded according to the destination MAC address of the multicast group.</div> + <div><code>snooping</code> mode: the Distributed Switch provides IGMP and MLD snooping according to RFC 4541.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>net_flow</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.7.0</div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{"active_flow_timeout": 60, "collector_port": 0, "idle_flow_timeout": 15, "internal_flows_only": false, "observation_domain_id": 0, "sampling_rate": 4096}</div> + </td> + <td> + <div>Dictionary which configures the Net Flow for the Distributed Switch.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>active_flow_timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">60</div> + </td> + <td> + <div>The time, in seconds, to wait before sending information after the flow is initiated.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>collector_ip</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The IP Address (IPv4 or IPv6) of the NetFlow collector.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>collector_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">0</div> + </td> + <td> + <div>The Port of the NetFlow collector.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>idle_flow_timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">15</div> + </td> + <td> + <div>The time, in seconds, to wait before sending information after the flow is initiated.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>internal_flows_only</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>If True, data on network activity between vms on the same host will be collected only.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>observation_domain_id</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">0</div> + </td> + <td> + <div>Identifies the information related to the switch.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>sampling_rate</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">4096</div> + </td> + <td> + <div>The portion of data that the switch collects.</div> + <div>The sampling rate represents the number of packets that NetFlow drops after every collected packet.</div> + <div>If the rate is 0, NetFlow samples every packet, that is, collect one packet and drop none.</div> + <div>If the rate is 1, NetFlow samples a packet and drops the next one, and so on.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>network_policy</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Dictionary which configures the different default security values for portgroups.</div> + <div>If set, these options are inherited by the portgroups of the DVS.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>forged_transmits</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates whether forged transmits are allowed.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mac_changes</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates whether mac changes are allowed.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>promiscuous</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates whether promiscuous mode is allowed.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>If set to <code>present</code> and the Distributed Switch does not exist, the Distributed Switch will be created.</div> + <div>If set to <code>absent</code> and the Distributed Switch exists, the Distributed Switch will be deleted.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>switch_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the distribute vSwitch to create or remove.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: switch, dvswitch</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>switch_version</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The version of the Distributed Switch to create.</div> + <div>The version must match the version of the ESXi hosts you want to connect.</div> + <div>The version of the vCenter server is used if not specified.</div> + <div>Required only if <code>state</code> is set to <code>present</code>.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: version</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uplink_prefix</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"Uplink "</div> + </td> + <td> + <div>The prefix used for the naming of the uplinks.</div> + <div>Only valid if the Distributed Switch will be created. Not used if the Distributed Switch is already present.</div> + <div>Uplinks are created as Uplink 1, Uplink 2, etc. pp. by default.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uplink_quantity</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Quantity of uplink per ESXi host added to the Distributed Switch.</div> + <div>The uplink quantity can be increased or decreased, but a decrease will only be successfull if the uplink isn't used by a portgroup.</div> + <div>Required parameter for <code>state</code> both <code>present</code> and <code>absent</code>, before Ansible 2.6 version.</div> + <div>Required only if <code>state</code> is set to <code>present</code>, for Ansible 2.6 and onwards.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Create dvSwitch + community.vmware.vmware_dvswitch: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter: '{{ datacenter }}' + switch: dvSwitch + version: 6.0.0 + mtu: 9000 + uplink_quantity: 2 + discovery_protocol: lldp + discovery_operation: both + state: present + delegate_to: localhost + + - name: Create dvSwitch with all options + community.vmware.vmware_dvswitch: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter: '{{ datacenter }}' + switch: dvSwitch + version: 6.5.0 + mtu: 9000 + uplink_quantity: 2 + uplink_prefix: 'Uplink_' + discovery_protocol: cdp + discovery_operation: both + multicast_filtering_mode: snooping + health_check: + vlan_mtu: true + vlan_mtu_interval: 1 + teaming_failover: true + teaming_failover_interval: 1 + net_flow: + collector_ip: 192.168.10.50 + collector_port: 50034 + observation_domain_id: 0 + active_flow_timeout: 60 + idle_flow_timeout: 15 + sampling_rate: 4096 + internal_flows_only: False + state: present + delegate_to: localhost + + - name: Delete dvSwitch + community.vmware.vmware_dvswitch: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter: '{{ datacenter }}' + switch: dvSwitch + state: absent + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>information about performed operation</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'changed': False, 'contact': None, 'contact_details': None, 'description': None, 'discovery_operation': 'both', 'discovery_protocol': 'cdp', 'dvswitch': 'test', 'health_check_teaming': False, 'health_check_teaming_interval': 0, 'health_check_vlan': False, 'health_check_vlan_interval': 0, 'net_flow_collector_ip': '192.168.10.50', 'net_flow_collector_port': 50034, 'net_flow_observation_domain_id': 0, 'net_flow_active_flow_timeout': 60, 'net_flow_idle_flow_timeout': 15, 'net_flow_sampling_rate': 4096, 'net_flow_internal_flows_only': False, 'mtu': 9000, 'multicast_filtering_mode': 'basic', 'result': 'DVS already configured properly', 'uplink_quantity': 2, 'uplinks': ['Uplink_1', 'Uplink_2'], 'version': '6.6.0'}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Joseph Callen (@jcpowermac) +- Abhijeet Kasurde (@Akasurde) +- Christian Kotte (@ckotte) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_dvswitch_nioc_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvswitch_nioc_module.rst new file mode 100644 index 00000000..afef793a --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvswitch_nioc_module.rst @@ -0,0 +1,449 @@ +.. _community.vmware.vmware_dvswitch_nioc_module: + + +************************************* +community.vmware.vmware_dvswitch_nioc +************************************* + +**Manage distributed switch Network IO Control** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to manage distributed switch Network IO Control configurations. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>resources</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>List of dicts containing.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>limit</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">-1</div> + </td> + <td> + <div>The maximum allowed usage for a traffic class belonging to this resource pool per host physical NIC.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>faultTolerance</li> + <li>hbr</li> + <li>iSCSI</li> + <li>management</li> + <li>nfs</li> + <li>vdp</li> + <li>virtualMachine</li> + <li>vmotion</li> + <li>vsan</li> + <li>backupNfc</li> + <li>nvmetcp</li> + </ul> + </td> + <td> + <div>Resource name.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>reservation</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">0</div> + </td> + <td> + <div>Ignored if NIOC version is set to version2</div> + <div>Amount of bandwidth resource that is guaranteed available to the host infrastructure traffic class.</div> + <div>If the utilization is less than the reservation, the extra bandwidth is used for other host infrastructure traffic class types.</div> + <div>Reservation is not allowed to exceed the value of limit, if limit is set.</div> + <div>Unit is Mbits/sec.</div> + <div>Ignored unless version is "version3".</div> + <div>Amount of bandwidth resource that is guaranteed available to the host infrastructure traffic class.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>shares</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>The number of shares allocated.</div> + <div>Ignored unless <code>shares_level</code> is "custom".</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>shares_level</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>low</li> + <li>normal</li> + <li>high</li> + <li>custom</li> + </ul> + </td> + <td> + <div>The allocation level</div> + <div>The level is a simplified view of shares.</div> + <div>Levels map to a pre-determined set of numeric values for shares.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>Enable or disable NIOC on the distributed switch.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>switch</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the distributed switch.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: dvswitch</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>version</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>version2</li> + <li>version3</li> + </ul> + </td> + <td> + <div>Network IO control version.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Enable NIOC + community.vmware.vmware_dvswitch_nioc: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + switch: dvSwitch + version: version3 + resources: + - name: vmotion + limit: -1 + reservation: 128 + shares_level: normal + - name: vsan + limit: -1 + shares_level: custom + shares: 99 + reservation: 256 + state: present + delegate_to: localhost + + - name: Disable NIOC + community.vmware.vmware_dvswitch_nioc: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + switch: dvSwitch + state: absent + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>dvswitch_nioc_status</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>success</td> + <td> + <div>result of the changes</div> + <br/> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>resources_changed</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>success</td> + <td> + <div>list of resources which were changed</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['vmotion', 'vsan']</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Joseph Andreatta (@vmwjoseph) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_dvswitch_pvlans_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvswitch_pvlans_module.rst new file mode 100644 index 00000000..b85e818a --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvswitch_pvlans_module.rst @@ -0,0 +1,323 @@ +.. _community.vmware.vmware_dvswitch_pvlans_module: + + +*************************************** +community.vmware.vmware_dvswitch_pvlans +*************************************** + +**Manage Private VLAN configuration of a Distributed Switch** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to configure Private VLANs (PVLANs) on a Distributed Switch. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>primary_pvlans</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>A list of VLAN IDs that should be configured as Primary PVLANs.</div> + <div>If <code>primary_pvlans</code> isn't specified, all PVLANs will be deleted if present.</div> + <div>Each member of the list requires primary_pvlan_id (int) set.</div> + <div>The secondary promiscuous PVLAN will be created automatically.</div> + <div>If <code>secondary_pvlans</code> isn't specified, the primary PVLANs and each secondary promiscuous PVLAN will be created.</div> + <div>Please see examples for more information.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>secondary_pvlans</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>A list of VLAN IDs that should be configured as Secondary PVLANs.</div> + <div><code>primary_pvlans</code> need to be specified to create any Secondary PVLAN.</div> + <div>If <code>primary_pvlans</code> isn't specified, all PVLANs will be deleted if present.</div> + <div>Each member of the list requires primary_pvlan_id (int), secondary_pvlan_id (int), and pvlan_type (str) to be set.</div> + <div>The type of the secondary PVLAN can be isolated or community. The secondary promiscuous PVLAN will be created automatically.</div> + <div>Please see examples for more information.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>switch</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the Distributed Switch.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: dvswitch</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Create PVLANs on a Distributed Switch + community.vmware.vmware_dvswitch_pvlans: + hostname: '{{ inventory_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + switch: dvSwitch + primary_pvlans: + - primary_pvlan_id: 1 + - primary_pvlan_id: 4 + secondary_pvlans: + - primary_pvlan_id: 1 + secondary_pvlan_id: 2 + pvlan_type: isolated + - primary_pvlan_id: 1 + secondary_pvlan_id: 3 + pvlan_type: community + - primary_pvlan_id: 4 + secondary_pvlan_id: 5 + pvlan_type: community + delegate_to: localhost + + - name: Create primary PVLAN and secondary promiscuous PVLAN on a Distributed Switch + community.vmware.vmware_dvswitch_pvlans: + hostname: '{{ inventory_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + switch: dvSwitch + primary_pvlans: + - primary_pvlan_id: 1 + delegate_to: localhost + + - name: Remove all PVLANs from a Distributed Switch + community.vmware.vmware_dvswitch_pvlans: + hostname: '{{ inventory_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + switch: dvSwitch + primary_pvlans: [] + secondary_pvlans: [] + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>information about performed operation</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'changed': True, 'dvswitch': 'dvSwitch', 'private_vlans': [{'primary_pvlan_id': 1, 'pvlan_type': 'promiscuous', 'secondary_pvlan_id': 1}, {'primary_pvlan_id': 1, 'pvlan_type': 'isolated', 'secondary_pvlan_id': 2}, {'primary_pvlan_id': 1, 'pvlan_type': 'community', 'secondary_pvlan_id': 3}], 'private_vlans_previous': [], 'result': 'All private VLANs added'}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Christian Kotte (@ckotte) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_dvswitch_uplink_pg_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvswitch_uplink_pg_module.rst new file mode 100644 index 00000000..5f58c681 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_dvswitch_uplink_pg_module.rst @@ -0,0 +1,552 @@ +.. _community.vmware.vmware_dvswitch_uplink_pg_module: + + +****************************************** +community.vmware.vmware_dvswitch_uplink_pg +****************************************** + +**Manage uplink portproup configuration of a Distributed Switch** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to configure the uplink portgroup of a Distributed Switch. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>advanced</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{"block_override": true, "netflow_override": false, "port_config_reset_at_disconnect": true, "traffic_filter_override": false, "vendor_config_override": false, "vlan_override": false}</div> + </td> + <td> + <div>Dictionary which configures the advanced policy settings for the uplink portgroup.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: port_policy</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>block_override</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Indicates if the block policy can be changed per port.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>netflow_override</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates if the NetFlow policy can be changed per port.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port_config_reset_at_disconnect</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Indicates if the configuration of a port is reset automatically after disconnect.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>traffic_filter_override</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates if the traffic filter can be changed per port.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vendor_config_override</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates if the vendor config can be changed per port.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vlan_override</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates if the vlan can be changed per port.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>block_all_ports</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates if all ports are blocked on the uplink portgroup.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>description</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The description of the uplink portgroup.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>lacp</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{"mode": "passive", "status": "disabled"}</div> + </td> + <td> + <div>Dictionary which configures the LACP settings for the uplink portgroup.</div> + <div>The options are only used if the LACP support mode is set to 'basic'.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mode</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>active</li> + <li><div style="color: blue"><b>passive</b> ←</div></li> + </ul> + </td> + <td> + <div>The negotiating state of the uplinks/ports.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>status</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>enabled</li> + <li><div style="color: blue"><b>disabled</b> ←</div></li> + </ul> + </td> + <td> + <div>Indicates if LACP is enabled.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the uplink portgroup.</div> + <div>The current name will be used if not specified.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>netflow_enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates if NetFlow is enabled on the uplink portgroup.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>switch</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the Distributed Switch.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: dvswitch</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vlan_trunk_range</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">["0-4094"]</div> + </td> + <td> + <div>The VLAN trunk range that should be configured with the uplink portgroup.</div> + <div>This can be a combination of multiple ranges and numbers, example: [ 2-3967, 4049-4092 ].</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Configure Uplink portgroup + community.vmware.vmware_dvswitch_uplink_pg: + hostname: '{{ inventory_hostname }}' + username: '{{ vcsa_username }}' + password: '{{ vcsa_password }}' + switch: dvSwitch + name: dvSwitch-DVUplinks + advanced: + port_config_reset_at_disconnect: True + block_override: True + vendor_config_override: False + vlan_override: False + netflow_override: False + traffic_filter_override: False + vlan_trunk_range: + - '0-4094' + netflow_enabled: False + block_all_ports: False + delegate_to: localhost + + - name: Enabled LACP on Uplink portgroup + community.vmware.vmware_dvswitch_uplink_pg: + hostname: '{{ inventory_hostname }}' + username: '{{ vcsa_username }}' + password: '{{ vcsa_password }}' + switch: dvSwitch + lacp: + status: enabled + mode: active + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>information about performed operation</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'adv_block_ports': True, 'adv_netflow': False, 'adv_reset_at_disconnect': True, 'adv_traffic_filtering': False, 'adv_vendor_conf': False, 'adv_vlan': False, 'block_all_ports': False, 'changed': False, 'description': None, 'dvswitch': 'dvSwitch', 'lacp_status': 'disabled', 'lacp_status_previous': 'enabled', 'name': 'dvSwitch-DVUplinks', 'netflow_enabled': False, 'result': 'Uplink portgroup already configured properly', 'vlan_trunk_range': ['2-3967', '4049-4092']}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Christian Kotte (@ckotte) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_evc_mode_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_evc_mode_module.rst new file mode 100644 index 00000000..c36ac105 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_evc_mode_module.rst @@ -0,0 +1,313 @@ +.. _community.vmware.vmware_evc_mode_module: + + +******************************** +community.vmware.vmware_evc_mode +******************************** + +**Enable/Disable EVC mode on vCenter** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to enable/disable EVC mode on vCenter. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the cluster to enable or disable EVC mode on.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: cluster</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the datacenter the cluster belongs to that you want to enable or disable EVC mode on.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>evc_mode</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Required for <code>state=present</code>.</div> + <div>The EVC mode to enable or disable on the cluster. (intel-broadwell, intel-nehalem, intel-merom, etc.).</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>absent</li> + <li><div style="color: blue"><b>present</b> ←</div></li> + </ul> + </td> + <td> + <div>Add or remove EVC mode.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Enable EVC Mode + community.vmware.vmware_evc_mode: + hostname: "{{ groups['vcsa'][0] }}" + username: "{{ vcenter_username }}" + password: "{{ site_password }}" + datacenter_name: "{{ datacenter_name }}" + cluster_name: "{{ cluster_name }}" + evc_mode: "intel-broadwell" + state: present + delegate_to: localhost + register: enable_evc + + - name: Disable EVC Mode + community.vmware.vmware_evc_mode: + hostname: "{{ groups['vcsa'][0] }}" + username: "{{ vcenter_username }}" + password: "{{ site_password }}" + datacenter_name: "{{ datacenter_name }}" + cluster_name: "{{ cluster_name }}" + state: absent + delegate_to: localhost + register: disable_evc + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>information about performed operation</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">EVC Mode for 'intel-broadwell' has been enabled.</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Michael Tipton (@castawayegr) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_export_ovf_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_export_ovf_module.rst new file mode 100644 index 00000000..988b545f --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_export_ovf_module.rst @@ -0,0 +1,397 @@ +.. _community.vmware.vmware_export_ovf_module: + + +********************************** +community.vmware.vmware_export_ovf +********************************** + +**Exports a VMware virtual machine to an OVF file, device files and a manifest file** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to export a VMware virtual machine to OVF template from vCenter server or ESXi host. + + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"ha-datacenter"</div> + </td> + <td> + <div>Datacenter name of the virtual machine to export.</div> + <div>This parameter is case sensitive.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>download_timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">30</div> + </td> + <td> + <div>The user defined timeout in second of exporting file.</div> + <div>If the vmdk file is too large, you can increase the value.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>export_dir</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">path</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Absolute path to place the exported files on the server running this task, must have write permission.</div> + <div>If folder not exist will create it, also create a folder under this path named with VM name.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>export_with_extraconfig</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.0.0</div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>All extra configuration options are exported for a virtual machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>export_with_images</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Export an ISO image of the media mounted on the CD/DVD Drive within the virtual machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute path to find the specified guest.</div> + <div>The folder should include the datacenter. ESX datacenter is ha-datacenter.</div> + <div>This parameter is case sensitive.</div> + <div>If multiple machines are found with same name, this parameter is used to identify</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine to export.</div> + <div>This is a required parameter, if parameter <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Uuid of the virtual machine to export.</div> + <div>This is a required parameter, if parameter <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - community.vmware.vmware_export_ovf: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + name: '{{ vm_name }}' + export_with_images: true + export_dir: /path/to/ovf_template/ + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>instance</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>list of the exported files, if exported from vCenter server, device file is not named with vm name</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">None</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Diane Wang (@Tomorrow9) <dianew@vmware.com> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_first_class_disk_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_first_class_disk_module.rst new file mode 100644 index 00000000..744d3d60 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_first_class_disk_module.rst @@ -0,0 +1,334 @@ +.. _community.vmware.vmware_first_class_disk_module: + + +**************************************** +community.vmware.vmware_first_class_disk +**************************************** + +**Manage VMware vSphere First Class Disks** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to manage (create, delete, resize) VMware vSphere First Class Disks. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the datacenter.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of datastore or datastore cluster to be used for the disk.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>disk_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the disk.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>size</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Disk storage size, an integer plus a unit.</div> + <div>There is no space allowed in between size number and unit.</div> + <div>Allowed units are MB, GB and TB.</div> + <div>Examples:</div> + <div>size: 2048MB</div> + <div>size: 10GB</div> + <div>size: 1TB</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>If the disk should be present or absent.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Create Disk + community.vmware.vmware_first_class_disk: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datastore_name: '{{ datastore_name }}' + disk_name: '1GBDisk' + size: '1GB' + state: present + delegate_to: localhost + + - name: Delete Disk + community.vmware.vmware_first_class_disk: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datastore_name: '{{ datastore_name }}' + disk_name: 'FirstClassDisk' + state: absent + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>first_class_disk</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>changed</td> + <td> + <div>First-class disk returned when created, deleted or changed</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{ + "name": "1GBDisk" + "datastore_name": "DS0" + "size_mb": "1024" + "state": "present" + }</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Mario Lenz (@mariolenz) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_folder_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_folder_info_module.rst new file mode 100644 index 00000000..a647ddc5 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_folder_info_module.rst @@ -0,0 +1,277 @@ +.. _community.vmware.vmware_folder_info_module: + + +*********************************** +community.vmware.vmware_folder_info +*********************************** + +**Provides information about folders in a datacenter** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- The module can be used to gather a hierarchical view of the folders that exist within a datacenter + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datacenter.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - ``flat_folder_info`` added in VMware collection 1.4.0. + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Provide information about vCenter folders + community.vmware.vmware_folder_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter: datacenter_name + delegate_to: localhost + register: vcenter_folder_info + + - name: Get information about folders + community.vmware.vmware_folder_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter: 'Asia-Datacenter1' + register: r + + - name: Set Managed object ID for the given folder + ansible.builtin.set_fact: + folder_mo_id: "{{ (r.flat_folder_info | selectattr('path', 'equalto', '/Asia-Datacenter1/vm/tier1/tier2') | map(attribute='moid'))[0] }}" + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>flat_folder_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>success</td> + <td> + <div>list of dict about folders in flat structure</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'moid': 'group-v3', 'path': '/Asia-Datacenter1/vm'}, {'moid': 'group-v44', 'path': '/Asia-Datacenter1/vm/tier1'}, {'moid': 'group-v45', 'path': '/Asia-Datacenter1/vm/tier1/tier2'}]</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>folder_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>success</td> + <td> + <div>dict about folders</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'datastoreFolders': {'moid': 'group-v10', 'path': '/DC01/datastore', 'subfolders': {'Local Datastores': {'path': '/DC01/datastore/Local Datastores', 'subfolders': {}}}}, 'hostFolders': {'moid': 'group-v21', 'path': '/DC01/host', 'subfolders': {}}, 'networkFolders': {'moid': 'group-v31', 'path': '/DC01/network', 'subfolders': {}}, 'vmFolders': {'moid': 'group-v41', 'path': '/DC01/vm', 'subfolders': {'Core Infrastructure Servers': {'moid': 'group-v42', 'path': '/DC01/vm/Core Infrastructure Servers', 'subfolders': {'Staging Network Services': {'moid': 'group-v43', 'path': '/DC01/vm/Core Infrastructure Servers/Staging Network Services', 'subfolders': {}}, 'VMware': {'moid': 'group-v44', 'path': '/DC01/vm/Core Infrastructure Servers/VMware', 'subfolders': {}}}}}}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- David Hewitt (@davidmhewitt) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_boot_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_boot_info_module.rst new file mode 100644 index 00000000..98951700 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_boot_info_module.rst @@ -0,0 +1,323 @@ +.. _community.vmware.vmware_guest_boot_info_module: + + +*************************************** +community.vmware.vmware_guest_boot_info +*************************************** + +**Gather info about boot options for the given virtual machine** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Gather information about boot options for the given virtual machine. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the VM to work with.</div> + <div>This is required if <code>uuid</code> or <code>moid</code> parameter is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name_match</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>first</b> ←</div></li> + <li>last</li> + </ul> + </td> + <td> + <div>If multiple virtual machines matching the name, use the first or last found.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to manage if known, this is VMware's BIOS UUID by default.</div> + <div>This is required if <code>name</code> or <code>moid</code> parameter is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather info about virtual machine's boot order and related parameters + community.vmware.vmware_guest_boot_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + name: "{{ vm_name }}" + register: vm_boot_order_info + + - name: Gather information about virtual machine's boot order using MoID + community.vmware.vmware_guest_boot_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + moid: "vm-42" + register: vm_moid_boot_order_info + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>vm_boot_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about boot order of virtual machine</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'current_boot_order': ['floppy', 'disk', 'ethernet', 'cdrom'], 'current_boot_delay': 2000, 'current_boot_retry_delay': 22300, 'current_boot_retry_enabled': True, 'current_enter_bios_setup': True, 'current_boot_firmware': 'bios', 'current_secure_boot_enabled': False}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_boot_manager_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_boot_manager_module.rst new file mode 100644 index 00000000..47ec90cf --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_boot_manager_module.rst @@ -0,0 +1,490 @@ +.. _community.vmware.vmware_guest_boot_manager_module: + + +****************************************** +community.vmware.vmware_guest_boot_manager +****************************************** + +**Manage boot options for the given virtual machine** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to manage boot options for the given virtual machine. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>boot_delay</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Delay in milliseconds before starting the boot sequence.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>boot_firmware</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>bios</li> + <li>efi</li> + </ul> + </td> + <td> + <div>Choose which firmware should be used to boot the virtual machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>boot_hdd_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 3.2.0</div> + </td> + <td> + </td> + <td> + <div>Name of disk to be set as boot disk, which is case sensitive, e.g., 'Hard disk 1'.</div> + <div>This parameter is optional, if not set, will use the first virtual disk found in VM device list.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>boot_order</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>List of the boot devices.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>boot_retry_delay</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify the time in milliseconds between virtual machine boot failure and subsequent attempt to boot again.</div> + <div>If set, will automatically set <code>boot_retry_enabled</code> to <code>True</code> as this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>boot_retry_enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>If set to <code>True</code>, the virtual machine that fails to boot, will try to boot again after <code>boot_retry_delay</code> is expired.</div> + <div>If set to <code>False</code>, the virtual machine waits indefinitely for user intervention.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enter_bios_setup</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>If set to <code>True</code>, the virtual machine automatically enters BIOS setup the next time it boots.</div> + <div>The virtual machine resets this flag, so that the machine boots proceeds normally.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the VM to work with.</div> + <div>This is required if <code>uuid</code> or <code>moid</code> parameter is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name_match</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>first</b> ←</div></li> + <li>last</li> + </ul> + </td> + <td> + <div>If multiple virtual machines matching the name, use the first or last found.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>secure_boot_enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Choose if EFI secure boot should be enabled. EFI secure boot can only be enabled with boot_firmware = efi</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to manage if known, this is VMware's BIOS UUID by default.</div> + <div>This is required if <code>name</code> or <code>moid</code> parameter is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Change virtual machine's boot order and related parameters + community.vmware.vmware_guest_boot_manager: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + name: testvm + boot_delay: 2000 + enter_bios_setup: True + boot_retry_enabled: True + boot_retry_delay: 22300 + boot_firmware: bios + secure_boot_enabled: False + boot_order: + - floppy + - cdrom + - ethernet + - disk + delegate_to: localhost + register: vm_boot_order + + - name: Change virtual machine's boot order using Virtual Machine MoID + community.vmware.vmware_guest_boot_manager: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + moid: vm-42 + boot_delay: 2000 + enter_bios_setup: True + boot_retry_enabled: True + boot_retry_delay: 22300 + boot_firmware: bios + secure_boot_enabled: False + boot_order: + - floppy + - cdrom + - ethernet + - disk + delegate_to: localhost + register: vm_boot_order + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>vm_boot_status</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about boot order of virtual machine</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'current_boot_order': ['floppy', 'disk', 'ethernet', 'cdrom'], 'current_boot_delay': 2000, 'current_boot_retry_delay': 22300, 'current_boot_retry_enabled': True, 'current_enter_bios_setup': True, 'current_boot_firmware': 'bios', 'current_secure_boot_enabled': False, 'previous_boot_delay': 10, 'previous_boot_retry_delay': 10000, 'previous_boot_retry_enabled': True, 'previous_enter_bios_setup': False, 'previous_boot_firmware': 'efi', 'previous_secure_boot_enabled': True, 'previous_boot_order': ['ethernet', 'cdrom', 'floppy', 'disk']}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) <akasurde@redhat.com> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_controller_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_controller_module.rst new file mode 100644 index 00000000..7d6b1552 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_controller_module.rst @@ -0,0 +1,522 @@ +.. _community.vmware.vmware_guest_controller_module: + + +**************************************** +community.vmware.vmware_guest_controller +**************************************** + +**Manage disk or USB controllers related to virtual machine in given vCenter infrastructure** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to add, remove disk controllers or USB controllers belonging to given virtual machine. +- All parameters and VMware object names are case sensitive. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>controllers</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>A list of disk or USB controllers to add or remove.</div> + <div>Total 4 disk controllers with the same type are allowed per VM.</div> + <div>Total 2 USB controllers are allowed per VM, 1 USB 2.0 and 1 USB 3.0 or 3.1.</div> + <div>For specific guest OS, supported controller types please refer to VMware Compatibility Guide.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>bus_sharing</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>noSharing</b> ←</div></li> + <li>physicalSharing</li> + <li>virtualSharing</li> + </ul> + </td> + <td> + <div>Bus sharing type for SCSI controller.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>controller_number</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>0</li> + <li>1</li> + <li>2</li> + <li>3</li> + </ul> + </td> + <td> + <div>Disk controller bus number. When <code>state</code> is set to <code>absent</code>, this parameter is required.</div> + <div>When <code>type</code> set to <code>usb2</code> or <code>usb3</code>, this parameter is not required.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>present</li> + <li>absent</li> + </ul> + </td> + <td> + <div>Add new controller or remove specified existing controller.</div> + <div>If <code>state</code> is set to <code>absent</code>, the specified controller will be removed from virtual machine when there is no disk or device attaching to it.</div> + <div>If specified controller is removed or not exist, no action will be taken only warning message.</div> + <div>If <code>state</code> is set to <code>present</code>, new controller with specified type will be added.</div> + <div>If the number of controller with specified controller type reaches it's maximum, no action will be taken only warning message.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>buslogic</li> + <li>lsilogic</li> + <li>lsilogicsas</li> + <li>paravirtual</li> + <li>sata</li> + <li>nvme</li> + <li>usb2</li> + <li>usb3</li> + </ul> + </td> + <td> + <div>Type of disk or USB controller.</div> + <div>From vSphere 6.5 and virtual machine with hardware version 13, <code>nvme</code> controller starts to be supported.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"ha-datacenter"</div> + </td> + <td> + <div>The datacenter name to which virtual machine belongs to.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute or relative path to find an existing guest.</div> + <div>This is a required parameter, only if multiple VMs are found with same name.</div> + <div>The folder should include the datacenter. ESX's datacenter is ha-datacenter</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>gather_disk_controller_facts</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to collect existing disk and USB controllers facts only.</div> + <div>When this parameter is set to <code>True</code>, <code>controllers</code> parameter will be ignored.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine.</div> + <div>This is a required parameter, if parameter <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>sleep_time</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">10</div> + </td> + <td> + <div>The sleep time in seconds after VM reconfigure task completes, used when not get the updated VM controller facts after VM reconfiguration.</div> + <div>This parameter is not required. Maximum value is 600.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to gather facts if known, this is VMware's unique identifier.</div> + <div>This is a required parameter, if parameter <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add disk and USB 3.0 controllers for virtual machine located by name + community.vmware.vmware_guest_controller: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + name: test_VM + controllers: + - state: present + type: sata + - state: present + type: nvme + - state: present + type: usb3 + delegate_to: localhost + register: disk_controller_facts + + - name: Remove disk controllers and USB 2.0 from virtual machine located by moid + community.vmware.vmware_guest_controller: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + moid: vm-33 + controllers: + - state: absent + controller_number: 1 + type: sata + - state: absent + controller_number: 0 + type: nvme + - state: absent + type: usb2 + delegate_to: localhost + register: disk_controller_facts + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>disk_controller_status</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the virtual machine's existing disk controllers or after adding or removing operation</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'nvme': {'0': {'controller_busnumber': 0, 'controller_controllerkey': 100, 'controller_devicekey': 31000, 'controller_disks_devicekey': [], 'controller_label': 'NVME controller 0', 'controller_summary': 'NVME controller 0', 'controller_unitnumber': 30}}, 'sata': {'0': {'controller_busnumber': 0, 'controller_controllerkey': 100, 'controller_devicekey': 15000, 'controller_disks_devicekey': [16000, 16001], 'controller_label': 'SATA controller 0', 'controller_summary': 'AHCI', 'controller_unitnumber': 24}}, 'scsi': {'0': {'controller_busnumber': 0, 'controller_controllerkey': 100, 'controller_devicekey': 1000, 'controller_disks_devicekey': [2000], 'controller_label': 'SCSI controller 0', 'controller_summary': 'LSI Logic SAS', 'controller_unitnumber': 3, 'controller_bus_sharing': 'noSharing'}, '1': {'controller_busnumber': 1, 'controller_controllerkey': 100, 'controller_devicekey': 1001, 'controller_disks_devicekey': [], 'controller_label': 'SCSI controller 1', 'controller_summary': 'VMware paravirtual SCSI', 'controller_unitnumber': 4, 'controller_bus_sharing': 'physicalSharing'}}, 'usb2': {'0': {'controller_busnumber': 0, 'controller_controllerkey': 100, 'controller_devicekey': 7000, 'controller_disks_devicekey': [], 'controller_label': 'USB Controller', 'controller_summary': 'Auto connect Disabled', 'controller_unitnumber': 22}}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Diane Wang (@Tomorrow9) <dianew@vmware.com> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_cross_vc_clone_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_cross_vc_clone_module.rst new file mode 100644 index 00000000..714a65f5 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_cross_vc_clone_module.rst @@ -0,0 +1,549 @@ +.. _community.vmware.vmware_guest_cross_vc_clone_module: + + +******************************************** +community.vmware.vmware_guest_cross_vc_clone +******************************************** + +**Cross-vCenter VM/template clone** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used for Cross-vCenter vm/template clone + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destination_datastore</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the destination datastore or the datastore cluster.</div> + <div>If datastore cluster name is specified, we will find the Storage DRS recommended datastore in that cluster.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destination_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the destination host.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destination_resource_pool</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination resource pool.</div> + <div>If not provided, the destination host's parent's resource pool will be used.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destination_vcenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the destination VCenter.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destination_vcenter_password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the destination VCenter.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destination_vcenter_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port to establish connection in the destination VCenter.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destination_vcenter_username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the destination VCenter.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destination_vcenter_validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Parameter to indicate if certification validation needs to be done on destination VCenter.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destination_vm_folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute path to deploy the cloned vm.</div> + <div>This parameter is case sensitive.</div> + <div>Examples:</div> + <div>folder: vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destination_vm_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the cloned VM.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>is_template</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Specifies whether or not the new virtual machine should be marked as a template.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the vm/template instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine or template.</div> + <div>This is a required parameter, if parameter <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>poweredon</li> + </ul> + </td> + <td> + <div>The state of Virtual Machine deployed.</div> + <div>If set to <code>present</code> and VM does not exists, then VM is created.</div> + <div>If set to <code>present</code> and VM exists, no action is taken.</div> + <div>If set to <code>poweredon</code> and VM does not exists, then VM is created with powered on state.</div> + <div>If set to <code>poweredon</code> and VM exists, no action is taken.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the vm/template instance to clone from, this is VMware's unique identifier.</div> + <div>This is a required parameter, if parameter <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + # Clone template + - name: clone a template across VC + community.vmware.vmware_guest_cross_vc_clone: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + name: "test_vm1" + destination_vm_name: "cloned_vm_from_template" + destination_vcenter: '{{ destination_vcenter_hostname }}' + destination_vcenter_username: '{{ destination_vcenter_username }}' + destination_vcenter_password: '{{ destination_vcenter_password }}' + destination_vcenter_port: '{{ destination_vcenter_port }}' + destination_vcenter_validate_certs: '{{ destination_vcenter_validate_certs }}' + destination_host: '{{ destination_esxi }}' + destination_datastore: '{{ destination_datastore }}' + destination_vm_folder: '{{ destination_vm_folder }}' + state: present + register: cross_vc_clone_from_template + + - name: clone a VM across VC + community.vmware.vmware_guest_cross_vc_clone: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: "{{ vcenter_password }}" + name: "test_vm1" + destination_vm_name: "cloned_vm_from_vm" + destination_vcenter: '{{ destination_vcenter_hostname }}' + destination_vcenter_username: '{{ destination_vcenter_username }}' + destination_vcenter_password: '{{ destination_vcenter_password }}' + destination_host: '{{ destination_esxi }}' + destination_datastore: '{{ destination_datastore }}' + destination_vm_folder: '{{ destination_vm_folder }}' + state: poweredon + register: cross_vc_clone_from_vm + + - name: check_mode support + community.vmware.vmware_guest_cross_vc_clone: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: "{{ vcenter_password }}" + name: "test_vm1" + destination_vm_name: "cloned_vm_from_vm" + destination_vcenter: '{{ destination_vcenter_hostname }}' + destination_vcenter_username: '{{ destination_vcenter_username }}' + destination_vcenter_password: '{{ destination_vcenter_password }}' + destination_host: '{{ destination_esxi }}' + destination_datastore: '{{ destination_datastore }}' + destination_vm_folder: '{{ destination_vm_folder }}' + check_mode: true + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>vm_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the virtual machine</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'vm_name': '', 'vcenter': '', 'host': '', 'datastore': '', 'vm_folder': '', 'power_on': ''}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Anusha Hegde (@anusha94) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_custom_attribute_defs_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_custom_attribute_defs_module.rst new file mode 100644 index 00000000..3fa560e1 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_custom_attribute_defs_module.rst @@ -0,0 +1,281 @@ +.. _community.vmware.vmware_guest_custom_attribute_defs_module: + + +*************************************************** +community.vmware.vmware_guest_custom_attribute_defs +*************************************************** + +**Manage custom attributes definitions for virtual machine from VMware** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to add and remove custom attributes definitions for the given virtual machine from VMware. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>attribute_key</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the custom attribute definition.</div> + <div>This is required parameter, if <code>state</code> is set to <code>present</code> or <code>absent</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>Manage definition of custom attributes.</div> + <div>If set to <code>present</code> and definition not present, then custom attribute definition is created.</div> + <div>If set to <code>present</code> and definition is present, then no action taken.</div> + <div>If set to <code>absent</code> and definition is present, then custom attribute definition is removed.</div> + <div>If set to <code>absent</code> and definition is absent, then no action taken.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add VMware Attribute Definition + community.vmware.vmware_guest_custom_attribute_defs: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + state: present + attribute_key: custom_attr_def_1 + delegate_to: localhost + register: defs + + - name: Remove VMware Attribute Definition + community.vmware.vmware_guest_custom_attribute_defs: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + state: absent + attribute_key: custom_attr_def_1 + delegate_to: localhost + register: defs + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>custom_attribute_defs</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>always</td> + <td> + <div>list of all current attribute definitions</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['sample_5', 'sample_4']</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Jimmy Conner (@cigamit) +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_custom_attributes_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_custom_attributes_module.rst new file mode 100644 index 00000000..33423baa --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_custom_attributes_module.rst @@ -0,0 +1,446 @@ +.. _community.vmware.vmware_guest_custom_attributes_module: + + +*********************************************** +community.vmware.vmware_guest_custom_attributes +*********************************************** + +**Manage custom attributes from VMware for the given virtual machine** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to add, remove and update custom attributes for the given virtual machine. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>attributes</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>A list of name and value of custom attributes that needs to be manage.</div> + <div>Value of custom attribute is not required and will be ignored, if <code>state</code> is set to <code>absent</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the attribute.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>value</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>Value of the attribute.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Datacenter name where the virtual machine is located in.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Absolute path to find an existing guest.</div> + <div>This is required parameter, if <code>name</code> is supplied and multiple virtual machines with same name are found.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine to work with.</div> + <div>This is required parameter, if <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>The action to take.</div> + <div>If set to <code>present</code>, then custom attribute is added or updated.</div> + <div>If set to <code>absent</code>, then custom attribute value is removed.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the virtual machine to manage if known. This is VMware's unique identifier.</div> + <div>This is required parameter, if <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add virtual machine custom attributes + community.vmware.vmware_guest_custom_attributes: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + uuid: 421e4592-c069-924d-ce20-7e7533fab926 + state: present + attributes: + - name: MyAttribute + value: MyValue + delegate_to: localhost + register: attributes + + - name: Add multiple virtual machine custom attributes + community.vmware.vmware_guest_custom_attributes: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + uuid: 421e4592-c069-924d-ce20-7e7533fab926 + state: present + attributes: + - name: MyAttribute + value: MyValue + - name: MyAttribute2 + value: MyValue2 + delegate_to: localhost + register: attributes + + - name: Remove virtual machine Attribute + community.vmware.vmware_guest_custom_attributes: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + uuid: 421e4592-c069-924d-ce20-7e7533fab926 + state: absent + attributes: + - name: MyAttribute + delegate_to: localhost + register: attributes + + - name: Remove virtual machine Attribute using Virtual Machine MoID + community.vmware.vmware_guest_custom_attributes: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + moid: vm-42 + state: absent + attributes: + - name: MyAttribute + delegate_to: localhost + register: attributes + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>custom_attributes</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the virtual machine attributes</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'mycustom': 'my_custom_value', 'mycustom_2': 'my_custom_value_2', 'sample_1': 'sample_1_value', 'sample_2': 'sample_2_value', 'sample_3': 'sample_3_value'}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Jimmy Conner (@cigamit) +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_customization_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_customization_info_module.rst new file mode 100644 index 00000000..c0a6f54a --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_customization_info_module.rst @@ -0,0 +1,254 @@ +.. _community.vmware.vmware_guest_customization_info_module: + + +************************************************ +community.vmware.vmware_guest_customization_info +************************************************ + +**Gather info about VM customization specifications** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about customization specifications. +- All parameters and VMware object names are case sensitive. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>spec_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of customization specification to find.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather info about all customization specification + community.vmware.vmware_guest_customization_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + delegate_to: localhost + register: all_custom_spec_info + + - name: Gather info about customization specification with the given name + community.vmware.vmware_guest_customization_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + spec_name: custom_linux_spec + delegate_to: localhost + register: custom_spec_info + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>custom_spec_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the customization specification</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'assignip-eee0d684-44b7-457c-8c55-2585590b0d99': {'change_version': '1523438001', 'description': 'sample description', 'dns_server_list': [], 'dns_suffix_list': [], 'domain': 'None', 'hostname': 'sample1', 'hw_clock_utc': None, 'last_updated_time': '2018-04-11T09:13:21+00:00', 'name': 'sample', 'nic_setting_map': [{'dns_domain': None, 'gateway': [], 'ip_address': '192.168.10.10', 'net_bios': None, 'nic_dns_server_list': [], 'primary_wins': None, 'secondry_wins': None, 'subnet_mask': '255.255.255.0'}], 'time_zone': None, 'type': 'Linux'}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_disk_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_disk_info_module.rst new file mode 100644 index 00000000..ed49d974 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_disk_info_module.rst @@ -0,0 +1,362 @@ +.. _community.vmware.vmware_guest_disk_info_module: + + +*************************************** +community.vmware.vmware_guest_disk_info +*************************************** + +**Gather info about disks of given virtual machine** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about disks belonging to given virtual machine. +- All parameters and VMware object names are case sensitive. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The datacenter name to which virtual machine belongs to.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute or relative path to find an existing guest.</div> + <div>This is required parameter, only if multiple VMs are found with same name.</div> + <div>The folder should include the datacenter. ESX's datacenter is ha-datacenter</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine.</div> + <div>This is required parameter, if parameter <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to gather information if known, this is VMware's unique identifier.</div> + <div>This is required parameter, if parameter <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather disk info from virtual machine using UUID + community.vmware.vmware_guest_disk_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: ha-datacenter + uuid: 421e4592-c069-924d-ce20-7e7533fab926 + delegate_to: localhost + register: disk_info + + - name: Gather disk info from virtual machine using name + community.vmware.vmware_guest_disk_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: ha-datacenter + name: VM_225 + delegate_to: localhost + register: disk_info + + - name: Gather disk info from virtual machine using moid + community.vmware.vmware_guest_disk_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: ha-datacenter + moid: vm-42 + delegate_to: localhost + register: disk_info + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>guest_disk_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the virtual machine's disks</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'0': {'backing_datastore': 'datastore2', 'backing_disk_mode': 'persistent', 'backing_diskmode': 'persistent', 'backing_eagerlyscrub': False, 'backing_filename': '[datastore2] VM_225/VM_225.vmdk', 'backing_thinprovisioned': False, 'backing_type': 'FlatVer2', 'backing_writethrough': False, 'backing_uuid': '200C3A00-f82a-97af-02ff-62a595f0020a', 'capacity_in_bytes': 10485760, 'capacity_in_kb': 10240, 'controller_bus_number': 0, 'controller_key': 1000, 'controller_type': 'paravirtual', 'key': 2000, 'label': 'Hard disk 1', 'summary': '10,240 KB', 'unit_number': 0}, '1': {'backing_datastore': 'datastore3', 'backing_devicename': 'vml.012345678901234567890123456789012345678901234567890123', 'backing_disk_mode': 'independent_persistent', 'backing_diskmode': 'independent_persistent', 'backing_filename': '[datastore3] VM_226/VM_226.vmdk', 'backing_lunuuid': '012345678901234567890123456789012345678901234567890123', 'backing_type': 'RawDiskMappingVer1', 'backing_uuid': None, 'capacity_in_bytes': 15728640, 'capacity_in_kb': 15360, 'controller_bus_number': 0, 'controller_key': 1000, 'controller_type': 'paravirtual', 'key': 2001, 'label': 'Hard disk 3', 'summary': '15,360 KB', 'unit_number': 1}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) <akasurde@redhat.com> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_disk_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_disk_module.rst new file mode 100644 index 00000000..140a35cc --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_disk_module.rst @@ -0,0 +1,1210 @@ +.. _community.vmware.vmware_guest_disk_module: + + +********************************** +community.vmware.vmware_guest_disk +********************************** + +**Manage disks related to virtual machine in given vCenter infrastructure** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to add, remove and update disks belonging to given virtual machine. +- All parameters and VMware object names are case sensitive. +- This module is destructive in nature, please read documentation carefully before proceeding. +- Be careful while removing disk specified as this may lead to data loss. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="4">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The datacenter name to which virtual machine belongs to.</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>disk</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>A list of disks to add or remove.</div> + <div>The virtual disk related information is provided using this list.</div> + <div>All values and parameters are case sensitive.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>autoselect_datastore</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Select the less used datastore. Specify only if <code>datastore</code> is not specified.</div> + <div>Not applicable when disk <code>type</code> is set to <code>vpmemdisk</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>bus_sharing</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>noSharing</b> ←</div></li> + <li>physicalSharing</li> + <li>virtualSharing</li> + </ul> + </td> + <td> + <div>Only functions with Paravirtual SCSI Controller.</div> + <div>Allows for the sharing of the scsi bus between two virtual machines.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_disk</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>This value allows for the sharing of an RDM between two machines.</div> + <div>The primary machine holding the RDM uses the default <code>False</code>.</div> + <div>The secondary machine holding the RDM uses <code>True</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>compatibility_mode</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>physicalMode</li> + <li>virtualMode</li> + </ul> + </td> + <td> + <div>Compatibility mode for raw devices. Required when disk type <code>type</code> is set to <code>rdm</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>controller_number</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>0</li> + <li>1</li> + <li>2</li> + <li>3</li> + </ul> + </td> + <td> + <div>This parameter is used with <code>controller_type</code> for specifying controller bus number.</div> + <div>For <code>ide</code> controller type, valid value is 0 or 1.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>controller_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>buslogic</li> + <li>lsilogic</li> + <li>lsilogicsas</li> + <li>paravirtual</li> + <li>sata</li> + <li>nvme</li> + <li>ide</li> + </ul> + </td> + <td> + <div>This parameter is added for managing disks attaching other types of controllers, e.g., SATA or NVMe.</div> + <div>If either <code>controller_type</code> or <code>scsi_type</code> is not specified, then use <code>paravirtual</code> type.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of datastore or datastore cluster to be used for the disk.</div> + <div>Not applicable when disk <code>type</code> is set to <code>vpmemdisk</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destroy</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>If <code>state</code> is <code>absent</code>, make sure the disk file is deleted from the datastore. Added in version 2.10.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>disk_mode</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>persistent</li> + <li>independent_persistent</li> + <li>independent_nonpersistent</li> + </ul> + </td> + <td> + <div>Type of disk mode. If not specified then use <code>persistent</code> mode for new disk.</div> + <div>If set to 'persistent' mode, changes are immediately and permanently written to the virtual disk.</div> + <div>If set to 'independent_persistent' mode, same as persistent, but not affected by snapshots.</div> + <div>If set to 'independent_nonpersistent' mode, changes to virtual disk are made to a redo log and discarded at power off, but not affected by snapshots.</div> + <div>Not applicable when disk <code>type</code> is set to <code>vpmemdisk</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>filename</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Existing disk image to be used. Filename must already exist on the datastore.</div> + <div>Specify filename string in <code>[datastore_name] path/to/file.vmdk</code> format. Added in version 2.10.</div> + <div>Not applicable when disk <code>type</code> is set to <code>vpmemdisk</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>iolimit</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Section specifies the shares and limit for storage I/O resource.</div> + <div>Not applicable when disk <code>type</code> is set to <code>vpmemdisk</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>limit</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Section specifies values for limit where the utilization of a virtual machine will not exceed, even if there are available resources.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>shares</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Specifies different types of shares user can add for the given disk.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>level</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>low</li> + <li>normal</li> + <li>high</li> + <li>custom</li> + </ul> + </td> + <td> + <div>Specifies different level for the shares section.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>level_value</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Custom value when <code>level</code> is set as <code>custom</code>.</div> + </td> + </tr> + + + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>rdm_path</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Path of LUN for Raw Device Mapping required for disk type <code>rdm</code>.</div> + <div>Only valid if <code>type</code> is set to <code>rdm</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>scsi_controller</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>0</li> + <li>1</li> + <li>2</li> + <li>3</li> + </ul> + </td> + <td> + <div>SCSI controller number. Only 4 SCSI controllers are allowed per VM.</div> + <div>Care should be taken while specifying 'scsi_controller' is 0 and 'unit_number' as 0 as this disk may contain OS.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>scsi_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>buslogic</li> + <li>lsilogic</li> + <li>lsilogicsas</li> + <li>paravirtual</li> + </ul> + </td> + <td> + <div>Type of SCSI controller. This value is required only for the first occurrence of SCSI Controller.</div> + <div>This value is ignored, if SCSI Controller is already present or <code>state</code> is <code>absent</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>shares</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Section for iolimit section tells about what are all different types of shares user can add for disk.</div> + <div>Not applicable when disk <code>type</code> is set to <code>vpmemdisk</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>level</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>low</li> + <li>normal</li> + <li>high</li> + <li>custom</li> + </ul> + </td> + <td> + <div>Tells about different level for the shares section.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>level_value</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Custom value when <code>level</code> is set as <code>custom</code>.</div> + </td> + </tr> + + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>sharing</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>The sharing mode of the virtual disk.</div> + <div>Setting sharing means that multiple virtual machines can write to the virtual disk.</div> + <div>Sharing can only be set if <code>type</code> is set to <code>eagerzeroedthick</code> or <code>rdm</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>size</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Disk storage size.</div> + <div>If size specified then unit must be specified. There is no space allowed in between size number and unit.</div> + <div>Only first occurrence in disk element will be considered, even if there are multiple size* parameters available.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>size_gb</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Disk storage size in gb.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>size_kb</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Disk storage size in kb.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>size_mb</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Disk storage size in mb.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>size_tb</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Disk storage size in tb.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>State of disk.</div> + <div>If set to 'absent', disk will be removed permanently from virtual machine configuration and from VMware storage.</div> + <div>If set to 'present', disk will be added if not present at given Controller and Unit Number.</div> + <div>or disk exists with different size, disk size is increased, reducing disk size is not allowed.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>thin</li> + <li>eagerzeroedthick</li> + <li>thick</li> + <li>rdm</li> + <li>vpmemdisk</li> + </ul> + </td> + <td> + <div>The type of disk, if not specified then use <code>thick</code> type for new disk, no eagerzero.</div> + <div>The disk type <code>rdm</code> is added in version 1.13.0.</div> + <div>The disk type <code>vpmemdisk</code> is added in version 2.7.0.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>unit_number</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Disk Unit Number.</div> + <div>Valid value range from 0 to 15, except 7 for SCSI Controller.</div> + <div>Valid value range from 0 to 64, except 7 for Paravirtual SCSI Controller on Virtual Hardware version 14 or higher.</div> + <div>Valid value range from 0 to 29 for SATA controller.</div> + <div>Valid value range from 0 to 14 for NVME controller.</div> + <div>Valid value range from 0 to 1 for IDE controller.</div> + </td> + </tr> + + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute or relative path to find an existing guest.</div> + <div>This is a required parameter, only if multiple VMs are found with same name.</div> + <div>The folder should include the datacenter. ESX's datacenter is ha-datacenter</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine.</div> + <div>This is a required parameter, if parameter <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to gather facts if known, this is VMware's unique identifier.</div> + <div>This is a required parameter, if parameter <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add disks to virtual machine using UUID + community.vmware.vmware_guest_disk: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + uuid: 421e4592-c069-924d-ce20-7e7533fab926 + disk: + - size_mb: 10 + type: thin + datastore: datacluster0 + state: present + scsi_controller: 1 + unit_number: 1 + scsi_type: 'paravirtual' + disk_mode: 'persistent' + - size_gb: 10 + type: eagerzeroedthick + state: present + autoselect_datastore: True + scsi_controller: 2 + scsi_type: 'buslogic' + unit_number: 12 + disk_mode: 'independent_persistent' + - size: 10Gb + type: eagerzeroedthick + state: present + autoselect_datastore: True + scsi_controller: 2 + scsi_type: 'buslogic' + unit_number: 1 + disk_mode: 'independent_nonpersistent' + - filename: "[datastore1] path/to/existing/disk.vmdk" + delegate_to: localhost + register: disk_facts + + - name: Add disks with specified shares to the virtual machine + community.vmware.vmware_guest_disk: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + disk: + - size_gb: 1 + type: thin + datastore: datacluster0 + state: present + scsi_controller: 1 + unit_number: 1 + disk_mode: 'independent_persistent' + shares: + level: custom + level_value: 1300 + delegate_to: localhost + register: test_custom_shares + + - name: Add physical raw device mapping to virtual machine using name + community.vmware.vmware_guest_disk: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + validate_certs: no + name: "Test_VM" + disk: + - type: rdm + state: present + scsi_controller: 1 + unit_number: 5 + rdm_path: /vmfs/devices/disks/naa.060000003b1234efb453 + compatibility_mode: 'physicalMode' + + - name: Add virtual raw device mapping to virtual machine using name and virtual mode + community.vmware.vmware_guest_disk: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + validate_certs: no + name: "Test_VM" + disk: + - type: rdm + state: present + scsi_controller: 1 + unit_number: 5 + rdm_path: /vmfs/devices/disks/naa.060000003b1234efb453 + compatibility_mode: 'virtualMode' + disk_mode: 'persistent' + + - name: Add raw device mapping to virtual machine with Physical bus sharing + community.vmware.vmware_guest_disk: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + validate_certs: no + name: "Test_VM" + disk: + - type: rdm + state: present + scsi_controller: 1 + unit_number: 5 + rdm_path: /vmfs/devices/disks/naa.060000003b1234efb453 + compatibility_mode: 'virtualMode' + disk_mode: 'persistent' + bus_sharing: physicalSharing + + - name: Add raw device mapping to virtual machine with Physical bus sharing and clustered disk + community.vmware.vmware_guest_disk: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + validate_certs: no + name: "Test_VM" + disk: + - type: rdm + state: present + scsi_controller: 1 + unit_number: 5 + compatibility_mode: 'virtualMode' + disk_mode: 'persistent' + bus_sharing: physicalSharing + filename: "[datastore1] path/to/rdm/disk-marker.vmdk" + + - name: create new disk with custom IO limits and shares in IO Limits + community.vmware.vmware_guest_disk: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + disk: + - size_gb: 1 + type: thin + datastore: datacluster0 + state: present + scsi_controller: 1 + unit_number: 1 + disk_mode: 'independent_persistent' + iolimit: + limit: 1506 + shares: + level: custom + level_value: 1305 + delegate_to: localhost + register: test_custom_IoLimit_shares + + - name: Remove disks from virtual machine using name + community.vmware.vmware_guest_disk: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + name: VM_225 + disk: + - state: absent + scsi_controller: 1 + unit_number: 1 + delegate_to: localhost + register: disk_facts + + - name: Remove disk from virtual machine using moid + community.vmware.vmware_guest_disk: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + moid: vm-42 + disk: + - state: absent + scsi_controller: 1 + unit_number: 1 + delegate_to: localhost + register: disk_facts + + - name: Remove disk from virtual machine but keep the VMDK file on the datastore + community.vmware.vmware_guest_disk: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + name: VM_225 + disk: + - state: absent + scsi_controller: 1 + unit_number: 2 + destroy: no + delegate_to: localhost + register: disk_facts + + - name: Add disks to virtual machine using UUID to SATA and NVMe controller + community.vmware.vmware_guest_disk: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + validate_certs: no + uuid: 421e4592-c069-924d-ce20-7e7533fab926 + disk: + - size_mb: 256 + type: thin + datastore: datacluster0 + state: present + controller_type: sata + controller_number: 1 + unit_number: 1 + disk_mode: 'persistent' + - size_gb: 1 + state: present + autoselect_datastore: True + controller_type: nvme + controller_number: 2 + unit_number: 3 + disk_mode: 'independent_persistent' + delegate_to: localhost + register: disk_facts + + - name: Add a new vPMem disk to virtual machine to SATA controller + community.vmware.vmware_guest_disk: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + validate_certs: no + name: VM_226 + disk: + - type: vpmemdisk + size_gb: 1 + state: present + controller_type: sata + controller_number: 1 + unit_number: 2 + delegate_to: localhost + register: disk_facts + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>disk_changes</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>result of each task, key is the 0-based index with the same sequence in which the tasks were defined</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'0': 'Disk deleted.', '1': 'Disk created.'}</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>disk_data</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the virtual machine's disks after managing them</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'0': {'backing_datastore': 'datastore2', 'backing_disk_mode': 'persistent', 'backing_eagerlyscrub': False, 'backing_filename': '[datastore2] VM_225/VM_225.vmdk', 'backing_thinprovisioned': False, 'backing_writethrough': False, 'backing_uuid': '421e4592-c069-924d-ce20-7e7533fab926', 'capacity_in_bytes': 10485760, 'capacity_in_kb': 10240, 'controller_key': 1000, 'key': 2000, 'label': 'Hard disk 1', 'summary': '10,240 KB', 'unit_number': 0}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) <akasurde@redhat.com> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_file_operation_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_file_operation_module.rst new file mode 100644 index 00000000..7a010783 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_file_operation_module.rst @@ -0,0 +1,631 @@ +.. _community.vmware.vmware_guest_file_operation_module: + + +******************************************** +community.vmware.vmware_guest_file_operation +******************************************** + +**Files operation in a VMware guest operating system without network** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Module to copy a file to a VM, fetch a file from a VM and create or delete a directory in the guest OS. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The cluster hosting the virtual machine.</div> + <div>If set, it will help to speed up virtual machine search.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>copy</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Copy file to vm without requiring network.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>dest</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>File destination, path must be exist.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>overwrite</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Overwrite or not.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>src</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>File source absolute or relative.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The datacenter hosting the virtual machine.</div> + <div>If set, it will help to speed up virtual machine search.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>directory</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Create or delete a directory.</div> + <div>Can be used to create temp directory inside guest using mktemp operation.</div> + <div>mktemp sets variable <code>dir</code> in the result with the name of the new directory.</div> + <div>mktemp operation option is added in version 2.8.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>operation</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>create</li> + <li>delete</li> + <li>mktemp</li> + </ul> + </td> + <td> + <div>Operation to perform.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>path</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Directory path.</div> + <div>Required for <code>create</code> or <code>remove</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>prefix</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Temporary directory prefix.</div> + <div>Required for <code>mktemp</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>recurse</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Not required.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>suffix</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Temporary directory suffix.</div> + <div>Required for <code>mktemp</code>.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>fetch</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Get file from virtual machine without requiring network.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>dest</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>File destination on localhost, path must be exist.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>src</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The file on the remote system to fetch.</div> + <div>This <em>must</em> be a file, not a directory.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute path to find an existing guest or create the new guest.</div> + <div>The folder should include the datacenter. ESX's datacenter is ha-datacenter</div> + <div>Used only if <code>vm_id_type</code> is <code>inventory_path</code>.</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + <div>folder: vm/folder2</div> + <div>folder: folder2</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 3.1.0</div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">100</div> + </td> + <td> + <div>Timeout seconds for fetching or copying a file.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_id</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine to work with.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_id_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>uuid</li> + <li>instance_uuid</li> + <li>dns_name</li> + <li>inventory_path</li> + <li><div style="color: blue"><b>vm_name</b> ←</div></li> + </ul> + </td> + <td> + <div>The VMware identification method by which the virtual machine will be identified.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The password used to login-in to the virtual machine.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The user to login in to the virtual machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - Only the first match against vm_id is used, even if there are multiple matches + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Create directory inside a vm + community.vmware.vmware_guest_file_operation: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + vm_id: "{{ guest_name }}" + vm_username: "{{ guest_username }}" + vm_password: "{{ guest_userpassword }}" + directory: + path: "/test" + operation: create + recurse: no + delegate_to: localhost + + - name: copy file to vm + community.vmware.vmware_guest_file_operation: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + vm_id: "{{ guest_name }}" + vm_username: "{{ guest_username }}" + vm_password: "{{ guest_userpassword }}" + copy: + src: "files/test.zip" + dest: "/root/test.zip" + overwrite: False + delegate_to: localhost + + - name: fetch file from vm + community.vmware.vmware_guest_file_operation: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + vm_id: "{{ guest_name }}" + vm_username: "{{ guest_username }}" + vm_password: "{{ guest_userpassword }}" + fetch: + src: "/root/test.zip" + dest: "files/test.zip" + delegate_to: localhost + + - name: If a timeout error occurs, specify a high(er) timeout value + community.vmware.vmware_guest_file_operation: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + vm_id: "{{ guest_name }}" + vm_username: "{{ guest_username }}" + vm_password: "{{ guest_userpassword }}" + timeout: 10000 + copy: + src: "files/test.zip" + dest: "/root/test.zip" + overwrite: False + delegate_to: localhost + + + + +Status +------ + + +Authors +~~~~~~~ + +- Stéphane Travassac (@stravassac) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_find_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_find_module.rst new file mode 100644 index 00000000..533e3eb2 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_find_module.rst @@ -0,0 +1,290 @@ +.. _community.vmware.vmware_guest_find_module: + + +********************************** +community.vmware.vmware_guest_find +********************************** + +**Find the folder path(s) for a virtual machine by name or UUID** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Find the folder path(s) for a virtual machine by name or UUID + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the VM to work with.</div> + <div>This is required if <code>uuid</code> parameter is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to manage if known, this is VMware's BIOS UUID by default.</div> + <div>This is required if <code>name</code> parameter is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Find Guest's Folder using name + community.vmware.vmware_guest_find: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + name: testvm + delegate_to: localhost + register: vm_folder + + - name: Find Guest's Folder using UUID + community.vmware.vmware_guest_find: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + uuid: 38c4c89c-b3d7-4ae6-ae4e-43c5118eae49 + delegate_to: localhost + register: vm_folder + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>folders</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>on success</td> + <td> + <div>List of folders for user specified virtual machine</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['/DC0/vm']</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) <akasurde@redhat.com> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_info_module.rst new file mode 100644 index 00000000..022854d2 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_info_module.rst @@ -0,0 +1,499 @@ +.. _community.vmware.vmware_guest_info_module: + + +********************************** +community.vmware.vmware_guest_info +********************************** + +**Gather info about a single VM** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Gather information about a single VM on a VMware ESX cluster. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination datacenter for the deploy operation</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute or relative path to find an existing guest.</div> + <div>This is required if name is supplied.</div> + <div>The folder should include the datacenter. ESX's datacenter is ha-datacenter</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the VM to work with</div> + <div>This is required if <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name_match</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>first</b> ←</div></li> + <li>last</li> + </ul> + </td> + <td> + <div>If multiple VMs matching the name, use the first or last found</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>properties</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify the properties to retrieve.</div> + <div>If not specified, all properties are retrieved (deeply).</div> + <div>Results are returned in a structure identical to the vsphere API.</div> + <div>Example:</div> + <div>properties: [</div> + <div>"config.hardware.memoryMB",</div> + <div>"config.hardware.numCPU",</div> + <div>"guest.disk",</div> + <div>"overallStatus"</div> + <div>]</div> + <div>Only valid when <code>schema</code> is <code>vsphere</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>schema</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>summary</b> ←</div></li> + <li>vsphere</li> + </ul> + </td> + <td> + <div>Specify the output schema desired.</div> + <div>The 'summary' output schema is the legacy output from the module</div> + <div>The 'vsphere' output schema is the vSphere API class definition which requires pyvmomi>6.7.1</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>tag_details</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>If set <code>True</code>, detail information about 'tags' returned.</div> + <div>Without this flag, the 'tags' returns a list of tag names.</div> + <div>With this flag, the 'tags' returns a list of dict about tag information with additional details like category name, category id, and tag id.</div> + <div>This parameter is added to maintain backward compatability.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>tags</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to show tags or not.</div> + <div>If set <code>True</code>, shows tags information. Returns a list of tag names.</div> + <div>If set <code>False</code>, hides tags information.</div> + <div>vSphere Automation SDK is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to manage if known, this is VMware's unique identifier.</div> + <div>This is required if <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather info from standalone ESXi server having datacenter as 'ha-datacenter' + community.vmware.vmware_guest_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: ha-datacenter + uuid: 421e4592-c069-924d-ce20-7e7533fab926 + delegate_to: localhost + register: info + + - name: Gather some info from a guest using the vSphere API output schema + community.vmware.vmware_guest_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + name: "{{ vm_name }}" + schema: "vsphere" + properties: ["config.hardware.memoryMB", "guest.disk", "overallStatus"] + delegate_to: localhost + register: info + + - name: Gather some information about a guest using MoID + community.vmware.vmware_guest_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + moid: vm-42 + schema: "vsphere" + properties: ["config.hardware.memoryMB", "guest.disk", "overallStatus"] + delegate_to: localhost + register: vm_moid_info + + - name: Gather Managed object ID (moid) from a guest using the vSphere API output schema for REST Calls + community.vmware.vmware_guest_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + name: "{{ vm_name }}" + schema: "vsphere" + properties: + - _moId + delegate_to: localhost + register: moid_info + + - name: Gather detailed information about tags and category associated with the given VM + community.vmware.vmware_guest_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + name: "{{ vm_name }}" + tags: True + tag_details: True + register: detailed_tag_info + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>instance</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the virtual machine</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'advanced_settings': {}, 'annotation': '', 'current_snapshot': None, 'customvalues': {}, 'guest_consolidation_needed': False, 'guest_question': None, 'guest_tools_status': 'guestToolsNotRunning', 'guest_tools_version': '10247', 'hw_cores_per_socket': 1, 'hw_datastores': ['ds_226_3'], 'hw_esxi_host': '10.76.33.226', 'hw_eth0': {'addresstype': 'assigned', 'ipaddresses': None, 'label': 'Network adapter 1', 'macaddress': '00:50:56:87:a5:9a', 'macaddress_dash': '00-50-56-87-a5-9a', 'portgroup_key': None, 'portgroup_portkey': None, 'summary': 'VM Network'}, 'hw_files': ['[ds_226_3] ubuntu_t/ubuntu_t.vmx', '[ds_226_3] ubuntu_t/ubuntu_t.nvram', '[ds_226_3] ubuntu_t/ubuntu_t.vmsd', '[ds_226_3] ubuntu_t/vmware.log', '[ds_226_3] u0001/u0001.vmdk'], 'hw_folder': '/DC0/vm/Discovered virtual machine', 'hw_guest_full_name': None, 'hw_guest_ha_state': None, 'hw_guest_id': None, 'hw_interfaces': ['eth0'], 'hw_is_template': False, 'hw_memtotal_mb': 1024, 'hw_name': 'ubuntu_t', 'hw_power_status': 'poweredOff', 'hw_processor_count': 1, 'hw_product_uuid': '4207072c-edd8-3bd5-64dc-903fd3a0db04', 'hw_version': 'vmx-13', 'instance_uuid': '5007769d-add3-1e12-f1fe-225ae2a07caf', 'ipv4': None, 'ipv6': None, 'module_hw': True, 'snapshots': [], 'tags': ['backup'], 'vnc': {}, 'moid': 'vm-42', 'vimref': 'vim.VirtualMachine:vm-42'}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Loic Blot (@nerzhul) <loic.blot@unix-experience.fr> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_instant_clone_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_instant_clone_module.rst new file mode 100644 index 00000000..7f96b7d9 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_instant_clone_module.rst @@ -0,0 +1,684 @@ +.. _community.vmware.vmware_guest_instant_clone_module: + + +******************************************* +community.vmware.vmware_guest_instant_clone +******************************************* + +**Instant Clone VM** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used for Creating a powered-on Instant Clone of a virtual machine. +- All variables and VMware object names are case sensitive. +- :ref:`community.vmware.vmware_guest <community.vmware.vmware_guest_module>` module is needed for creating a VM with poweredon state which would be used as a parent VM. +- :ref:`community.vmware.vmware_guest_powerstate <community.vmware.vmware_guest_powerstate_module>` module is also needed to poweroff the instant cloned module. +- The powered off VM would in turn be deleted by again using :ref:`community.vmware.vmware_guest <community.vmware.vmware_guest_module>` module. +- Thus :ref:`community.vmware.vmware_guest <community.vmware.vmware_guest_module>` module is necessary for removing Instant Cloned VM when VMs being created in testing environment. +- Also GuestOS Customization has now been added with guestinfo_vars parameter. +- The Parent VM must have The Guest customization Engine for instant Clone to customize Guest OS. +- Only Linux Os in Parent VM enable support for native vSphere Guest Customization for Instant Clone in vSphere 7. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datacenter, where VM to be deployed.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the datastore or the datastore cluster.</div> + <div>If datastore cluster name is specified, module will find the Storage DRS recommended datastore in that cluster.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute path to deploy the cloned vm.</div> + <div>This parameter is case sensitive.</div> + <div>Examples:</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>guestinfo_vars</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Provides GuestOS Customization functionality in instant cloned VM.</div> + <div>A list of key value pairs that will be passed to the destination VM.</div> + <div>These pairs should be used to provide user-defined customization to differentiate the destination VM from the source VM.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>dns</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>dns is used to set the dns in Instant Cloned Guest Operating System..</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>domain</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>domain is used to set A fully qualified domain name (FQDN) or complete domain name for Instant Cloned Guest operating System.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>gateway</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>netmask is used to set the netmask in Instant Cloned Guest Operating System.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>hostname is used to obtain the DNS(Domain Name System) name and set the Guest system's hostname.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ipaddress</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ipaddress is used to set the ipaddress in Instant Cloned Guest Operating System.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>netmask</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>netmask is used to set the netmask in Instant Cloned Guest Operating System.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the ESX Host in datacenter in which to place cloned VM.</div> + <div>The host has to be a member of the cluster that contains the resource pool.</div> + <div>Required with <em>resource_pool</em> to find resource pool details. This will be used as additional information when there are resource pools with same name.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: esxi_hostname</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the vm instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>parent_vm</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the Cloned virtual machine.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: vm_name</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>parent_vm</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the parent virtual machine.</div> + <div>This is a required parameter, if parameter <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>resource_pool</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the resource pool in datacenter in which to place deployed VM.</div> + <div>Required if <em>cluster</em> is not specified.</div> + <div>For default or non-unique resource pool names, specify <em>host</em> and <em>cluster</em>.</div> + <div><code>Resources</code> is the default name of resource pool.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the vm instance to clone from, this is VMware's unique identifier.</div> + <div>This is a required parameter, if parameter <code>parent_vm</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password used to login-in to the virtual machine.</div> + <div>Only required when using guest customization feature.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The user to login-in to the virtual machine.</div> + <div>Only required when using guest customization feature.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>wait_vm_tools</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Whether waiting until vm tools start after rebooting an instant clone vm.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>wait_vm_tools_timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">300</div> + </td> + <td> + <div>Define a timeout (in seconds) for <em>the wait_vm_tools</em> parameter.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Instant Clone a VM + community.vmware.vmware_guest_instant_clone: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: False + folder: "{{ f0 }}" + datastore: "{{ rw_datastore }}" + datacenter: "{{ dc1 }}" + host: "{{ esxi1 }}" + name: "{{ Clone_vm }}" + parent_vm: "{{ testvm_1 }}" + resource_pool: "{{ test_resource_001 }}" + register: vm_clone + delegate_to: localhost + + - name: set state to poweroff the Cloned VM + community.vmware.vmware_guest_powerstate: + validate_certs: false + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + name: "cloned_vm_from_vm_cluster" + folder: "{{ f0 }}" + state: powered-off + register: poweroff_instant_clone_from_vm_when_cluster + delegate_to: localhost + + - name: Clean VM + community.vmware.vmware_guest: + validate_certs: false + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + name: "cloned_vm_from_vm_cluster" + datacenter: "{{ dc1 }}" + state: absent + register: delete_instant_clone_from_vm_when_cluster + ignore_errors: true + delegate_to: localhost + + - name: Instant Clone a VM with guest_customization + community.vmware.vmware_guest_instant_clone: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + vm_username: "root" + vm_password: "SuperSecret" + validate_certs: False + folder: "{{ f0 }}" + datastore: "{{ rw_datastore }}" + datacenter: "{{ dc1 }}" + host: "{{ esxi1 }}" + guestinfo_vars: + - hostname: "{{ guestinfo.ic.hostname }}" + ipaddress: "{{ guestinfo.ic.ipaddress }}" + netmask: "{{ guestinfo.ic.netmask }}" + gateway: "{{ guestinfo.ic.gateway }}" + dns: "{{ guestinfo.ic.dns }}" + domain: "{{ guestinfo.ic.domain }}" + name: "Instant_clone_guest_customize" + parent_vm: "test_vm1" + resource_pool: DC0_C0_RP1 + register: Instant_cloned_guest_customize + delegate_to: localhost + + - name: Instant Clone a VM when skipping optional params + community.vmware.vmware_guest_instant_clone: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: False + name: "{{ Clone_vm }}" + parent_vm: "{{ testvm_1 }}" + datacenter: "{{ dc1 }}" + datastore: "{{ rw_datastore }}" + host: "{{ esxi1 }}" + register: VM_clone_optional_arguments + delegate_to: localhost + + - name: Instant clone in check mode + community.vmware.vmware_guest_instant_clone: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: False + folder: "{{ f0 }}" + datastore: "{{ rw_datastore }}" + datacenter: "{{ dc1 }}" + host: "{{ esx1 }}" + name: "{{ Clone_vm }}" + parent_vm: "{{ testvm_2 }}" + resource_pool: "{{ test_resource_001 }}" + check_mode: true + register: check_mode_clone + delegate_to: localhost + - debug: + var: check_mode_clone + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>vm_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the virtual machine</div> + <div>added instance_uuid from version 1.12.0</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'vm_name': '', 'vcenter': '', 'host': '', 'datastore': '', 'vm_folder': '', 'instance_uuid': ''}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Anant Chopra (@Anant99-sys) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_module.rst new file mode 100644 index 00000000..2396e7af --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_module.rst @@ -0,0 +1,2762 @@ +.. _community.vmware.vmware_guest_module: + + +***************************** +community.vmware.vmware_guest +***************************** + +**Manages virtual machines in vCenter** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to create new virtual machines from templates or other virtual machines, manage power state of virtual machine such as power on, power off, suspend, shutdown, reboot, restart etc., modify various virtual machine components like network, disk, customization etc., rename a virtual machine and remove a virtual machine with associated components. + + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>advanced_settings</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>Define a list of advanced settings to be added to the VMX config.</div> + <div>An advanced settings object takes two fields <code>key</code> and <code>value</code>.</div> + <div>Incorrect key and values will be ignored.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>annotation</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>A note or annotation to include in the virtual machine.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: notes</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cdrom</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">raw</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>A list of CD-ROM configurations for the virtual machine. Added in version 2.9.</div> + <div>Providing CD-ROM configuration as dict is deprecated and will be removed VMware collection 4.0.0. Please use a list instead.</div> + <div>Parameters <code>controller_type</code>, <code>controller_number</code>, <code>unit_number</code>, <code>state</code> are added for a list of CD-ROMs configuration support.</div> + <div>For <code>ide</code> controller, hot-add or hot-remove CD-ROM is not supported.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>controller_number</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>For <code>ide</code> controller, valid value is 0 or 1.</div> + <div>For <code>sata</code> controller, valid value is 0 to 3.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>controller_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Valid options are <code>ide</code> and <code>sata</code>.</div> + <div>Default value is <code>ide</code>.</div> + <div>When set to <code>sata</code>, please make sure <code>unit_number</code> is correct and not used by SATA disks.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>iso_path</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The datastore path to the ISO file to use, in the form of <code>[datastore1] path/to/file.iso</code>.</div> + <div>Required if type is set <code>iso</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Valid value is <code>present</code> or <code>absent</code>.</div> + <div>Default is <code>present</code>.</div> + <div>If set to <code>absent</code>, then the specified CD-ROM will be removed.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The type of CD-ROM, valid options are <code>none</code>, <code>client</code> or <code>iso</code>.</div> + <div>With <code>none</code> the CD-ROM will be disconnected but present.</div> + <div>The default value is <code>client</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>unit_number</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>For CD-ROM device attach to <code>ide</code> controller, valid value is 0 or 1.</div> + <div>For CD-ROM device attach to <code>sata</code> controller, valid value is 0 to 29.</div> + <div><code>controller_number</code> and <code>unit_number</code> are mandatory attributes.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The cluster name where the virtual machine will run.</div> + <div>This is a required parameter, if <code>esxi_hostname</code> is not set.</div> + <div><code>esxi_hostname</code> and <code>cluster</code> are mutually exclusive parameters.</div> + <div>This parameter is case sensitive.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>convert</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>thin</li> + <li>thick</li> + <li>eagerzeroedthick</li> + </ul> + </td> + <td> + <div>Specify convert disk type while cloning template or virtual machine.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>customization</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{}</div> + </td> + <td> + <div>Parameters for OS customization when cloning from the template or the virtual machine, or apply to the existing virtual machine directly.</div> + <div>Not all operating systems are supported for customization with respective vCenter version, please check VMware documentation for respective OS customization.</div> + <div>For supported customization operating system matrix, (see <a href='http://partnerweb.vmware.com/programs/guestOS/guest-os-customization-matrix.pdf'>http://partnerweb.vmware.com/programs/guestOS/guest-os-customization-matrix.pdf</a>)</div> + <div>All parameters and VMware object names are case sensitive.</div> + <div>Linux based OSes requires Perl package to be installed for OS customizations.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>autologon</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Auto logon after virtual machine customization.</div> + <div>Specific to Windows customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>autologoncount</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Number of autologon after reboot.</div> + <div>Specific to Windows customization.</div> + <div>Ignored if <code>autologon</code> is unset or set to <code>False</code>.</div> + <div>If unset, 1 will be used.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>dns_servers</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>List of DNS servers to configure.</div> + <div>Common for Linux and Windows customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>dns_suffix</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>List of domain suffixes, also known as DNS search path.</div> + <div>Default <code>domain</code> parameter.</div> + <div>Common for Linux and Windows customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>domain</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>DNS domain name to use.</div> + <div>Common for Linux and Windows customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>domainadmin</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>User used to join in AD domain.</div> + <div>Required if <code>joindomain</code> specified.</div> + <div>Specific to Windows customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>domainadminpassword</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Password used to join in AD domain.</div> + <div>Required if <code>joindomain</code> specified.</div> + <div>Specific to Windows customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>existing_vm</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>If set to <code>True</code>, do OS customization on the specified virtual machine directly.</div> + <div>Common for Linux and Windows customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>fullname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Server owner name.</div> + <div>Specific to Windows customization.</div> + <div>If unset, "Administrator" will be used as a fall-back.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Computer hostname.</div> + <div>Default is shortened <code>name</code> parameter.</div> + <div>Allowed characters are alphanumeric (uppercase and lowercase) and minus, rest of the characters are dropped as per RFC 952.</div> + <div>Common for Linux and Windows customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hwclockUTC</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Specifies whether the hardware clock is in UTC or local time.</div> + <div>Specific to Linux customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>joindomain</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>AD domain to join.</div> + <div>Not compatible with <code>joinworkgroup</code>.</div> + <div>Specific to Windows customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>joinworkgroup</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Workgroup to join.</div> + <div>Not compatible with <code>joindomain</code>.</div> + <div>Specific to Windows customization.</div> + <div>If unset, "WORKGROUP" will be used as a fall-back.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>orgname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Organisation name.</div> + <div>Specific to Windows customization.</div> + <div>If unset, "ACME" will be used as a fall-back.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Local administrator password.</div> + <div>If not defined, the password will be set to blank (that is, no password).</div> + <div>Specific to Windows customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>productid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Product ID.</div> + <div>Specific to Windows customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>runonce</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>List of commands to run at first user logon.</div> + <div>Specific to Windows customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>script_text</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 3.1.0</div> + </td> + <td> + </td> + <td> + <div>Script to run with shebang.</div> + <div>Needs to be enabled in vmware tools with vmware-toolbox-cmd config set deployPkg enable-custom-scripts true</div> + <div>https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vm_admin.doc/GUID-9A5093A5-C54F-4502-941B-3F9C0F573A39.html</div> + <div>Specific to Linux customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>timezone</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Timezone.</div> + <div>See List of supported time zones for different vSphere versions in Linux/Unix.</div> + <div>Common for Linux and Windows customization.</div> + <div><a href='https://msdn.microsoft.com/en-us/library/ms912391.aspx'>Windows</a>.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>customization_spec</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Unique name identifying the requested customization specification.</div> + <div>This parameter is case sensitive.</div> + <div>If set, then overrides <code>customization</code> parameter values.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>customvalues</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>Define a list of custom values to set on virtual machine.</div> + <div>A custom value object takes two fields <code>key</code> and <code>value</code>.</div> + <div>Incorrect key and values will be ignored.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"ha-datacenter"</div> + </td> + <td> + <div>Destination datacenter for the deploy operation.</div> + <div>This parameter is case sensitive.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify datastore or datastore cluster to provision virtual machine.</div> + <div>This parameter takes precedence over <code>disk.datastore</code> parameter.</div> + <div>This parameter can be used to override datastore or datastore cluster setting of the virtual machine when deployed from the template.</div> + <div>Please see example for more usage.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>delete_from_inventory</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to delete Virtual machine from inventory or delete from disk.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>disk</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>A list of disks to add.</div> + <div>This parameter is case sensitive.</div> + <div>Shrinking disks is not supported.</div> + <div>Removing existing disks of the virtual machine is not supported.</div> + <div>Attributes <code>controller_type</code>, <code>controller_number</code>, <code>unit_number</code> are used to configure multiple types of disk controllers and disks for creating or reconfiguring virtual machine. Added in Ansible 2.10.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>autoselect_datastore</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Select the less used datastore.</div> + <div><code>disk.datastore</code> and <code>disk.autoselect_datastore</code> will not be used if <code>datastore</code> is specified outside this <code>disk</code> configuration.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>controller_number</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>0</li> + <li>1</li> + <li>2</li> + <li>3</li> + </ul> + </td> + <td> + <div>Disk controller bus number.</div> + <div>The maximum number of same type controller is 4 per VM.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>controller_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>buslogic</li> + <li>lsilogic</li> + <li>lsilogicsas</li> + <li>paravirtual</li> + <li>sata</li> + <li>nvme</li> + </ul> + </td> + <td> + <div>Type of disk controller.</div> + <div><code>nvme</code> controller type support starts on ESXi 6.5 with VM hardware version <code>version</code> 13. Set this type on not supported ESXi or VM hardware version will lead to failure in deployment.</div> + <div>When set to <code>sata</code>, please make sure <code>unit_number</code> is correct and not used by SATA CDROMs.</div> + <div>If set to <code>sata</code> type, please make sure <code>controller_number</code> and <code>unit_number</code> are set correctly when <code>cdrom</code> also set to <code>sata</code> type.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of datastore which will be used for the disk.</div> + <div>If <code>autoselect_datastore</code> is set to True, will select the less used datastore whose name contains this "disk.datastore" string.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>disk_mode</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>persistent</li> + <li>independent_persistent</li> + <li>independent_nonpersistent</li> + </ul> + </td> + <td> + <div>Type of disk mode.</div> + <div>Added in Ansible 2.6.</div> + <div>If <code>persistent</code> specified, changes are immediately and permanently written to the virtual disk. This is default.</div> + <div>If <code>independent_persistent</code> specified, same as persistent, but not affected by snapshots.</div> + <div>If <code>independent_nonpersistent</code> specified, changes to virtual disk are made to a redo log and discarded at power off, but not affected by snapshots.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>filename</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Existing disk image to be used.</div> + <div>Filename must already exist on the datastore.</div> + <div>Specify filename string in <code>[datastore_name] path/to/file.vmdk</code> format. Added in Ansible 2.8.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>size</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Disk storage size.</div> + <div>Please specify storage unit like [kb, mb, gb, tb].</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>size_gb</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Disk storage size in gb.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>size_kb</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Disk storage size in kb.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>size_mb</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Disk storage size in mb.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>size_tb</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Disk storage size in tb.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>thin</li> + <li>thick</li> + <li>eagerzeroedthick</li> + </ul> + </td> + <td> + <div>Type of disk.</div> + <div>If <code>thin</code> specified, disk type is set to thin disk.</div> + <div>If <code>eagerzeroedthick</code> specified, disk type is set to eagerzeroedthick disk. Added Ansible 2.5.</div> + <div>If not specified, disk type is inherited from the source VM or template when cloned and thick disk, no eagerzero otherwise.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>unit_number</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Disk Unit Number.</div> + <div>Valid value range from 0 to 15 for SCSI controller, except 7.</div> + <div>Valid value range from 0 to 14 for NVME controller.</div> + <div>Valid value range from 0 to 29 for SATA controller.</div> + <div><code>controller_type</code>, <code>controller_number</code> and <code>unit_number</code> are required when creating or reconfiguring VMs with multiple types of disk controllers and disks.</div> + <div>When creating new VM, the first configured disk in the <code>disk</code> list will be "Hard Disk 1".</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The ESXi hostname where the virtual machine will run.</div> + <div>This is a required parameter, if <code>cluster</code> is not set.</div> + <div><code>esxi_hostname</code> and <code>cluster</code> are mutually exclusive parameters.</div> + <div>This parameter is case sensitive.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute path to find an existing guest or create the new guest.</div> + <div>The folder should include the datacenter. ESXi's datacenter is ha-datacenter.</div> + <div>This parameter is case sensitive.</div> + <div>If multiple machines are found with same name, this parameter is used to identify</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>force</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Ignore warnings and complete the actions.</div> + <div>This parameter is useful while removing virtual machine which is powered on state.</div> + <div>This module reflects the VMware vCenter API and UI workflow, as such, in some cases the `force` flag will be mandatory to perform the action to ensure you are certain the action has to be taken, no matter what the consequence. This is specifically the case for removing a powered on the virtual machine when <code>state</code> is set to <code>absent</code>.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>guest_id</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Set the guest ID.</div> + <div>This parameter is case sensitive.</div> + <div><code>rhel7_64Guest</code> for virtual machine with RHEL7 64 bit.</div> + <div><code>centos64Guest</code> for virtual machine with CentOS 64 bit.</div> + <div><code>ubuntu64Guest</code> for virtual machine with Ubuntu 64 bit.</div> + <div>This field is required when creating a virtual machine, not required when creating from the template.</div> + <div>Valid values are referenced here: <a href='https://code.vmware.com/apis/358/doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html'>https://code.vmware.com/apis/358/doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html</a></div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hardware</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{}</div> + </td> + <td> + <div>Manage virtual machine's hardware attributes.</div> + <div>All parameters case sensitive.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>boot_firmware</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>bios</li> + <li>efi</li> + </ul> + </td> + <td> + <div>Choose which firmware should be used to boot the virtual machine.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cpu_limit</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>The CPU utilization of a virtual machine will not exceed this limit.</div> + <div>Unit is MHz.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cpu_reservation</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>The amount of CPU resource that is guaranteed available to the virtual machine.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cpu_shares</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 3.2.0</div> + </td> + <td> + </td> + <td> + <div>The number of shares of CPU allocated to this virtual machine</div> + <div>cpu_shares_level will automatically be set to 'custom'</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cpu_shares_level</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 3.2.0</div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>low</li> + <li>normal</li> + <li>high</li> + <li>custom</li> + </ul> + </td> + <td> + <div>The allocation level of CPU resources for the virtual machine.</div> + <div>Valid Values are <code>low</code>, <code>normal</code>, <code>high</code> and <code>custom</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hotadd_cpu</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Allow virtual CPUs to be added while the virtual machine is running.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hotadd_memory</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Allow memory to be added while the virtual machine is running.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hotremove_cpu</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Allow virtual CPUs to be removed while the virtual machine is running.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>iommu</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Flag to specify if I/O MMU is enabled for this virtual machine.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>max_connections</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Maximum number of active remote display connections for the virtual machines.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mem_limit</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>The memory utilization of a virtual machine will not exceed this limit.</div> + <div>Unit is MB.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mem_reservation</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>The amount of memory resource that is guaranteed available to the virtual machine.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: memory_reservation</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mem_shares</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 3.2.0</div> + </td> + <td> + </td> + <td> + <div>The number of shares of memory allocated to this virtual machine</div> + <div>mem_shares_level will automatically be set to 'custom'</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mem_shares_level</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 3.2.0</div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>low</li> + <li>normal</li> + <li>high</li> + <li>custom</li> + </ul> + </td> + <td> + <div>The allocation level of memory resources for the virtual machine.</div> + <div>Valid Values are <code>low</code>, <code>normal</code>, <code>high</code> and <code>custom</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>memory_mb</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Amount of memory in MB.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>memory_reservation_lock</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>If set <code>true</code>, memory resource reservation for the virtual machine.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>nested_virt</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enable nested virtualization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>num_cpu_cores_per_socket</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Number of Cores Per Socket.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>num_cpus</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Number of CPUs.</div> + <div><code>num_cpus</code> must be a multiple of <code>num_cpu_cores_per_socket</code>.</div> + <div>For example, to create a VM with 2 sockets of 4 cores, specify <code>num_cpus</code> as 8 and <code>num_cpu_cores_per_socket</code> as 4.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>scsi</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>buslogic</li> + <li>lsilogic</li> + <li>lsilogicsas</li> + <li>paravirtual</li> + </ul> + </td> + <td> + <div>Valid values are <code>buslogic</code>, <code>lsilogic</code>, <code>lsilogicsas</code> and <code>paravirtual</code>.</div> + <div><code>paravirtual</code> is default.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>secure_boot</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to enable or disable (U)EFI secure boot.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>version</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The Virtual machine hardware versions.</div> + <div>Default is 10 (ESXi 5.5 and onwards).</div> + <div>If set to <code>latest</code>, the specified virtual machine will be upgraded to the most current hardware version supported on the host.</div> + <div><code>latest</code> is added in Ansible 2.10.</div> + <div>Please check VMware documentation for correct virtual machine hardware version.</div> + <div>Incorrect hardware version may lead to failure in deployment. If hardware version is already equal to the given.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>virt_based_security</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enable Virtualization Based Security feature for Windows on ESXi 6.7 and later, from hardware version 14.</div> + <div>Supported Guest OS are Windows 10 64 bit, Windows Server 2016, Windows Server 2019 and later.</div> + <div>The firmware of virtual machine must be EFI and secure boot must be enabled.</div> + <div>Virtualization Based Security depends on nested virtualization and Intel Virtualization Technology for Directed I/O.</div> + <div>Deploy on unsupported ESXi, hardware version or firmware may lead to failure or deployed VM with unexpected configurations.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vpmc_enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 3.2.0</div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enable virtual CPU Performance Counters.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>is_template</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Flag the instance as a template.</div> + <div>This will mark the given virtual machine as template.</div> + <div>Note, this may need to be done in a dedicated task invocation that is not making any other changes. For example, user cannot change the state from powered-on to powered-off AND save as template in the same task.</div> + <div>See <span class='module'>community.vmware.vmware_guest</span> source for more details.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>linked_clone</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to create a linked clone from the snapshot specified.</div> + <div>If specified, then <code>snapshot_src</code> is required parameter.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine to work with.</div> + <div>Virtual machine names in vCenter are not necessarily unique, which may be problematic, see <code>name_match</code>.</div> + <div>If multiple virtual machines with same name exists, then <code>folder</code> is required parameter to identify uniqueness of the virtual machine.</div> + <div>This parameter is required, if <code>state</code> is set to <code>poweredon</code>, <code>powered-on</code>, <code>poweredoff</code>, <code>powered-off</code>, <code>present</code>, <code>restarted</code>, <code>suspended</code> and virtual machine does not exists.</div> + <div>This parameter is case sensitive.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name_match</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>first</b> ←</div></li> + <li>last</li> + </ul> + </td> + <td> + <div>If multiple virtual machines matching the name, use the first or last found.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>networks</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>A list of networks (in the order of the NICs).</div> + <div>Removing NICs is not allowed, while reconfiguring the virtual machine.</div> + <div>All parameters and VMware object names are case sensitive.</div> + <div>The <em>type</em>, <em>ip</em>, <em>netmask</em>, <em>gateway</em>, <em>domain</em>, <em>dns_servers</em> options don't set to a guest when creating a blank new virtual machine. They are set by the customization via vmware-tools. If you want to set the value of the options to a guest, you need to clone from a template with installed OS and vmware-tools(also Perl when Linux).</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>connected</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates whether the NIC is currently connected.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>device_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Virtual network device.</div> + <div>Valid value can be one of <code>e1000</code>, <code>e1000e</code>, <code>pcnet32</code>, <code>vmxnet2</code>, <code>vmxnet3</code>, <code>sriov</code>.</div> + <div><code>vmxnet3</code> is default.</div> + <div>Optional per entry.</div> + <div>Used for virtual hardware.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>dns_servers</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>DNS servers for this network interface (Windows).</div> + <div>Optional per entry.</div> + <div>Used for OS customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>domain</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Domain name for this network interface (Windows).</div> + <div>Optional per entry.</div> + <div>Used for OS customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>dvswitch_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the distributed vSwitch.</div> + <div>Optional per entry.</div> + <div>Used for virtual hardware.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>gateway</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Static gateway.</div> + <div>Optional per entry.</div> + <div>Used for OS customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ip</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Static IP address. Implies <code>type=static</code>.</div> + <div>Optional per entry.</div> + <div>Used for OS customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mac</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Customize MAC address.</div> + <div>Optional per entry.</div> + <div>Used for virtual hardware.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the portgroup or distributed virtual portgroup for this interface.</div> + <div>Required per entry.</div> + <div>When specifying distributed virtual portgroup make sure given <code>esxi_hostname</code> or <code>cluster</code> is associated with it.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>netmask</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Static netmask required for <code>ip</code>.</div> + <div>Optional per entry.</div> + <div>Used for OS customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>start_connected</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Specifies whether or not to connect the device when the virtual machine starts.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Type of IP assignment.</div> + <div>Valid values are one of <code>dhcp</code>, <code>static</code>.</div> + <div><code>dhcp</code> is default.</div> + <div>Optional per entry.</div> + <div>Used for OS customization.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vlan</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>VLAN number for this interface.</div> + <div>Required per entry.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>nvdimm</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{}</div> + </td> + <td> + <div>Add or remove a virtual NVDIMM device to the virtual machine.</div> + <div>VM virtual hardware version must be 14 or higher on vSphere 6.7 or later.</div> + <div>Verify that guest OS of the virtual machine supports PMem before adding virtual NVDIMM device.</div> + <div>Verify that you have the <em>Datastore.Allocate</em> space privilege on the virtual machine.</div> + <div>Make sure that the host or the cluster on which the virtual machine resides has available PMem resources.</div> + <div>To add or remove virtual NVDIMM device to the existing virtual machine, it must be in power off state.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>label</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The label of the virtual NVDIMM device to be removed or configured, e.g., "NVDIMM 1".</div> + <div>This parameter is required when <code>state</code> is set to <code>absent</code>, or <code>present</code> to reconfigure NVDIMM device size. When add a new device, please do not set <code>label</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>size_mb</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">1024</div> + </td> + <td> + <div>Virtual NVDIMM device size in MB.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>present</li> + <li>absent</li> + </ul> + </td> + <td> + <div>Valid value is <code>present</code> or <code>absent</code>.</div> + <div>If set to <code>absent</code>, then the NVDIMM device with specified <code>label</code> will be removed.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>resource_pool</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Use the given resource pool for virtual machine operation.</div> + <div>This parameter is case sensitive.</div> + <div>Resource pool should be child of the selected host parent.</div> + <div>When not specified <em>Resources</em> is taken as default value.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snapshot_src</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the existing snapshot to use to create a clone of a virtual machine.</div> + <div>This parameter is case sensitive.</div> + <div>While creating linked clone using <code>linked_clone</code> parameter, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>absent</li> + <li>poweredon</li> + <li>powered-on</li> + <li>poweredoff</li> + <li>powered-off</li> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>rebootguest</li> + <li>reboot-guest</li> + <li>restarted</li> + <li>suspended</li> + <li>shutdownguest</li> + <li>shutdown-guest</li> + </ul> + </td> + <td> + <div>Specify the state the virtual machine should be in.</div> + <div>If <code>state</code> is set to <code>present</code> and virtual machine exists, ensure the virtual machine configurations conforms to task arguments.</div> + <div>If <code>state</code> is set to <code>absent</code> and virtual machine exists, then the specified virtual machine is removed with it's associated components.</div> + <div>If <code>state</code> is set to one of the following <code>poweredon</code>, <code>powered-on</code>, <code>poweredoff</code>, <code>powered-off</code>, <code>present</code>, <code>restarted</code>, <code>suspended</code> and virtual machine does not exists, virtual machine is deployed with the given parameters.</div> + <div>If <code>state</code> is set to <code>poweredon</code> or <code>powered-on</code> and virtual machine exists with powerstate other than powered on, then the specified virtual machine is powered on.</div> + <div>If <code>state</code> is set to <code>poweredoff</code> or <code>powered-off</code> and virtual machine exists with powerstate other than powered off, then the specified virtual machine is powered off.</div> + <div>If <code>state</code> is set to <code>restarted</code> and virtual machine exists, then the virtual machine is restarted.</div> + <div>If <code>state</code> is set to <code>suspended</code> and virtual machine exists, then the virtual machine is set to suspended mode.</div> + <div>If <code>state</code> is set to <code>shutdownguest</code> or <code>shutdown-guest</code> and virtual machine exists, then the virtual machine is shutdown.</div> + <div>If <code>state</code> is set to <code>rebootguest</code> or <code>reboot-guest</code> and virtual machine exists, then the virtual machine is rebooted.</div> + <div>Powerstate <code>powered-on</code> and <code>powered-off</code> is added in version 2.10.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state_change_timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">0</div> + </td> + <td> + <div>If the <code>state</code> is set to <code>shutdownguest</code>, by default the module will return immediately after sending the shutdown signal.</div> + <div>If this argument is set to a positive integer, the module will instead wait for the virtual machine to reach the poweredoff state.</div> + <div>The value sets a timeout in seconds for the module to wait for the state change.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>template</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Template or existing virtual machine used to create new virtual machine.</div> + <div>If this value is not set, virtual machine is created without using a template.</div> + <div>If the virtual machine already exists, this parameter will be ignored.</div> + <div>This parameter is case sensitive.</div> + <div>From version 2.8 onwards, absolute path to virtual machine or template can be used.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: template_src</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the virtual machine to manage if known, this is VMware's unique identifier.</div> + <div>This is required if <code>name</code> is not supplied.</div> + <div>If virtual machine does not exists, then this parameter is ignored.</div> + <div>Please note that a supplied UUID will be ignored on virtual machine creation, as VMware creates the UUID internally.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vapp_properties</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>A list of vApp properties.</div> + <div>For full list of attributes and types refer to: <a href='https://code.vmware.com/apis/704/vsphere/vim.vApp.PropertyInfo.html'>https://code.vmware.com/apis/704/vsphere/vim.vApp.PropertyInfo.html</a></div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>id</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Property ID.</div> + <div>Required per entry.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>operation</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The <code>remove</code> attribute is required only when removing properties.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Value type, string type by default.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>value</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Property value.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>wait_for_customization</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Wait until vCenter detects all guest customizations as successfully completed.</div> + <div>When enabled, the VM will automatically be powered on.</div> + <div>If vCenter does not detect guest customization start or succeed, failed events after time <code>wait_for_customization_timeout</code> parameter specified, warning message will be printed and task result is fail.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>wait_for_customization_timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"3600"</div> + </td> + <td> + <div>Define a timeout (in seconds) for the wait_for_customization parameter.</div> + <div>Be careful when setting this value since the time guest customization took may differ among guest OSes.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>wait_for_ip_address</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Wait until vCenter detects an IP address for the virtual machine.</div> + <div>This requires vmware-tools (vmtoolsd) to properly work after creation.</div> + <div>vmware-tools needs to be installed on the given virtual machine in order to work with this parameter.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>wait_for_ip_address_timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"300"</div> + </td> + <td> + <div>Define a timeout (in seconds) for the wait_for_ip_address parameter.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - Please make sure that the user used for :ref:`community.vmware.vmware_guest <community.vmware.vmware_guest_module>` has the correct level of privileges. + - For example, following is the list of minimum privileges required by users to create virtual machines. + - DataStore > Allocate Space + - Virtual Machine > Configuration > Add New Disk + - Virtual Machine > Configuration > Add or Remove Device + - Virtual Machine > Inventory > Create New + - Network > Assign Network + - Resource > Assign Virtual Machine to Resource Pool + - Module may require additional privileges as well, which may be required for gathering facts - e.g. ESXi configurations. + - Use SCSI disks instead of IDE when you want to expand online disks by specifying a SCSI controller. + - Uses SysPrep for Windows VM (depends on 'guest_id' parameter match 'win') with PyVmomi. + - In order to change the VM's parameters (e.g. number of CPUs), the VM must be powered off unless the hot-add support is enabled and the ``state=present`` must be used to apply the changes. + - For additional information please visit Ansible VMware community wiki - https://github.com/ansible/community/wiki/VMware. + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Create a virtual machine on given ESXi hostname + community.vmware.vmware_guest: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + folder: /DC1/vm/ + name: test_vm_0001 + state: poweredon + guest_id: centos64Guest + # This is hostname of particular ESXi server on which user wants VM to be deployed + esxi_hostname: "{{ esxi_hostname }}" + disk: + - size_gb: 10 + type: thin + datastore: datastore1 + hardware: + memory_mb: 512 + num_cpus: 4 + scsi: paravirtual + networks: + - name: VM Network + mac: aa:bb:dd:aa:00:14 + ip: 10.10.10.100 + netmask: 255.255.255.0 + device_type: vmxnet3 + wait_for_ip_address: true + wait_for_ip_address_timeout: 600 + delegate_to: localhost + register: deploy_vm + + - name: Create a virtual machine from a template + community.vmware.vmware_guest: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + folder: /testvms + name: testvm_2 + state: poweredon + template: template_el7 + disk: + - size_gb: 10 + type: thin + datastore: g73_datastore + # Add another disk from an existing VMDK + - filename: "[datastore1] testvms/testvm_2_1/testvm_2_1.vmdk" + hardware: + memory_mb: 512 + num_cpus: 6 + num_cpu_cores_per_socket: 3 + scsi: paravirtual + memory_reservation_lock: True + mem_limit: 8096 + mem_reservation: 4096 + cpu_shares_level: "high" + mem_shares_level: "high" + cpu_limit: 8096 + cpu_reservation: 4096 + max_connections: 5 + hotadd_cpu: True + hotremove_cpu: True + hotadd_memory: False + version: 12 # Hardware version of virtual machine + boot_firmware: "efi" + cdrom: + - controller_number: 0 + unit_number: 0 + state: present + type: iso + iso_path: "[datastore1] livecd.iso" + networks: + - name: VM Network + mac: aa:bb:dd:aa:00:14 + wait_for_ip_address: true + delegate_to: localhost + register: deploy + + - name: Clone a virtual machine from Windows template and customize + community.vmware.vmware_guest: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: datacenter1 + cluster: cluster + name: testvm-2 + template: template_windows + networks: + - name: VM Network + ip: 192.168.1.100 + netmask: 255.255.255.0 + gateway: 192.168.1.1 + mac: aa:bb:dd:aa:00:14 + domain: my_domain + dns_servers: + - 192.168.1.1 + - 192.168.1.2 + - vlan: 1234 + type: dhcp + customization: + autologon: true + dns_servers: + - 192.168.1.1 + - 192.168.1.2 + domain: my_domain + password: new_vm_password + runonce: + - powershell.exe -ExecutionPolicy Unrestricted -File C:\Windows\Temp\ConfigureRemotingForAnsible.ps1 -ForceNewSSLCert -EnableCredSSP + delegate_to: localhost + + - name: Clone a virtual machine from Linux template and customize + community.vmware.vmware_guest: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter }}" + state: present + folder: /DC1/vm + template: "{{ template }}" + name: "{{ vm_name }}" + cluster: DC1_C1 + networks: + - name: VM Network + ip: 192.168.10.11 + netmask: 255.255.255.0 + wait_for_ip_address: True + customization: + domain: "{{ guest_domain }}" + dns_servers: + - 8.9.9.9 + - 7.8.8.9 + dns_suffix: + - example.com + - example2.com + script_text: | + #!/bin/bash + touch /tmp/touch-from-playbook + delegate_to: localhost + + - name: Rename a virtual machine (requires the virtual machine's uuid) + community.vmware.vmware_guest: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + uuid: "{{ vm_uuid }}" + name: new_name + state: present + delegate_to: localhost + + - name: Remove a virtual machine by uuid + community.vmware.vmware_guest: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + uuid: "{{ vm_uuid }}" + state: absent + delegate_to: localhost + + - name: Remove a virtual machine from inventory + community.vmware.vmware_guest: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + name: vm_name + delete_from_inventory: True + state: absent + delegate_to: localhost + + - name: Manipulate vApp properties + community.vmware.vmware_guest: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + name: vm_name + state: present + vapp_properties: + - id: remoteIP + category: Backup + label: Backup server IP + type: string + value: 10.10.10.1 + - id: old_property + operation: remove + delegate_to: localhost + + - name: Set powerstate of a virtual machine to poweroff by using UUID + community.vmware.vmware_guest: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + uuid: "{{ vm_uuid }}" + state: poweredoff + delegate_to: localhost + + - name: Deploy a virtual machine in a datastore different from the datastore of the template + community.vmware.vmware_guest: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + name: "{{ vm_name }}" + state: present + template: "{{ template_name }}" + # Here datastore can be different which holds template + datastore: "{{ virtual_machine_datastore }}" + hardware: + memory_mb: 512 + num_cpus: 2 + scsi: paravirtual + delegate_to: localhost + + - name: Create a diskless VM + community.vmware.vmware_guest: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ dc1 }}" + state: poweredoff + cluster: "{{ ccr1 }}" + name: diskless_vm + folder: /Asia-Datacenter1/vm + guest_id: centos64Guest + datastore: "{{ ds1 }}" + hardware: + memory_mb: 1024 + num_cpus: 2 + num_cpu_cores_per_socket: 1 + + - name: Create a VM with multiple disks of different disk controller types + community.vmware.vmware_guest: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + folder: /DC1/vm/ + name: test_vm_multi_disks + state: poweredoff + guest_id: centos64Guest + datastore: datastore1 + disk: + - size_gb: 10 + controller_type: 'nvme' + controller_number: 0 + unit_number: 0 + - size_gb: 10 + controller_type: 'paravirtual' + controller_number: 0 + unit_number: 1 + - size_gb: 10 + controller_type: 'sata' + controller_number: 0 + unit_number: 2 + hardware: + memory_mb: 512 + num_cpus: 4 + version: 14 + networks: + - name: VM Network + device_type: vmxnet3 + delegate_to: localhost + register: deploy_vm + + - name: Create a VM with NVDIMM device + community.vmware.vmware_guest: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + folder: /DC1/vm/ + name: test_vm_nvdimm + state: poweredoff + guest_id: centos7_64Guest + datastore: datastore1 + hardware: + memory_mb: 512 + num_cpus: 4 + version: 14 + networks: + - name: VM Network + device_type: vmxnet3 + nvdimm: + state: present + size_mb: 2048 + delegate_to: localhost + register: deploy_vm + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>instance</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the new virtual machine</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">None</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Loic Blot (@nerzhul) <loic.blot@unix-experience.fr> +- Philippe Dellaert (@pdellaert) <philippe@dellaert.org> +- Abhijeet Kasurde (@Akasurde) <akasurde@redhat.com> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_move_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_move_module.rst new file mode 100644 index 00000000..33d3eb5b --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_move_module.rst @@ -0,0 +1,393 @@ +.. _community.vmware.vmware_guest_move_module: + + +********************************** +community.vmware.vmware_guest_move +********************************** + +**Moves virtual machines in vCenter** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to move virtual machines between folders. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination datacenter for the move operation</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>dest_folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Absolute path to move an existing guest</div> + <div>The dest_folder should include the datacenter. ESX's datacenter is ha-datacenter.</div> + <div>This parameter is case sensitive.</div> + <div>Examples:</div> + <div>dest_folder: /ha-datacenter/vm</div> + <div>dest_folder: ha-datacenter/vm</div> + <div>dest_folder: /datacenter1/vm</div> + <div>dest_folder: datacenter1/vm</div> + <div>dest_folder: /datacenter1/vm/folder1</div> + <div>dest_folder: datacenter1/vm/folder1</div> + <div>dest_folder: /folder1/datacenter1/vm</div> + <div>dest_folder: folder1/datacenter1/vm</div> + <div>dest_folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the existing virtual machine to move.</div> + <div>This is required if <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name_match</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>first</b> ←</div></li> + <li>last</li> + </ul> + </td> + <td> + <div>If multiple virtual machines matching the name, use the first or last found.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the virtual machine to manage if known, this is VMware's unique identifier.</div> + <div>This is required if <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Move Virtual Machine + community.vmware.vmware_guest_move: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: datacenter + name: testvm-1 + dest_folder: "/{{ datacenter }}/vm" + delegate_to: localhost + + - name: Move Virtual Machine using MoID + community.vmware.vmware_guest_move: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: datacenter + moid: vm-42 + dest_folder: "/{{ datacenter }}/vm" + delegate_to: localhost + + - name: Get VM UUID + vmware_guest_facts: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter }}" + folder: "/{{ datacenter }}/vm" + name: "{{ vm_name }}" + delegate_to: localhost + register: vm_facts + + - name: Get UUID from previous task and pass it to this task + community.vmware.vmware_guest_move: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter }}" + uuid: "{{ vm_facts.instance.hw_product_uuid }}" + dest_folder: "/DataCenter/vm/path/to/new/folder/where/we/want" + delegate_to: localhost + register: facts + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>instance</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the virtual machine</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'annotation': None, 'current_snapshot': None, 'customvalues': {}, 'guest_consolidation_needed': False, 'guest_question': None, 'guest_tools_status': None, 'guest_tools_version': '0', 'hw_cores_per_socket': 1, 'hw_datastores': ['LocalDS_0'], 'hw_esxi_host': 'DC0_H0', 'hw_eth0': {'addresstype': 'generated', 'ipaddresses': None, 'label': 'ethernet-0', 'macaddress': '00:0c:29:6b:34:2c', 'macaddress_dash': '00-0c-29-6b-34-2c', 'summary': 'DVSwitch: 43cdd1db-1ef7-4016-9bbe-d96395616199'}, 'hw_files': ['[LocalDS_0] DC0_H0_VM0/DC0_H0_VM0.vmx'], 'hw_folder': '/F0/DC0/vm/F0', 'hw_guest_full_name': None, 'hw_guest_ha_state': None, 'hw_guest_id': 'otherGuest', 'hw_interfaces': ['eth0'], 'hw_is_template': False, 'hw_memtotal_mb': 32, 'hw_name': 'DC0_H0_VM0', 'hw_power_status': 'poweredOn', 'hw_processor_count': 1, 'hw_product_uuid': '581c2808-64fb-45ee-871f-6a745525cb29', 'instance_uuid': '8bcb0b6e-3a7d-4513-bf6a-051d15344352', 'ipv4': None, 'ipv6': None, 'module_hw': True, 'snapshots': []}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Jose Angel Munoz (@imjoseangel) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_network_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_network_module.rst new file mode 100644 index 00000000..ccc3efbb --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_network_module.rst @@ -0,0 +1,736 @@ +.. _community.vmware.vmware_guest_network_module: + + +************************************* +community.vmware.vmware_guest_network +************************************* + +**Manage network adapters of specified virtual machine in given vCenter infrastructure** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module is used to add, reconfigure, remove network adapter of given virtual machine. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>allow_guest_os_mtu_change</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.3.0</div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows the guest OS to change the MTU on a SR-IOV network adapter.</div> + <div>This option is only compatible for SR-IOV network adapters.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of cluster where VM belongs to.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>connected</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>If NIC should be connected to the network.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"ha-datacenter"</div> + </td> + <td> + <div>Datacenter the VM belongs to.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>device_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"vmxnet3"</div> + </td> + <td> + <div>Type of virtual network device.</div> + <div>Valid choices are - <code>e1000</code>, <code>e1000e</code>, <code>pcnet32</code>, <code>vmxnet2</code>, <code>vmxnet3</code> (default), <code>sriov</code>, <code>pvrdma</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>directpath_io</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enable Universal Pass-through (UPT).</div> + <div>Only compatible with the <code>vmxnet3</code> device type.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname of the ESXi host where the VM belongs to.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Folder location of given VM, this is only required when there's multiple VM's with the same name.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>force</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Force adapter creation even if an existing adapter is attached to the same network.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>gather_network_info</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Return information about current guest network adapters.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: gather_network_facts</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>guest_control</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Enables guest control over whether the connectable device is connected.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>label</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Label of the NIC that should be altered. <code>mac_address</code> or <code>label</code> should be set to get the corresponding device to reconfigure.</div> + <div>Alter the name of the network adapter.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mac_address</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>MAC address of the NIC that should be altered, if a MAC address is not supplied a new nic will be created.</div> + <div>Required when <em>state=absent</em>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>Required if <code>uuid</code> or <code>name</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of virtual machine</div> + <div>Required if <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>network_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of network in vSphere.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>physical_function_backing</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.3.0</div> + </td> + <td> + </td> + <td> + <div>If set, specifies the PCI ID of the physical function to use as backing for a SR-IOV network adapter.</div> + <div>This option is only compatible for SR-IOV network adapters.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>pvrdma_device_protocol</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 3.3.0</div> + </td> + <td> + </td> + <td> + <div>The PVRDMA device protocol used. Valid choices are - <code>rocev1</code>, <code>rocev2</code>.</div> + <div>This parameter is only used on the VM with hardware version >=14 and <= 19.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>start_connected</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>If NIC should be connected to network on startup.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>NIC state.</div> + <div>When <code>state=present</code>, a nic will be added if a mac address or label does not previously exists or is unset.</div> + <div>When <code>state=absent</code>, the <em>mac_address</em> parameter has to be set.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>switch</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the (dv)switch for destination network, this is only required for dvswitches.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>vm uuid</div> + <div>Required if <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>virtual_function_backing</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.3.0</div> + </td> + <td> + </td> + <td> + <div>If set, specifies the PCI ID of the physical function to use as backing for a SR-IOV network adapter.</div> + <div>This option is only compatible for SR-IOV network adapters.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vlan_id</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>VLAN id associated with the network.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>wake_onlan</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enable wake on LAN.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - For backwards compatibility network_data is returned when using the gather_network_info parameter + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: change network for 00:50:56:11:22:33 on vm01.domain.fake + community.vmware.vmware_guest_network: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + name: vm01.domain.fake + mac_address: 00:50:56:11:22:33 + network_name: admin-network + state: present + + - name: add a nic on network with vlan id 2001 for 422d000d-2000-ffff-0000-b00000000000 + community.vmware.vmware_guest_network: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + uuid: 422d000d-2000-ffff-0000-b00000000000 + vlan_id: 2001 + + - name: remove nic with mac 00:50:56:11:22:33 from vm01.domain.fake + community.vmware.vmware_guest_network: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + mac_address: 00:50:56:11:22:33 + name: vm01.domain.fake + state: absent + + - name: add multiple nics to vm01.domain.fake + community.vmware.vmware_guest_network: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + name: vm01.domain.fake + state: present + vlan_id: "{{ item.vlan_id | default(omit) }}" + network_name: "{{ item.network_name | default(omit) }}" + connected: "{{ item.connected | default(omit) }}" + loop: + - vlan_id: 2000 + connected: false + - network_name: guest-net + connected: true + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>network_data</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>when using gather_network_info parameter</td> + <td> + <div>For backwards compatibility, metadata about the virtual machine network adapters</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'network_data': {'0': {'mac_addr': '00:50:56:AA:AA:AA', 'mac_address': '00:50:56:AA:AA:AA', 'allow_guest_ctl': True, 'connected': True, 'device_type': 'vmxnet3', 'label': 'Network adapter 2', 'name': 'admin-net', 'network_name': 'admin-net', 'start_connected': True, 'switch': 'vSwitch0', 'unit_number': 8, 'vlan_id': 10, 'wake_onlan': False}, '1': {'mac_addr': '00:50:56:BB:BB:BB', 'mac_address': '00:50:56:BB:BB:BB', 'allow_guest_ctl': True, 'connected': True, 'device_type': 'vmxnet3', 'label': 'Network adapter 1', 'name': 'guest-net', 'network_name': 'guest-net', 'start_connected': True, 'switch': 'vSwitch0', 'unit_number': 7, 'vlan_id': 10, 'wake_onlan': True}}}</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>network_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the virtual machine network adapters</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'network_info': [{'mac_address': '00:50:56:AA:AA:AA', 'allow_guest_ctl': True, 'connected': True, 'device_type': 'vmxnet3', 'label': 'Network adapter 2', 'network_name': 'admin-net', 'start_connected': True, 'switch': 'vSwitch0', 'unit_number': 8, 'vlan_id': 10, 'wake_onlan': False}, {'mac_address': '00:50:56:BB:BB:BB', 'allow_guest_ctl': True, 'connected': True, 'device_type': 'vmxnet3', 'label': 'Network adapter 1', 'network_name': 'guest-net', 'start_connected': True, 'switch': 'vSwitch0', 'unit_number': 7, 'vlan_id': 10, 'wake_onlan': True}]}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Diane Wang (@Tomorrow9) <dianew@vmware.com> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_powerstate_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_powerstate_module.rst new file mode 100644 index 00000000..01214114 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_powerstate_module.rst @@ -0,0 +1,574 @@ +.. _community.vmware.vmware_guest_powerstate_module: + + +**************************************** +community.vmware.vmware_guest_powerstate +**************************************** + +**Manages power states of virtual machines in vCenter** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Power on / Power off / Restart a virtual machine. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>answer</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>A list of questions to answer, should one or more arise while waiting for the task to complete.</div> + <div>Some common uses are to allow a cdrom to be changed even if locked, or to answer the question as to whether a VM was copied or moved.</div> + <div>The <em>answer</em> can be used if <em>state</em> is <code>powered-on</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>question</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The message id, for example <code>msg.uuid.altered</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>response</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The choice key, for example <code>button.uuid.copiedTheVM</code>.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"ha-datacenter"</div> + </td> + <td> + <div>The <em>datacenter</em> where the VM you'd like to operate the power.</div> + <div>This parameter is case sensitive.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute or relative path to find an existing guest.</div> + <div>The folder should include the datacenter. ESX's datacenter is ha-datacenter</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>force</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Ignore warnings and complete the actions.</div> + <div>This parameter is useful while forcing virtual machine state.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine to work with.</div> + <div>Virtual machine names in vCenter are not necessarily unique, which may be problematic, see <code>name_match</code>.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name_match</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>first</b> ←</div></li> + <li>last</li> + </ul> + </td> + <td> + <div>If multiple virtual machines matching the name, use the first or last found.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>schedule_task_description</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Description of schedule task.</div> + <div>Valid only if <code>scheduled_at</code> is specified.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>schedule_task_enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Flag to indicate whether the scheduled task is enabled or disabled.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>schedule_task_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of schedule task.</div> + <div>Valid only if <code>scheduled_at</code> is specified.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>scheduled_at</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Date and time in string format at which specified task needs to be performed.</div> + <div>The required format for date and time - 'dd/mm/yyyy hh:mm'.</div> + <div>Scheduling task requires vCenter server. A standalone ESXi server does not support this option.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>powered-off</li> + <li>powered-on</li> + <li>reboot-guest</li> + <li>restarted</li> + <li>shutdown-guest</li> + <li>suspended</li> + <li><div style="color: blue"><b>present</b> ←</div></li> + </ul> + </td> + <td> + <div>Set the state of the virtual machine.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state_change_timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">0</div> + </td> + <td> + <div>If the <code>state</code> is set to <code>shutdown-guest</code>, by default the module will return immediately after sending the shutdown signal.</div> + <div>If this argument is set to a positive integer, the module will instead wait for the VM to reach the poweredoff state.</div> + <div>The value sets a timeout in seconds for the module to wait for the state change.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to manage if known, this is VMware's unique identifier.</div> + <div>This is required if <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Set the state of a virtual machine to poweroff + community.vmware.vmware_guest_powerstate: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + folder: "/{{ datacenter_name }}/vm/my_folder" + name: "{{ guest_name }}" + state: powered-off + delegate_to: localhost + register: deploy + + - name: Set the state of a virtual machine to poweron using MoID + community.vmware.vmware_guest_powerstate: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + folder: "/{{ datacenter_name }}/vm/my_folder" + moid: vm-42 + state: powered-on + delegate_to: localhost + register: deploy + + - name: Set the state of a virtual machine to poweroff at given scheduled time + community.vmware.vmware_guest_powerstate: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + folder: "/{{ datacenter_name }}/vm/my_folder" + name: "{{ guest_name }}" + state: powered-off + scheduled_at: "09/01/2018 10:18" + schedule_task_name: "task_00001" + schedule_task_description: "Sample task to poweroff VM" + schedule_task_enabled: True + delegate_to: localhost + register: deploy_at_schedule_datetime + + - name: Wait for the virtual machine to shutdown + community.vmware.vmware_guest_powerstate: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + name: "{{ guest_name }}" + state: shutdown-guest + state_change_timeout: 200 + delegate_to: localhost + register: deploy + + - name: Automatically answer if a question locked a virtual machine + block: + - name: Power on a virtual machine without the answer param + community.vmware.vmware_guest_powerstate: + hostname: "{{ esxi_hostname }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + validate_certs: false + folder: "{{ f1 }}" + name: "{{ vm_name }}" + state: powered-on + rescue: + - name: Power on a virtual machine with the answer param + community.vmware.vmware_guest_powerstate: + hostname: "{{ esxi_hostname }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + validate_certs: false + folder: "{{ f1 }}" + name: "{{ vm_name }}" + answer: + - question: "msg.uuid.altered" + response: "button.uuid.copiedTheVM" + state: powered-on + + + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) <akasurde@redhat.com> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_register_operation_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_register_operation_module.rst new file mode 100644 index 00000000..bb572dd0 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_register_operation_module.rst @@ -0,0 +1,417 @@ +.. _community.vmware.vmware_guest_register_operation_module: + + +************************************************ +community.vmware.vmware_guest_register_operation +************************************************ + +**VM inventory registration operation** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can register or unregister VMs to the inventory. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify a cluster name to register VM.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"ha-datacenter"</div> + </td> + <td> + <div>Destination datacenter for the register/unregister operation.</div> + <div>This parameter is case sensitive.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The ESXi hostname where the virtual machine will run.</div> + <div>This parameter is case sensitive.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Description folder, absolute path of the target folder.</div> + <div>The folder should include the datacenter. ESX's datacenter is ha-datacenter.</div> + <div>This parameter is case sensitive.</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify VM name to be registered in the inventory.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>path</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify the path of vmx file.</div> + <div>Examples:</div> + <div>[datastore1] vm/vm.vmx</div> + <div>[datastore1] vm/vm.vmtx</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>resource_pool</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify a resource pool name to register VM.</div> + <div>This parameter is case sensitive.</div> + <div>Resource pool should be child of the selected host parent.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>Specify the state the virtual machine should be in.</div> + <div>if set to <code>present</code>, register VM in inventory.</div> + <div>if set to <code>absent</code>, unregister VM from inventory.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>template</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to register VM as a template.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the virtual machine to manage if known, this is VMware's unique identifier.</div> + <div>If virtual machine does not exists, then this parameter is ignored.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Register VM to inventory + community.vmware.vmware_guest_register_operation: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter }}" + folder: "/vm" + esxi_hostname: "{{ esxi_hostname }}" + name: "{{ vm_name }}" + template: false + path: "[datastore1] vm/vm.vmx" + state: present + + - name: Register VM in resource pool + community.vmware.vmware_guest_register_operation: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter }}" + folder: "/vm" + resource_pool: "{{ resource_pool }}" + name: "{{ vm_name }}" + template: false + path: "[datastore1] vm/vm.vmx" + state: present + + - name: Register VM in Cluster + community.vmware.vmware_guest_register_operation: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter }}" + folder: "/vm" + cluster: "{{ cluster_name }}" + name: "{{ vm_name }}" + template: false + path: "[datastore1] vm/vm.vmx" + state: present + + - name: UnRegister VM from inventory + community.vmware.vmware_guest_register_operation: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter }}" + folder: "/vm" + name: "{{ vm_name }}" + state: absent + + + + +Status +------ + + +Authors +~~~~~~~ + +- sky-joker (@sky-joker) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_screenshot_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_screenshot_module.rst new file mode 100644 index 00000000..0d4039eb --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_screenshot_module.rst @@ -0,0 +1,386 @@ +.. _community.vmware.vmware_guest_screenshot_module: + + +**************************************** +community.vmware.vmware_guest_screenshot +**************************************** + +**Create a screenshot of the Virtual Machine console.** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module is used to take screenshot of the given virtual machine when virtual machine is powered on. +- All parameters and VMware object names are case sensitive. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of cluster where the virtual machine is running.</div> + <div>This is a required parameter, if <code>esxi_hostname</code> is not set.</div> + <div><code>esxi_hostname</code> and <code>cluster</code> are mutually exclusive parameters.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The datacenter name to which virtual machine belongs to.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The ESXi hostname where the virtual machine is running.</div> + <div>This is a required parameter, if <code>cluster</code> is not set.</div> + <div><code>esxi_hostname</code> and <code>cluster</code> are mutually exclusive parameters.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute or relative path to find an existing guest.</div> + <div>This is a required parameter, only if multiple VMs are found with same name.</div> + <div>The folder should include the datacenter. ESXi server's datacenter is ha-datacenter.</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>local_path</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">path</span> + </div> + </td> + <td> + </td> + <td> + <div>If <code>local_path</code> is not set, the created screenshot file will be kept in the directory of the virtual machine on ESXi host. If <code>local_path</code> is set to a valid path on local machine, then the screenshot file will be downloaded from ESXi host to the local directory.</div> + <div>If not download screenshot file to local machine, you can open it through the returned file URL in screenshot facts manually.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine.</div> + <div>This is a required parameter, if parameter <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to gather facts if known, this is VMware's unique identifier.</div> + <div>This is a required parameter, if parameter <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: take a screenshot of the virtual machine console + community.vmware.vmware_guest_screenshot: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + folder: "{{ folder_name }}" + name: "{{ vm_name }}" + local_path: "/tmp/" + delegate_to: localhost + register: take_screenshot + + - name: Take a screenshot of the virtual machine console using MoID + community.vmware.vmware_guest_screenshot: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + folder: "{{ folder_name }}" + moid: vm-42 + local_path: "/tmp/" + delegate_to: localhost + register: take_screenshot + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>screenshot_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>display the facts of captured virtual machine screenshot file</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'virtual_machine': 'test_vm', 'screenshot_file': '[datastore0] test_vm/test_vm-1.png', 'task_start_time': '2019-05-25T10:35:04.215016Z', 'task_complete_time': '2019-05-25T10:35:04.412622Z', 'result': 'success', 'screenshot_file_url': 'https://test_vcenter/folder/test_vm/test_vm-1.png?dcPath=test-dc&dsName=datastore0', 'download_local_path': '/tmp/', 'download_file_size': 2367}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Diane Wang (@Tomorrow9) <dianew@vmware.com> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_sendkey_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_sendkey_module.rst new file mode 100644 index 00000000..8be423ef --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_sendkey_module.rst @@ -0,0 +1,439 @@ +.. _community.vmware.vmware_guest_sendkey_module: + + +************************************* +community.vmware.vmware_guest_sendkey +************************************* + +**Send USB HID codes to the Virtual Machine's keyboard.** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module is used to send keystrokes to given virtual machine. +- All parameters and VMware object names are case sensitive. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of cluster where the virtual machine is running.</div> + <div>This is a required parameter, if <code>esxi_hostname</code> is not set.</div> + <div><code>esxi_hostname</code> and <code>cluster</code> are mutually exclusive parameters.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The datacenter name to which virtual machine belongs to.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The ESXi hostname where the virtual machine is running.</div> + <div>This is a required parameter, if <code>cluster</code> is not set.</div> + <div><code>esxi_hostname</code> and <code>cluster</code> are mutually exclusive parameters.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute or relative path to find an existing guest.</div> + <div>This is a required parameter, only if multiple VMs are found with same name.</div> + <div>The folder should include the datacenter. ESXi server's datacenter is ha-datacenter.</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>keys_send</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>The list of the keys will be sent to the virtual machine.</div> + <div>Valid values are <code>ENTER</code>, <code>ESC</code>, <code>BACKSPACE</code>, <code>TAB</code>, <code>SPACE</code>, <code>CAPSLOCK</code>, <code>HOME</code>, <code>DELETE</code>, <code>END</code>, <code>CTRL_ALT_DEL</code>, <code>CTRL_C</code>, <code>CTRL_X</code> and <code>F1</code> to <code>F12</code>, <code>RIGHTARROW</code>, <code>LEFTARROW</code>, <code>DOWNARROW</code>, <code>UPARROW</code>.</div> + <div>If both <code>keys_send</code> and <code>string_send</code> are specified, keys in <code>keys_send</code> list will be sent in front of the <code>string_send</code>.</div> + <div>Values <code>HOME</code> and <code>END</code> are added in version 1.17.0.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine.</div> + <div>This is a required parameter, if parameter <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>sleep_time</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">0</div> + </td> + <td> + <div>Sleep time in seconds between two keys or string sent to the virtual machine.</div> + <div>API is faster than actual key or string send to virtual machine, this parameter allow to control delay between keys and/or strings.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>string_send</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The string will be sent to the virtual machine.</div> + <div>This string can contain valid special character, alphabet and digit on the keyboard.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to gather facts if known, this is VMware's unique identifier.</div> + <div>This is a required parameter, if parameter <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Send list of keys to virtual machine + community.vmware.vmware_guest_sendkey: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + folder: "{{ folder_name }}" + name: "{{ vm_name }}" + keys_send: + - TAB + - TAB + - ENTER + delegate_to: localhost + register: keys_num_sent + + - name: Send list of keys to virtual machine using MoID + community.vmware.vmware_guest_sendkey: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + folder: "{{ folder_name }}" + moid: vm-42 + keys_send: + - CTRL_ALT_DEL + delegate_to: localhost + register: ctrl_alt_del_sent + + - name: Send a string to virtual machine + community.vmware.vmware_guest_sendkey: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + folder: "{{ folder_name }}" + name: "{{ vm_name }}" + string_send: "user_logon" + delegate_to: localhost + register: keys_num_sent + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>sendkey_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>display the keys and the number of keys sent to the virtual machine</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'virtual_machine': 'test_vm', 'keys_send': ['SPACE', 'DOWNARROW', 'DOWNARROW', 'ENTER'], 'string_send': None, 'keys_send_number': 4, 'returned_keys_send_number': 4}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Diane Wang (@Tomorrow9) <dianew@vmware.com> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_serial_port_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_serial_port_module.rst new file mode 100644 index 00000000..0e9dc39c --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_serial_port_module.rst @@ -0,0 +1,550 @@ +.. _community.vmware.vmware_guest_serial_port_module: + + +***************************************** +community.vmware.vmware_guest_serial_port +***************************************** + +**Manage serial ports on an existing VM** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to manage serial ports on an existing VM + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>backings</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>A list of backings for serial ports.</div> + <div><code>backing_type</code> (str): is required to add or reconfigure or remove an existing serial port.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>backing_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Backing type is required for the serial ports to be added or reconfigured or removed.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: type</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>device_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Serial device absolutely path.</div> + <div>Required when <em>backing_type=device</em>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>direction</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>client</b> ←</div></li> + <li>server</li> + </ul> + </td> + <td> + <div>The direction of the connection.</div> + <div>Required when <em>backing_type=network</em>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>endpoint</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>client</b> ←</div></li> + <li>server</li> + </ul> + </td> + <td> + <div>When you use serial port pipe backing to connect a virtual machine to another process, you must define the endpoints.</div> + <div>Required when <em>backing_type=pipe</em>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>file_path</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>File path for the host file used in this backing. Fully qualified path is required, like <datastore_name>/<file_name>.</div> + <div>Required when <em>backing_type=file</em>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>no_rx_loss</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enables optimized data transfer over the pipe.</div> + <div>Required when <em>backing_type=pipe</em>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>pipe_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Pipe name for the host pipe.</div> + <div>Required when <em>backing_type=pipe</em>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>service_uri</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Identifies the local host or a system on the network, depending on the value of <em>direction</em>.</div> + <div>If you use the virtual machine as a server, the URI identifies the host on which the virtual machine runs.</div> + <div>In this case, the host name part of the URI should be empty, or it should specify the address of the local host.</div> + <div>If you use the virtual machine as a client, the URI identifies the remote system on the network.</div> + <div>Required when <em>backing_type=network</em>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div><code>state</code> is required to identify whether we are adding, modifying or removing the serial port.</div> + <div>If <code>state</code> is set to <code>present</code>, a serial port will be added or modified.</div> + <div>If <code>state</code> is set to <code>absent</code>, an existing serial port will be removed.</div> + <div>If an existing serial port to modify or remove, <code>backing_type</code> and either of <code>service_uri</code> or <code>pipe_name</code> or <code>device_name</code> or <code>file_path</code> are required.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>yield_on_poll</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Enables CPU yield behavior.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine.</div> + <div>This is a required parameter, if parameter <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to manage the serial ports, this is VMware's unique identifier.</div> + <div>This is a required parameter, if parameter <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + # Create serial ports + - name: Create multiple serial ports with Backing type - network, pipe, device and file + community.vmware.vmware_guest_serial_port: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + name: "test_vm1" + backings: + - type: 'network' + direction: 'client' + service_uri: 'tcp://6000' + yield_on_poll: True + - type: 'pipe' + pipe_name: 'serial_pipe' + endpoint: 'client' + - type: 'device' + device_name: '/dev/char/serial/uart0' + - type: 'file' + file_path: '[datastore1]/file1' + yield_on_poll: True + register: create_multiple_ports + + # Modify existing serial port + - name: Modify Network backing type + community.vmware.vmware_guest_serial_port: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + name: '{{ name }}' + backings: + - type: 'network' + state: 'present' + direction: 'server' + service_uri: 'tcp://6000' + delegate_to: localhost + + # Remove serial port + - name: Remove pipe backing type + community.vmware.vmware_guest_serial_port: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + name: '{{ name }}' + backings: + - type: 'pipe' + state: 'absent' + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>serial_port_data</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the virtual machine's serial ports after managing them</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'backing_type': 'network', 'direction': 'client', 'service_uri': 'tcp://6000'}, {'backing_type': 'pipe', 'direction': 'server', 'pipe_name': 'serial pipe'}]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Anusha Hegde (@anusha94) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_snapshot_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_snapshot_info_module.rst new file mode 100644 index 00000000..1c887217 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_snapshot_info_module.rst @@ -0,0 +1,353 @@ +.. _community.vmware.vmware_guest_snapshot_info_module: + + +******************************************* +community.vmware.vmware_guest_snapshot_info +******************************************* + +**Gather info about virtual machine's snapshots in vCenter** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about virtual machine's snapshots. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datacenter.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute or relative path to find an existing guest.</div> + <div>This is required parameter, if <code>name</code> is supplied.</div> + <div>The folder should include the datacenter. ESX's datacenter is ha-datacenter</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the VM to work with.</div> + <div>This is required if <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to manage if known, this is VMware's BIOS UUID by default.</div> + <div>This is required if <code>name</code> or <code>moid</code> parameter is not supplied.</div> + <div>The <code>folder</code> is ignored, if <code>uuid</code> is provided.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather snapshot information about the virtual machine in the given vCenter + community.vmware.vmware_guest_snapshot_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + folder: "/{{ datacenter_name }}/vm/" + name: "{{ guest_name }}" + delegate_to: localhost + register: snapshot_info + + - name: Gather snapshot information about the virtual machine using MoID + community.vmware.vmware_guest_snapshot_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + moid: vm-42 + delegate_to: localhost + register: snapshot_info + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>guest_snapshots</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the snapshot information</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'current_snapshot': {'creation_time': '2018-02-10T14:48:31.999459+00:00', 'description': '', 'id': 28, 'name': 'snap_0003', 'state': 'poweredOff', 'quiesced': False}, 'snapshots': [{'creation_time': '2018-02-10T14:48:31.999459+00:00', 'description': '', 'id': 28, 'name': 'snap_0003', 'state': 'poweredOff', 'quiesced': False}]}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_snapshot_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_snapshot_module.rst new file mode 100644 index 00000000..f6dceb2d --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_snapshot_module.rst @@ -0,0 +1,604 @@ +.. _community.vmware.vmware_guest_snapshot_module: + + +************************************** +community.vmware.vmware_guest_snapshot +************************************** + +**Manages virtual machines snapshots in vCenter** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to create, delete and update snapshot(s) of the given virtual machine. +- All parameters and VMware object names are case sensitive. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination datacenter for the deploy operation.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>description</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>Define an arbitrary description to attach to snapshot.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute or relative path to find an existing guest.</div> + <div>This is required parameter, if <code>name</code> is supplied.</div> + <div>The folder should include the datacenter. ESX's datacenter is ha-datacenter.</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>memory_dump</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>If set to <code>true</code>, memory dump of virtual machine is also included in snapshot.</div> + <div>Note that memory snapshots take time and resources, this will take longer time to create.</div> + <div>If virtual machine does not provide capability to take memory snapshot, then this flag is set to <code>false</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine to work with.</div> + <div>This is required parameter, if <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name_match</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>first</b> ←</div></li> + <li>last</li> + </ul> + </td> + <td> + <div>If multiple VMs matching the name, use the first or last found.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>new_description</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Value to change the description of an existing snapshot to.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>new_snapshot_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Value to rename the existing snapshot to.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>quiesce</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>If set to <code>true</code> and virtual machine is powered on, it will quiesce the file system in virtual machine.</div> + <div>Note that VMware Tools are required for this flag.</div> + <div>If virtual machine is powered off or VMware Tools are not available, then this flag is set to <code>false</code>.</div> + <div>If virtual machine does not provide capability to take quiesce snapshot, then this flag is set to <code>false</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>remove_children</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>If set to <code>true</code> and state is set to <code>absent</code>, then entire snapshot subtree is set for removal.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snapshot_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Sets the snapshot name to manage.</div> + <div>This param is required only if state is not <code>remove_all</code></div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + <li>revert</li> + <li>remove_all</li> + </ul> + </td> + <td> + <div>Manage snapshot(s) attached to a specific virtual machine.</div> + <div>If set to <code>present</code> and snapshot absent, then will create a new snapshot with the given name.</div> + <div>If set to <code>present</code> and snapshot present, then no changes are made.</div> + <div>If set to <code>absent</code> and snapshot present, then snapshot with the given name is removed.</div> + <div>If set to <code>absent</code> and snapshot absent, then no changes are made.</div> + <div>If set to <code>revert</code> and snapshot present, then virtual machine state is reverted to the given snapshot.</div> + <div>If set to <code>revert</code> and snapshot absent, then no changes are made.</div> + <div>If set to <code>remove_all</code> and snapshot(s) present, then all snapshot(s) will be removed.</div> + <div>If set to <code>remove_all</code> and snapshot(s) absent, then no changes are made.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to manage if known, this is VMware's BIOS UUID by default.</div> + <div>This is required if <code>name</code> or <code>moid</code> parameter is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Create a snapshot + community.vmware.vmware_guest_snapshot: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + folder: "/{{ datacenter_name }}/vm/" + name: "{{ guest_name }}" + state: present + snapshot_name: snap1 + description: snap1_description + delegate_to: localhost + + - name: Remove a snapshot + community.vmware.vmware_guest_snapshot: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + folder: "/{{ datacenter_name }}/vm/" + name: "{{ guest_name }}" + state: absent + snapshot_name: snap1 + delegate_to: localhost + + - name: Revert to a snapshot + community.vmware.vmware_guest_snapshot: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + folder: "/{{ datacenter_name }}/vm/" + name: "{{ guest_name }}" + state: revert + snapshot_name: snap1 + delegate_to: localhost + + - name: Remove all snapshots of a VM + community.vmware.vmware_guest_snapshot: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + folder: "/{{ datacenter_name }}/vm/" + name: "{{ guest_name }}" + state: remove_all + delegate_to: localhost + + - name: Remove all snapshots of a VM using MoID + community.vmware.vmware_guest_snapshot: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + folder: "/{{ datacenter_name }}/vm/" + moid: vm-42 + state: remove_all + delegate_to: localhost + + - name: Take snapshot of a VM using quiesce and memory flag on + community.vmware.vmware_guest_snapshot: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + folder: "/{{ datacenter_name }}/vm/" + name: "{{ guest_name }}" + state: present + snapshot_name: dummy_vm_snap_0001 + quiesce: true + memory_dump: true + delegate_to: localhost + + - name: Remove a snapshot and snapshot subtree + community.vmware.vmware_guest_snapshot: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + folder: "/{{ datacenter_name }}/vm/" + name: "{{ guest_name }}" + state: absent + remove_children: true + snapshot_name: snap1 + delegate_to: localhost + + - name: Rename a snapshot + community.vmware.vmware_guest_snapshot: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + folder: "/{{ datacenter_name }}/vm/" + name: "{{ guest_name }}" + state: present + snapshot_name: current_snap_name + new_snapshot_name: im_renamed + new_description: "{{ new_snapshot_description }}" + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>snapshot_results</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the virtual machine snapshots</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'current_snapshot': {'creation_time': '2019-04-09T14:40:26.617427+00:00', 'description': 'Snapshot 4 example', 'id': 4, 'name': 'snapshot4', 'state': 'poweredOff'}, 'snapshots': [{'creation_time': '2019-04-09T14:38:24.667543+00:00', 'description': 'Snapshot 3 example', 'id': 3, 'name': 'snapshot3', 'state': 'poweredOff'}, {'creation_time': '2019-04-09T14:40:26.617427+00:00', 'description': 'Snapshot 4 example', 'id': 4, 'name': 'snapshot4', 'state': 'poweredOff'}]}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Loic Blot (@nerzhul) <loic.blot@unix-experience.fr> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_storage_policy_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_storage_policy_module.rst new file mode 100644 index 00000000..3795cf00 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_storage_policy_module.rst @@ -0,0 +1,429 @@ +.. _community.vmware.vmware_guest_storage_policy_module: + + +******************************************** +community.vmware.vmware_guest_storage_policy +******************************************** + +**Set VM Home and disk(s) storage policy profiles.** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to enforce storage policy profiles per disk and/or VM Home on a virtual machine. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>disk</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>A list of disks with storage profile policies to enforce.</div> + <div>All values and parameters are case sensitive.</div> + <div>At least one of <code>disk</code> and <code>vm_home</code> are required parameters.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>controller_number</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">0</div> + </td> + <td> + <div>SCSI controller number.</div> + <div>Valid values range from 0 to 3.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>policy</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the storage profile policy to enforce for the disk.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>unit_number</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Disk Unit Number.</div> + <div>Valid values range from 0 to 15.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute or relative path to find an existing guest.</div> + <div>This is a required parameter if multiple VMs are found with same name.</div> + <div>The folder should include the datacenter. ESX's datacenter is ha-datacenter.</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>One of <code>name</code>, <code>uuid</code>, or <code>moid</code> are required to define the virtual machine.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine.</div> + <div>One of <code>name</code>, <code>uuid</code>, or <code>moid</code> are required to define the virtual machine.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the virtual machine.</div> + <div>One of <code>name</code>, <code>uuid</code>, or <code>moid</code> are required to define the virtual machine.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_home</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>A storage profile policy to set on VM Home.</div> + <div>All values and parameters are case sensitive.</div> + <div>At least one of <code>disk</code> or <code>vm_home</code> are required parameters.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Enforce storepol1 policy for disk 0 and 1 on SCSI controller 0 using UUID + community.vmware.vmware_guest_storage_policy: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: no + uuid: cefd316c-fc19-45f3-a539-2cd03427a78d + disk: + - unit_number: 0 + controller_number: 0 + policy: storepol1 + - unit_number: 1 + controller_number: 0 + policy: storepol1 + delegate_to: localhost + register: policy_status + + - name: Enforce storepol1 policy for VM Home using name + community.vmware.vmware_guest_storage_policy: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: no + name: hostname1 + vm_home: storepol1 + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>changed_policies</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>Dictionary containing the changed policies of disk (list of dictionaries) and vm_home.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'disk': [{'policy': 'storepol1', 'unit_number': 0}], 'vm_home': 'storepol1'}</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>msg</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>Informational message on the job result.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">Policies successfully set.</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Tyler Gates (@tgates81) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_tools_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_tools_info_module.rst new file mode 100644 index 00000000..8fa844f1 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_tools_info_module.rst @@ -0,0 +1,369 @@ +.. _community.vmware.vmware_guest_tools_info_module: + + +**************************************** +community.vmware.vmware_guest_tools_info +**************************************** + +**Gather info about VMware tools installed in VM** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Gather information about the VMware tools installed in virtual machine. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The datacenter name to which virtual machine belongs to.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute or relative path to find an existing guest.</div> + <div>This is required if name is supplied.</div> + <div>The folder should include the datacenter. ESXi server's datacenter is ha-datacenter.</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the VM to get VMware tools info.</div> + <div>This is required if <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name_match</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>first</b> ←</div></li> + <li>last</li> + </ul> + </td> + <td> + <div>If multiple VMs matching the name, use the first or last found.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to manage if known, this is VMware's unique identifier.</div> + <div>This is required if <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather VMware tools info installed in VM specified by uuid + community.vmware.vmware_guest_tools_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + uuid: 421e4592-c069-924d-ce20-7e7533fab926 + delegate_to: localhost + register: vmtools_info + + - name: Gather VMware tools info installed in VM specified by name + community.vmware.vmware_guest_tools_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + name: "{{ vm_name }}" + delegate_to: localhost + register: vmtools_info + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>vmtools_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the VMware tools installed in virtual machine</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'vm_uuid': None, 'vm_moid': None, 'vm_use_instance_uuid': False, 'vm_guest_fullname': 'Microsoft Windows 10 (64-bit)', 'vm_guest_hostname': 'test', 'vm_guest_id': 'windows9_64Guest', 'vm_hw_version': 'vmx-14', 'vm_ipaddress': '10.10.10.10', 'vm_name': 'test_vm', 'vm_tools_install_status': 'toolsOk', 'vm_tools_install_type': 'guestToolsTypeMSI', 'vm_tools_last_install_count': 0, 'vm_tools_running_status': 'guestToolsRunning', 'vm_tools_upgrade_policy': 'manual', 'vm_tools_version': 10341, 'vm_tools_version_status': 'guestToolsCurrent'}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Diane Wang (@Tomorrow9) <dianew@vmware.com> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_tools_upgrade_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_tools_upgrade_module.rst new file mode 100644 index 00000000..08e3cd52 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_tools_upgrade_module.rst @@ -0,0 +1,351 @@ +.. _community.vmware.vmware_guest_tools_upgrade_module: + + +******************************************* +community.vmware.vmware_guest_tools_upgrade +******************************************* + +**Module to upgrade VMTools** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module upgrades the VMware Tools on Windows and Linux guests and reboots them. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination datacenter where the virtual machine exists.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute or relative path to find an existing guest.</div> + <div>This is required, if <code>name</code> is supplied.</div> + <div>The folder should include the datacenter. ESX's datacenter is ha-datacenter</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>force_upgrade</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>This flag overrides the guest operating system detection and forcibly upgrade VMware tools or open-vm-tools.</div> + <div>This is useful when VMware tools is too old and unable to detect the 'guestFamily' value.</div> + <div>Using this flag may sometime give unexpected results since module will override the default</div> + <div>behaviour of 'guestFamily' detection.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine to work with.</div> + <div>This is required if <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name_match</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>first</b> ←</div></li> + <li>last</li> + </ul> + </td> + <td> + <div>If multiple virtual machines matching the name, use the first or last found.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to manage if known, this is VMware's unique identifier.</div> + <div>This is required if <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - In order to upgrade VMTools, please power on virtual machine before hand - either 'manually' or using module :ref:`community.vmware.vmware_guest_powerstate <community.vmware.vmware_guest_powerstate_module>`. + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Get VM UUID + vmware_guest_facts: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter }}" + folder: "/{{datacenter}}/vm" + name: "{{ vm_name }}" + delegate_to: localhost + register: vm_facts + + - name: Upgrade VMware Tools using uuid + community.vmware.vmware_guest_tools_upgrade: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + uuid: "{{ vm_facts.instance.hw_product_uuid }}" + delegate_to: localhost + + - name: Upgrade VMware Tools using MoID + community.vmware.vmware_guest_tools_upgrade: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + moid: vm-42 + delegate_to: localhost + + + + +Status +------ + + +Authors +~~~~~~~ + +- Mike Klebolt (@MikeKlebolt) <michael.klebolt@centurylink.com> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_tools_wait_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_tools_wait_module.rst new file mode 100644 index 00000000..7913fb0e --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_tools_wait_module.rst @@ -0,0 +1,407 @@ +.. _community.vmware.vmware_guest_tools_wait_module: + + +**************************************** +community.vmware.vmware_guest_tools_wait +**************************************** + +**Wait for VMware tools to become available** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to wait for VMware tools to become available on the given VM and return facts. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datacenter.</div> + <div>The datacenter to search for a virtual machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute or relative path to find an existing guest.</div> + <div>This is required only, if multiple VMs with same <code>name</code> is found.</div> + <div>The folder should include the datacenter. ESX's datacenter is <code>ha-datacenter</code>.</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the VM for which to wait until the tools become available.</div> + <div>This is required if <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name_match</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>first</b> ←</div></li> + <li>last</li> + </ul> + </td> + <td> + <div>If multiple VMs match the name, use the first or last found.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">500</div> + </td> + <td> + <div>Max duration of the waiting period (seconds).</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the VM for which to wait until the tools become available, if known. This is VMware's unique identifier.</div> + <div>This is required, if <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Wait for VMware tools to become available by UUID + vmware_guest_facts: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter }}" + folder: "/{{datacenter}}/vm" + name: "{{ vm_name }}" + delegate_to: localhost + register: vm_facts + + - name: Get UUID from previous task and pass it to this task + community.vmware.vmware_guest_tools_wait: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + uuid: "{{ vm_facts.instance.hw_product_uuid }}" + delegate_to: localhost + register: facts + + + - name: Wait for VMware tools to become available by MoID + community.vmware.vmware_guest_tools_wait: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + moid: vm-42 + delegate_to: localhost + register: facts + + - name: Wait for VMware tools to become available by name + community.vmware.vmware_guest_tools_wait: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + name: test-vm + folder: "/{{datacenter}}/vm" + datacenter: "{{ datacenter }}" + delegate_to: localhost + register: facts + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>instance</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the virtual machine</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">None</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Philippe Dellaert (@pdellaert) <philippe@dellaert.org> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_tpm_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_tpm_module.rst new file mode 100644 index 00000000..c3adf83b --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_tpm_module.rst @@ -0,0 +1,355 @@ +.. _community.vmware.vmware_guest_tpm_module: + + +********************************* +community.vmware.vmware_guest_tpm +********************************* + +**Add or remove vTPM device for specified VM.** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module is used for adding or removing Virtual Trusted Platform Module(vTPM) device for an existing Virtual Machine. You must create a key provider on vCenter before you can add a vTPM. The ESXi hosts running in your environment must be ESXi 6.7 or later (Windows guest OS), or 7.0 Update 2 (Linux guest OS). + + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The vCenter datacenter name used to get specified cluster or host.</div> + <div>This parameter is case sensitive.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>VM folder, absolute or relative path to find an existing VM.</div> + <div>This parameter is not required, only when multiple VMs are found with the same name.</div> + <div>The folder should include the datacenter name.</div> + <div>Examples:</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine.</div> + <div>This is required if parameter <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>State of vTPM device.</div> + <div>If set to 'absent', vTPM device will be removed from VM.</div> + <div>If set to 'present', vTPM device will be added if not present.</div> + <div>Virtual machine should be turned off before add or remove vTPM device.</div> + <div>Virtual machine should not contain snapshots before add vTPM device.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to manage if known, this is VMware's unique identifier.</div> + <div>This is required if parameter <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add vTPM to specified VM + community.vmware.vmware_guest_tpm: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter }}" + name: "Test_VM" + state: present + delegate_to: localhost + + - name: Remove vTPM from specified VM + community.vmware.vmware_guest_tpm: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter }}" + name: "Test_VM" + state: absent + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>instance</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the VM vTPM device</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">None</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Diane Wang (@Tomorrow9) <dianew@vmware.com> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_vgpu_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_vgpu_info_module.rst new file mode 100644 index 00000000..a6001857 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_vgpu_info_module.rst @@ -0,0 +1,345 @@ +.. _community.vmware.vmware_guest_vgpu_info_module: + + +*************************************** +community.vmware.vmware_guest_vgpu_info +*************************************** + +**Gather information about vGPU profiles of the specified virtual machine in the given vCenter infrastructure** + + +Version added: 3.3.0 + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module is used to gather metadata about vGPU profiles of the given virtual machine. +- All parameters and VMware object names are case sensitive. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"ha-datacenter"</div> + </td> + <td> + <div>The datacenter name to which virtual machine belongs to.</div> + <div>This parameter is case sensitive.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute or relative path to find an existing guest.</div> + <div>This is a required parameter, only if multiple VMs are found with same name.</div> + <div>The folder should include the datacenter. ESXi server's datacenter is ha-datacenter.</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine.</div> + <div>This is a required parameter, if parameter <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to gather facts if known, this is VMware's unique identifier.</div> + <div>This is a required parameter, if parameter <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather information about vGPU profiles of a VM + community.vmware.vmware_guest_vgpu_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + validate_certs: no + name: UbuntuTest + delegate_to: localhost + register: vgpu_info + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>vgpu_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the virtual machine's vGPU profiles</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'vgpu': [{'Controller_Key': 100, 'Key': 13000, 'Label': 'PCI device 0', 'Summary': 'NVIDIA GRID vGPU grid_m10-8q', 'Unit_Number': 18, 'Vgpu': 'grid_m10-8q'}]}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Jared Priddy (@jdptechnc) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_vgpu_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_vgpu_module.rst new file mode 100644 index 00000000..9109e571 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_vgpu_module.rst @@ -0,0 +1,447 @@ +.. _community.vmware.vmware_guest_vgpu_module: + + +********************************** +community.vmware.vmware_guest_vgpu +********************************** + +**Modify vGPU video card profile of the specified virtual machine in the given vCenter infrastructure** + + +Version added: 2.5.0 + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module is used to reconfigure vGPU card profile of the given virtual machine. +- All parameters and VMware object names are case sensitive. +- VM must be power off :ref:`community.vmware.vmware_guest_powerstate <community.vmware.vmware_guest_powerstate_module>` module can perform that task. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The cluster name where the virtual machine is running.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"ha-datacenter"</div> + </td> + <td> + <div>The datacenter name to which virtual machine belongs to.</div> + <div>This parameter is case sensitive.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The ESXi hostname where the virtual machine is running.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute or relative path to find an existing guest.</div> + <div>This is a required parameter, only if multiple VMs are found with same name.</div> + <div>The folder should include the datacenter. ESXi server's datacenter is ha-datacenter.</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>force</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Force operation.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine.</div> + <div>This is a required parameter, if parameter <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>vGPU profile state.</div> + <div>When <code>state=present</code>, the selected vGPU profile will be added if the VM hosted ESXi host NVIDIA GPU offer it.</div> + <div>When <code>state=absent</code>, the selected vGPU profile gets removed from the VM.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to gather facts if known, this is VMware's unique identifier.</div> + <div>This is a required parameter, if parameter <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vgpu</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>A supported vGPU profile depending on the GPU model. Required for any operation.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add vGPU profile to VM + community.vmware.vmware_guest_vgpu: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + validate_certs: no + name: UbuntuTest + vgpu: 'grid_m10-8q' + state: present + delegate_to: localhost + register: vgpu_info + + - name: Remove vGPU profile to VM + community.vmware.vmware_guest_vgpu: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + validate_certs: no + name: UbuntuTest + vgpu: 'grid_m10-8q' + state: absent + delegate_to: localhost + register: vgpu_info + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>vgpu_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the virtual machine's vGPU profile</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'vgpu': {'Controller_Key': 100, 'Key': 13000, 'Label': 'PCI device 0', 'Summary': 'NVIDIA GRID vGPU grid_m10-8q', 'Unit_Number': 18, 'Vgpu': 'grid_m10-8q'}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Mohamed Alibi (@Medalibi) +- Unknown (@matancarmeli7) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_video_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_video_module.rst new file mode 100644 index 00000000..6c7b40be --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_guest_video_module.rst @@ -0,0 +1,486 @@ +.. _community.vmware.vmware_guest_video_module: + + +*********************************** +community.vmware.vmware_guest_video +*********************************** + +**Modify video card configurations of specified virtual machine in given vCenter infrastructure** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module is used to reconfigure video card settings of given virtual machine. +- All parameters and VMware object names are case sensitive. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"ha-datacenter"</div> + </td> + <td> + <div>The datacenter name to which virtual machine belongs to.</div> + <div>This parameter is case sensitive.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>display_number</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>The number of display. Valid value from 1 to 10. The maximum display number is 4 on vCenter 6.0, 6.5 web UI.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enable_3D</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enable 3D for guest operating systems on which VMware supports 3D.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute or relative path to find an existing guest.</div> + <div>This is a required parameter, only if multiple VMs are found with same name.</div> + <div>The folder should include the datacenter. ESXi server's datacenter is ha-datacenter.</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>gather_video_facts</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>If set to <code>True</code>, return settings of the video card, other attributes are ignored.</div> + <div>If set to <code>False</code>, will do reconfiguration and return video card settings.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>memory_3D_mb</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>The value of 3D Memory must be power of 2 and valid value is from 32 MB to 2048 MB.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine.</div> + <div>This is a required parameter, if parameter <code>uuid</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>renderer_3D</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>automatic</li> + <li>software</li> + <li>hardware</li> + </ul> + </td> + <td> + <div>If set to <code>automatic</code>, selects the appropriate option (software or hardware) for this virtual machine automatically.</div> + <div>If set to <code>software</code>, uses normal CPU processing for 3D calculations.</div> + <div>If set to <code>hardware</code>, requires graphics hardware (GPU) for faster 3D calculations.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_auto_detect</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>If set to <code>True</code>, applies common video settings to the guest operating system, attributes <code>display_number</code> and <code>video_memory_mb</code> are ignored.</div> + <div>If set to <code>False</code>, the number of display and the total video memory will be reconfigured using <code>display_number</code> and <code>video_memory_mb</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the instance to gather facts if known, this is VMware's unique identifier.</div> + <div>This is a required parameter, if parameter <code>name</code> or <code>moid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>video_memory_mb</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">float</span> + </div> + </td> + <td> + </td> + <td> + <div>Valid total MB of video memory range of virtual machine is from 1.172 MB to 256 MB on ESXi 6.7U1, from 1.172 MB to 128 MB on ESXi 6.7 and previous versions.</div> + <div>For specific guest OS, supported minimum and maximum video memory are different, please be careful on setting this.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Change video card settings of virtual machine + community.vmware.vmware_guest_video: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + name: test-vm + gather_video_facts: false + use_auto_detect: false + display_number: 2 + video_memory_mb: 8.0 + enable_3D: true + renderer_3D: automatic + memory_3D_mb: 512 + delegate_to: localhost + register: video_facts + + - name: Change video card settings of virtual machine using MoID + community.vmware.vmware_guest_video: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + moid: vm-42 + gather_video_facts: false + use_auto_detect: false + display_number: 2 + video_memory_mb: 8.0 + enable_3D: true + renderer_3D: automatic + memory_3D_mb: 512 + delegate_to: localhost + register: video_facts + + - name: Gather video card settings of virtual machine + community.vmware.vmware_guest_video: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter_name }}" + name: test-vm + gather_video_facts: false + delegate_to: localhost + register: video_facts + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>video_status</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the virtual machine's video card after managing them</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'auto_detect': False, 'display_number': 2, 'enable_3D_support': True, 'memory_3D': 524288, 'renderer_3D': 'automatic', 'video_memory': 8192}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Diane Wang (@Tomorrow9) <dianew@vmware.com> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_acceptance_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_acceptance_module.rst new file mode 100644 index 00000000..8766c25e --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_acceptance_module.rst @@ -0,0 +1,334 @@ +.. _community.vmware.vmware_host_acceptance_module: + + +*************************************** +community.vmware.vmware_host_acceptance +*************************************** + +**Manage the host acceptance level of an ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to manage the host acceptance level of an ESXi host. +- The host acceptance level controls the acceptance level of each VIB on a ESXi host. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>acceptance_level</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>community</li> + <li>partner</li> + <li>vmware_accepted</li> + <li>vmware_certified</li> + </ul> + </td> + <td> + <div>Name of acceptance level.</div> + <div>If set to <code>partner</code>, then accept only partner and VMware signed and certified VIBs.</div> + <div>If set to <code>vmware_certified</code>, then accept only VIBs that are signed and certified by VMware.</div> + <div>If set to <code>vmware_accepted</code>, then accept VIBs that have been accepted by VMware.</div> + <div>If set to <code>community</code>, then accept all VIBs, even those that are not signed.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster.</div> + <div>Acceptance level of all ESXi host system in the given cluster will be managed.</div> + <div>If <code>esxi_hostname</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname.</div> + <div>Acceptance level of this ESXi host system will be managed.</div> + <div>If <code>cluster_name</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>list</b> ←</div></li> + <li>present</li> + </ul> + </td> + <td> + <div>Set or list acceptance level of the given ESXi host.</div> + <div>If set to <code>list</code>, then will return current acceptance level of given host system/s.</div> + <div>If set to <code>present</code>, then will set given acceptance level.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Set acceptance level to community for all ESXi Host in given Cluster + community.vmware.vmware_host_acceptance: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: cluster_name + acceptance_level: 'community' + state: present + delegate_to: localhost + register: cluster_acceptance_level + + - name: Set acceptance level to vmware_accepted for the given ESXi Host + community.vmware.vmware_host_acceptance: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + acceptance_level: 'vmware_accepted' + state: present + delegate_to: localhost + register: host_acceptance_level + + - name: Get acceptance level from the given ESXi Host + community.vmware.vmware_host_acceptance: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + state: list + delegate_to: localhost + register: host_acceptance_level + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>facts</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>facts</td> + <td> + <div>dict with hostname as key and dict with acceptance level facts, error as value</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'facts': {'localhost.localdomain': {'error': 'NA', 'level': 'vmware_certified'}}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_active_directory_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_active_directory_module.rst new file mode 100644 index 00000000..e312114c --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_active_directory_module.rst @@ -0,0 +1,343 @@ +.. _community.vmware.vmware_host_active_directory_module: + + +********************************************* +community.vmware.vmware_host_active_directory +********************************************* + +**Joins an ESXi host system to an Active Directory domain or leaves it** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to join or leave an ESXi host to or from an Active Directory domain. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ad_domain</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>AD Domain to join.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: domain, domain_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ad_password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>Password for AD domain join.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ad_state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>present</li> + <li><div style="color: blue"><b>absent</b> ←</div></li> + </ul> + </td> + <td> + <div>Whether the ESXi host is joined to an AD domain or not.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: state</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ad_user</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>Username for AD domain join.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster from which all host systems will be used.</div> + <div>This parameter is required if <code>esxi_hostname</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the host system to work with.</div> + <div>This parameter is required if <code>cluster_name</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Join an AD domain + community.vmware.vmware_host_active_directory: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + ad_domain: example.local + ad_user: adjoin + ad_password: Password123$ + ad_state: present + delegate_to: localhost + + - name: Leave AD domain + community.vmware.vmware_host_active_directory: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + ad_state: absent + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>results</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about host system's AD domain join state</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'esxi01': {'changed': True, 'domain': 'example.local', 'membership_state': 'ok', 'msg': 'Host joined to AD domain', 'ad_state': 'present', 'ad_state_current': 'present', 'ad_state_previous': 'absent'}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Christian Kotte (@ckotte) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_auto_start_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_auto_start_module.rst new file mode 100644 index 00000000..cb44f4a6 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_auto_start_module.rst @@ -0,0 +1,609 @@ +.. _community.vmware.vmware_host_auto_start_module: + + +*************************************** +community.vmware.vmware_host_auto_start +*************************************** + +**Manage the auto power ON or OFF for vm on ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- In this module, can set up automatic startup and shutdown of virtual machines according to host startup or shutdown. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname where the VM to set auto power on or off exists.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>name</code> or <code>uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>VM name to set auto power on or off.</div> + <div>This is not necessary if change only system default VM settings for autoStart config.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>power_info</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{"start_action": "none", "start_delay": -1, "start_order": -1, "stop_action": "systemDefault", "stop_delay": -1, "wait_for_heartbeat": "systemDefault"}</div> + </td> + <td> + <div>Startup or shutdown settings of virtual machine.</div> + <div>This setting will override the system defaults.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>start_action</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>none</b> ←</div></li> + <li>powerOn</li> + </ul> + </td> + <td> + <div>Whether to start the virtual machine when the host startup.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>start_delay</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">-1</div> + </td> + <td> + <div>Auto start delay in seconds of virtual machine.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>start_order</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">-1</div> + </td> + <td> + <div>The autostart priority of virtual machine.</div> + <div>Virtual machines with a lower number are powered on first.</div> + <div>On host shutdown, the virtual machines are shut down in reverse order, meaning those with a higher number are powered off first.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>stop_action</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>none</li> + <li><div style="color: blue"><b>systemDefault</b> ←</div></li> + <li>powerOff</li> + <li>suspend</li> + </ul> + </td> + <td> + <div>Stop action executed on the virtual machine when the system stops of virtual machine.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>stop_delay</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">-1</div> + </td> + <td> + <div>Auto stop delay in seconds of virtual machine.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>wait_for_heartbeat</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + <li><div style="color: blue"><b>systemDefault</b> ←</div></li> + </ul> + </td> + <td> + <div>Continue power on processing when VMware Tools started.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>system_defaults</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>System defaults for auto-start or auto-stop config for virtual machine.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enable automatically start or stop of virtual machines.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>start_delay</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">120</div> + </td> + <td> + <div>Default auto start delay in seconds.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>stop_action</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>none</li> + <li>guestShutdown</li> + <li><div style="color: blue"><b>powerOff</b> ←</div></li> + <li>suspend</li> + </ul> + </td> + <td> + <div>Default stop action executed on the virtual machine when the system stops.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>stop_delay</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">120</div> + </td> + <td> + <div>Default auto stop delay in seconds.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>wait_for_heartbeat</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Continue power on processing when VMware Tools started.</div> + <div>If this parameter is enabled to powers on the next virtual machine without waiting for the delay to pass.</div> + <div>However, the virtual machine must have VMware Tools installed.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>VM uuid to set auto power on or off, this is VMware's unique identifier.</div> + <div>This is required if <code>name</code> is not supplied.</div> + <div>This is not necessary if change only system default VM settings for autoStart config.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + --- + - name: Update for system defaults config. + community.vmware.vmware_host_auto_start: + hostname: "{{ hostname }}" + username: "{{ username }}" + password: "{{ password }}" + esxi_hostname: "{{ esxi_hostname }}" + system_defaults: + enabled: true + start_delay: 100 + stop_action: guestShutdown + + - name: Update for powerInfo config of virtual machine. + community.vmware.vmware_host_auto_start: + hostname: "{{ hostname }}" + username: "{{ username }}" + password: "{{ password }}" + esxi_hostname: "{{ esxi_hostname }}" + name: "{{ vm_name }}" + power_info: + start_action: powerOn + start_delay: 10 + start_order: 1 + stop_action: powerOff + wait_for_heartbeat: true + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>power_info_config</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>changed</td> + <td> + <div>Parameter return when virtual machine power info config is changed.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{ + "start_action": "powerOn", + "start_delay": -1, + "start_order": -1, + "stop_action": "systemDefault", + "stop_delay": -1, + "wait_for_heartbeat": "systemDefault" + }</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>system_defaults_config</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>changed</td> + <td> + <div>Parameter return when system defaults config is changed.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{ + "enabled": true, + "start_delay": 120, + "stop_action": "powerOff", + "stop_delay": 120, + "wait_for_heartbeat": false + }</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- sky-joker (@sky-joker) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_capability_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_capability_info_module.rst new file mode 100644 index 00000000..ba9a11b4 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_capability_info_module.rst @@ -0,0 +1,271 @@ +.. _community.vmware.vmware_host_capability_info_module: + + +******************************************** +community.vmware.vmware_host_capability_info +******************************************** + +**Gathers info about an ESXi host's capability information** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about an ESXi host's capability information when ESXi hostname or Cluster name is given. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster from all host systems to be used for information gathering.</div> + <div>If <code>esxi_hostname</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname to gather information from.</div> + <div>If <code>cluster_name</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather capability info about all ESXi Host in given Cluster + community.vmware.vmware_host_capability_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: cluster_name + delegate_to: localhost + register: all_cluster_hosts_info + + - name: Gather capability info about ESXi Host + community.vmware.vmware_host_capability_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + delegate_to: localhost + register: hosts_info + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>hosts_capability_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about host's capability info</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'esxi_hostname_0001': {'accel3dSupported': False, 'backgroundSnapshotsSupported': False, 'checkpointFtCompatibilityIssues': [], 'checkpointFtSupported': False, 'cloneFromSnapshotSupported': True, 'cpuHwMmuSupported': True}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_config_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_config_info_module.rst new file mode 100644 index 00000000..b7ed1f01 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_config_info_module.rst @@ -0,0 +1,269 @@ +.. _community.vmware.vmware_host_config_info_module: + + +**************************************** +community.vmware.vmware_host_config_info +**************************************** + +**Gathers info about an ESXi host's advance configuration information** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about an ESXi host's advance configuration information when ESXi hostname or Cluster name is given. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster from which the ESXi host belong to.</div> + <div>If <code>esxi_hostname</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname to gather information from.</div> + <div>If <code>cluster_name</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather info about all ESXi Host in given Cluster + community.vmware.vmware_host_config_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: cluster_name + delegate_to: localhost + + - name: Gather info about ESXi Host + community.vmware.vmware_host_config_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>hosts_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>dict with hostname as key and dict with host config information</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'10.76.33.226': {'Annotations.WelcomeMessage': '', 'BufferCache.FlushInterval': 30000, 'BufferCache.HardMaxDirty': 95, 'BufferCache.PerFileHardMaxDirty': 50, 'BufferCache.SoftMaxDirty': 15}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_config_manager_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_config_manager_module.rst new file mode 100644 index 00000000..fb47d56c --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_config_manager_module.rst @@ -0,0 +1,273 @@ +.. _community.vmware.vmware_host_config_manager_module: + + +******************************************* +community.vmware.vmware_host_config_manager +******************************************* + +**Manage advanced system settings of an ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to manage advanced system settings of an ESXi host when ESXi hostname or Cluster name is given. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster.</div> + <div>Settings are applied to every ESXi host in given cluster.</div> + <div>If <code>esxi_hostname</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname.</div> + <div>Settings are applied to this ESXi host.</div> + <div>If <code>cluster_name</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>options</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{}</div> + </td> + <td> + <div>A dictionary of advanced system settings.</div> + <div>Invalid options will cause module to error.</div> + <div>Note that the list of advanced options (with description and values) can be found by running `vim-cmd hostsvc/advopt/options`.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Manage Log level setting for all ESXi hosts in given Cluster + community.vmware.vmware_host_config_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: cluster_name + options: + 'Config.HostAgent.log.level': 'info' + delegate_to: localhost + + - name: Manage Log level setting for an ESXi host + community.vmware.vmware_host_config_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + options: + 'Config.HostAgent.log.level': 'verbose' + delegate_to: localhost + + - name: Manage multiple settings for an ESXi host + community.vmware.vmware_host_config_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + options: + 'Config.HostAgent.log.level': 'verbose' + 'Annotations.WelcomeMessage': 'Hello World' + 'Config.HostAgent.plugins.solo.enableMob': false + delegate_to: localhost + + + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_custom_attributes_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_custom_attributes_module.rst new file mode 100644 index 00000000..ef0d6070 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_custom_attributes_module.rst @@ -0,0 +1,337 @@ +.. _community.vmware.vmware_host_custom_attributes_module: + + +********************************************** +community.vmware.vmware_host_custom_attributes +********************************************** + +**Manage custom attributes from VMware for the given ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to add, remove and update custom attributes for the given ESXi host. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>attributes</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>A list of name and value of custom attributes that needs to be manage.</div> + <div>Value of custom attribute is not required and will be ignored, if <code>state</code> is set to <code>absent</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the attribute.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>value</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>Value of the attribute.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the ESXi host to work with.</div> + <div>This is a required parameter</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>The action to take.</div> + <div>If set to <code>present</code>, then custom attribute is added or updated.</div> + <div>If set to <code>absent</code>, then custom attribute is removed.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add ESXi host custom attributes + community.vmware.vmware_host_custom_attributes: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: host1 + state: present + attributes: + - name: MyAttribute + value: MyValue + delegate_to: localhost + register: attributes + + - name: Remove ESXi host Attribute + community.vmware.vmware_host_custom_attributes: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: host1 + state: absent + attributes: + - name: MyAttribute + delegate_to: localhost + register: attributes + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>custom_attributes</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>changed</td> + <td> + <div>metadata about the ESXi host attributes</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'mycustom': 'my_custom_value', 'mycustom_2': 'my_custom_value_2', 'sample_1': 'sample_1_value', 'sample_2': 'sample_2_value', 'sample_3': 'sample_3_value'}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Hunter Christain (@exp-hc) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_datastore_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_datastore_module.rst new file mode 100644 index 00000000..cd67e28c --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_datastore_module.rst @@ -0,0 +1,428 @@ +.. _community.vmware.vmware_host_datastore_module: + + +************************************** +community.vmware.vmware_host_datastore +************************************** + +**Manage a datastore on ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +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. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>auto_expand</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Expand a datastore capacity to full if it has free capacity.</div> + <div>This parameter can't be extend using another datastore.</div> + <div>A use case example in <em>auto_expand</em>, it can be used to expand a datastore capacity after increasing LUN volume.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datastore to add/remove.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>nfs</li> + <li>nfs41</li> + <li>vmfs</li> + </ul> + </td> + <td> + <div>Type of the datastore to configure (nfs/nfs41/vmfs).</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname to manage the datastore.</div> + <div>Required when used with a vcenter</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>nfs_path</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Resource path on NFS host.</div> + <div>Required if datastore type is set to <code>nfs</code>/<code>nfs41</code> and state is set to <code>present</code>, else unused.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>nfs_ro</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>ReadOnly or ReadWrite mount.</div> + <div>Unused if datastore type is not set to <code>nfs</code>/<code>nfs41</code> and state is not set to <code>present</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>nfs_server</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>NFS host serving nfs datastore.</div> + <div>Required if datastore type is set to <code>nfs</code>/<code>nfs41</code> and state is set to <code>present</code>, else unused.</div> + <div>Two or more servers can be defined if datastore type is set to <code>nfs41</code></div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>present: Mount datastore on host if datastore is absent else do nothing.</div> + <div>absent: Umount datastore if datastore is present else do nothing.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vmfs_device_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the device to be used as VMFS datastore.</div> + <div>Required for VMFS datastore type and state is set to <code>present</code>, else unused.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vmfs_version</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>VMFS version to use for datastore creation.</div> + <div>Unused if datastore type is not set to <code>vmfs</code> and state is not set to <code>present</code>.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - Kerberos authentication with NFS v4.1 isn't implemented + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - 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: 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 + 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: 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 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 + + + + +Status +------ + + +Authors +~~~~~~~ + +- Ludovic Rivallain (@lrivallain) <ludovic.rivallain@gmail.com> +- Christian Kotte (@ckotte) <christian.kotte@gmx.de> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_disk_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_disk_info_module.rst new file mode 100644 index 00000000..496407c3 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_disk_info_module.rst @@ -0,0 +1,295 @@ +.. _community.vmware.vmware_host_disk_info_module: + + +************************************** +community.vmware.vmware_host_disk_info +************************************** + +**Gathers information about disks attached to given ESXi host/s.** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module returns information about disks attached to given ESXi host/s +- If *cluster_name* is provided, then disk information about all hosts from the given cluster will be returned. +- If *esxi_hostname* is provided, then disk information about the given host system will be returned. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster from which the ESXi host belong to.</div> + <div>If <code>esxi_hostname</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname to gather information from.</div> + <div>If <code>cluster_name</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather info about vmhbas of all ESXi Host in the given Cluster + community.vmware.vmware_host_disk_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + delegate_to: localhost + register: cluster_host_vmhbas + + - name: Gather info about vmhbas of an ESXi Host + community.vmware.vmware_host_disk_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + delegate_to: localhost + register: host_vmhbas + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>hosts_disk_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>always</td> + <td> + <div>list of information for all disks attached to each ESXi host</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">"192.168.0.182": [ + { + "canonical_name": "naa.6000c296ed6217bd61df35622eb21a3a", + "capacity_mb": 4096, + "device_path": "/vmfs/devices/disks/naa.6000c296ed6217bd61df35622eb21a3a", + "device_type": "disk", + "device_ctd_list": [ + "vmhba0:C0:T1:L0" + ], + "disk_uid": "key-vim.host.ScsiDisk-02000000006000c296ed6217bd61df35622eb21a3a566972747561", + "display_name": "Local VMware Disk (naa.6000c296ed6217bd61df35622eb21a3a)" + }, + { + "canonical_name": "naa.6000c2968ad7142d93faae527fe8822b", + "capacity_mb": 204800, + "device_path": "/vmfs/devices/disks/naa.6000c2968ad7142d93faae527fe8822b", + "device_type": "disk", + "device_ctd_list": [ + "vmhba0:C0:T3:L0" + ], + "disk_uid": "key-vim.host.ScsiDisk-02000000006000c2968ad7142d93faae527fe8822b566972747561", + "display_name": "Local VMware Disk (naa.6000c2968ad7142d93faae527fe8822b)" + },]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Matt Proud (@laidbackware) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_dns_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_dns_info_module.rst new file mode 100644 index 00000000..166f0f2a --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_dns_info_module.rst @@ -0,0 +1,270 @@ +.. _community.vmware.vmware_host_dns_info_module: + + +************************************* +community.vmware.vmware_host_dns_info +************************************* + +**Gathers info about an ESXi host's DNS configuration information** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about an ESXi host's DNS configuration information when ESXi hostname or Cluster name is given. +- All parameters and VMware object names are case sensitive. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster from which the ESXi host belong to.</div> + <div>If <code>esxi_hostname</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname to gather information from.</div> + <div>If <code>cluster_name</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather DNS info about all ESXi Hosts in given Cluster + community.vmware.vmware_host_dns_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: cluster_name + delegate_to: localhost + + - name: Gather DNS info about ESXi Host + community.vmware.vmware_host_dns_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>hosts_dns_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about DNS config from given cluster / host system</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'DC0_C0_H0': {'dhcp': True, 'domain_name': 'localdomain', 'host_name': 'localhost', 'ip_address': ['8.8.8.8'], 'search_domain': ['localdomain'], 'virtual_nic_device': 'vmk0'}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_dns_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_dns_module.rst new file mode 100644 index 00000000..d566a485 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_dns_module.rst @@ -0,0 +1,422 @@ +.. _community.vmware.vmware_host_dns_module: + + +******************************** +community.vmware.vmware_host_dns +******************************** + +**Manage DNS configuration of an ESXi host system** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to configure DNS for the default TCP/IP stack on an ESXi host system. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster from which all host systems will be used.</div> + <div>This parameter is required if <code>esxi_hostname</code> is not specified and you connect to a vCenter.</div> + <div>Cannot be used when you connect directly to an ESXi host.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>device</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The VMkernel network adapter to obtain DNS settings from.</div> + <div>Needs to get its IP through DHCP, a static network configuration combined with a dynamic DNS configuration doesn't work.</div> + <div>The parameter is only required in case of <code>type</code> is set to <code>dhcp</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>dns_servers</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>A list of DNS servers to be used.</div> + <div>The order of the DNS servers is important as they are used consecutively in order.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>domain</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The domain name to be used for the ESXi host.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the host system to work with.</div> + <div>This parameter is required if <code>cluster_name</code> is not specified and you connect to a vCenter.</div> + <div>Cannot be used when you connect directly to an ESXi host.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>host_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname to be used for the ESXi host.</div> + <div>Cannot be used when configuring a complete cluster.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>search_domains</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>A list of domains to be searched through by the resolver.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>dhcp</li> + <li>static</li> + </ul> + </td> + <td> + <div>Type of DNS assignment. Either <code>dhcp</code> or <code>static</code>.</div> + <div>A VMkernel adapter needs to be set to DHCP if <code>type</code> is set to <code>dhcp</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>verbose</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Verbose output of the DNS server configuration change.</div> + <div>Explains if an DNS server was added, removed, or if the DNS server sequence was changed.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - This module is a replacement for the module ``vmware_dns_config`` + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Configure DNS for an ESXi host + community.vmware.vmware_host_dns: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + type: static + host_name: esx01 + domain: example.local + dns_servers: + - 192.168.1.10 + - 192.168.1.11 + search_domains: + - subdomain.example.local + - example.local + delegate_to: localhost + + - name: Configure DNS for all ESXi hosts of a cluster + community.vmware.vmware_host_dns: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + type: static + domain: example.local + dns_servers: + - 192.168.1.10 + - 192.168.1.11 + search_domains: + - subdomain.example.local + - example.local + delegate_to: localhost + + - name: Configure DNS via DHCP for an ESXi host + community.vmware.vmware_host_dns: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + type: dhcp + device: vmk0 + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>dns_config_result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about host system's DNS configuration</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'esx01.example.local': {'changed': True, 'dns_servers_changed': ['192.168.1.12', '192.168.1.13'], 'dns_servers': ['192.168.1.10', '192.168.1.11'], 'dns_servers_previous': ['192.168.1.10', '192.168.1.11', '192.168.1.12', '192.168.1.13'], 'domain': 'example.local', 'host_name': 'esx01', 'msg': 'DNS servers and Search domains changed', 'search_domains_changed': ['subdomain.example.local'], 'search_domains': ['subdomain.example.local', 'example.local'], 'search_domains_previous': ['example.local']}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Christian Kotte (@ckotte) +- Mario Lenz (@mariolenz) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_facts_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_facts_module.rst new file mode 100644 index 00000000..4553e106 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_facts_module.rst @@ -0,0 +1,368 @@ +.. _community.vmware.vmware_host_facts_module: + + +********************************** +community.vmware.vmware_host_facts +********************************** + +**Gathers facts about remote ESXi hostsystem** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gathers facts like CPU, memory, datastore, network and system etc. about ESXi host system. +- Please specify hostname or IP address of ESXi host system as ``hostname``. +- If hostname or IP address of vCenter is provided as ``hostname`` and ``esxi_hostname`` is not specified, then the module will throw an error. +- VSAN facts added in 2.7 version. +- SYSTEM fact uuid added in 2.10 version. +- Connection state fact added in VMware collection 2.6.0. +- Please note that when ESXi host connection state is not ``connected``, facts returned from vCenter might be stale. Users are recommended to check connection state value and take appropriate decision in the playbook. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname.</div> + <div>Host facts about the specified ESXi server will be returned.</div> + <div>By specifying this option, you can select which ESXi hostsystem is returned if connecting to a vCenter.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>properties</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify the properties to retrieve.</div> + <div>If not specified, all properties are retrieved (deeply).</div> + <div>Results are returned in a structure identical to the vsphere API.</div> + <div>Example:</div> + <div>properties: [</div> + <div>"hardware.memorySize",</div> + <div>"hardware.cpuInfo.numCpuCores",</div> + <div>"config.product.apiVersion",</div> + <div>"overallStatus"</div> + <div>]</div> + <div>Only valid when <code>schema</code> is <code>vsphere</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>schema</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>summary</b> ←</div></li> + <li>vsphere</li> + </ul> + </td> + <td> + <div>Specify the output schema desired.</div> + <div>The 'summary' output schema is the legacy output from the module</div> + <div>The 'vsphere' output schema is the vSphere API class definition which requires pyvmomi>6.7.1</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>show_tag</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Tags related to Host are shown if set to <code>True</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather vmware host facts + community.vmware.vmware_host_facts: + hostname: "{{ esxi_server }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + register: host_facts + delegate_to: localhost + + - name: Gather vmware host facts from vCenter + community.vmware.vmware_host_facts: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ esxi_hostname }}" + register: host_facts + delegate_to: localhost + + - name: Gather vmware host facts from vCenter with tag information + community.vmware.vmware_host_facts: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ esxi_hostname }}" + show_tag: True + register: host_facts_tag + delegate_to: localhost + + - name: Get VSAN Cluster UUID from host facts + community.vmware.vmware_host_facts: + hostname: "{{ esxi_server }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + register: host_facts + - set_fact: + cluster_uuid: "{{ host_facts['ansible_facts']['vsan_cluster_uuid'] }}" + + - name: Gather some info from a host using the vSphere API output schema + community.vmware.vmware_host_facts: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ esxi_hostname }}" + schema: vsphere + properties: + - hardware.memorySize + - hardware.cpuInfo.numCpuCores + - config.product.apiVersion + - overallStatus + register: host_facts + + - name: Gather information about powerstate and connection state + community.vmware.vmware_host_facts: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ esxi_hostname }}" + schema: vsphere + properties: + - runtime.connectionState + - runtime.powerState + + - name: How to retrieve Product, Version, Build, Update info for ESXi from vCenter + block: + - name: Gather product version info for ESXi from vCenter + community.vmware.vmware_host_facts: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ esxi_hostname }}" + schema: vsphere + properties: + - config.product + - config.option + register: gather_host_facts_result + + - name: Extract update level info from option properties + set_fact: + update_level_info: "{{ item.value }}" + loop: "{{ gather_host_facts_result.ansible_facts.config.option }}" + when: + - item.key == 'Misc.HostAgentUpdateLevel' + + - name: The output of Product, Version, Build, Update info for ESXi + debug: + msg: + - "Product : {{ gather_host_facts_result.ansible_facts.config.product.name }}" + - "Version : {{ gather_host_facts_result.ansible_facts.config.product.version }}" + - "Build : {{ gather_host_facts_result.ansible_facts.config.product.build }}" + - "Update : {{ update_level_info }}" + + + + +Status +------ + + +Authors +~~~~~~~ + +- Wei Gao (@woshihaoren) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_feature_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_feature_info_module.rst new file mode 100644 index 00000000..9ccf0e1e --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_feature_info_module.rst @@ -0,0 +1,279 @@ +.. _community.vmware.vmware_host_feature_info_module: + + +***************************************** +community.vmware.vmware_host_feature_info +***************************************** + +**Gathers info about an ESXi host's feature capability information** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about an ESXi host's feature capability information when ESXi hostname or Cluster name is given. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster from all host systems to be used for information gathering.</div> + <div>If <code>esxi_hostname</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname to gather information from.</div> + <div>If <code>cluster_name</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather feature capability info about all ESXi Hosts in given Cluster + community.vmware.vmware_host_feature_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + delegate_to: localhost + register: all_cluster_hosts_info + + - name: Check if ESXi is vulnerable for Speculative Store Bypass Disable (SSBD) vulnerability + community.vmware.vmware_host_feature_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ esxi_hostname }}" + register: features_set + - set_fact: + ssbd : "{{ item.value }}" + loop: "{{ features_set.host_feature_info[esxi_hostname] |json_query(name) }}" + vars: + name: "[?key=='cpuid.SSBD']" + - assert: + that: + - ssbd|int == 1 + when: ssbd is defined + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>hosts_feature_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about host's feature capability information</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'10.76.33.226': [{'feature_name': 'cpuid.3DNOW', 'key': 'cpuid.3DNOW', 'value': '0'}, {'feature_name': 'cpuid.3DNOWPLUS', 'key': 'cpuid.3DNOWPLUS', 'value': '0'}]}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_firewall_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_firewall_info_module.rst new file mode 100644 index 00000000..295e750e --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_firewall_info_module.rst @@ -0,0 +1,269 @@ +.. _community.vmware.vmware_host_firewall_info_module: + + +****************************************** +community.vmware.vmware_host_firewall_info +****************************************** + +**Gathers info about an ESXi host's firewall configuration information** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about an ESXi host's firewall configuration information when ESXi hostname or Cluster name is given. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster from which the ESXi host belong to.</div> + <div>If <code>esxi_hostname</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname to gather information from.</div> + <div>If <code>cluster_name</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather firewall info about all ESXi Host in given Cluster + community.vmware.vmware_host_firewall_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: cluster_name + delegate_to: localhost + + - name: Gather firewall info about ESXi Host + community.vmware.vmware_host_firewall_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>hosts_firewall_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>on success</td> + <td> + <div>metadata about host's firewall configuration</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'esxi_hostname_0001': [{'allowed_hosts': {'all_ip': True, 'ip_address': ['10.10.10.1'], 'ip_network': ['11.111.112.0/22', '192.168.10.1/24']}, 'enabled': True, 'key': 'CIMHttpServer', 'rule': [{'direction': 'inbound', 'end_port': None, 'port': 5988, 'port_type': 'dst', 'protocol': 'tcp'}], 'service': 'sfcbd-watchdog'}]}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_firewall_manager_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_firewall_manager_module.rst new file mode 100644 index 00000000..3a1496b3 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_firewall_manager_module.rst @@ -0,0 +1,464 @@ +.. _community.vmware.vmware_host_firewall_manager_module: + + +********************************************* +community.vmware.vmware_host_firewall_manager +********************************************* + +**Manage firewall configurations about an ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to manage firewall configurations about an ESXi host when ESXi hostname or Cluster name is given. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="3">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster.</div> + <div>Firewall settings are applied to every ESXi host system in given cluster.</div> + <div>If <code>esxi_hostname</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname.</div> + <div>Firewall settings are applied to this ESXi host system.</div> + <div>If <code>cluster_name</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>rules</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>A list of Rule set which needs to be managed.</div> + <div>Each member of list is rule set name and state to be set the rule.</div> + <div>Both rule name and rule state are required parameters.</div> + <div>Additional IPs and networks can also be specified</div> + <div>Please see examples for more information.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>allowed_hosts</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Define the allowed hosts for this rule set.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>all_ip</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether all hosts should be allowed or not.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ip_address</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>List of allowed IP addresses.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ip_network</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>List of allowed IP networks.</div> + </td> + </tr> + + <tr> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether the rule set is enabled or not.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Rule set name.</div> + </td> + </tr> + + <tr> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Enable vvold rule set for all ESXi Host in given Cluster + community.vmware.vmware_host_firewall_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: cluster_name + rules: + - name: vvold + enabled: True + allowed_hosts: + all_ip: True + delegate_to: localhost + + - name: Enable vvold rule set for an ESXi Host + community.vmware.vmware_host_firewall_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + rules: + - name: vvold + enabled: True + allowed_hosts: + all_ip: True + delegate_to: localhost + + - name: Manage multiple rule set for an ESXi Host + community.vmware.vmware_host_firewall_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + rules: + - name: vvold + enabled: True + allowed_hosts: + all_ip: True + - name: CIMHttpServer + enabled: False + delegate_to: localhost + + - name: Manage IP and network based firewall permissions for ESXi + community.vmware.vmware_host_firewall_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + rules: + - name: gdbserver + enabled: True + allowed_hosts: + all_ip: False + ip_address: + - 192.168.20.10 + - 192.168.20.11 + - name: CIMHttpServer + enabled: True + allowed_hosts: + all_ip: False + ip_network: + - 192.168.100.0/24 + - name: remoteSerialPort + enabled: True + allowed_hosts: + all_ip: False + ip_address: + - 192.168.100.11 + ip_network: + - 192.168.200.0/24 + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>rule_set_state</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>success</td> + <td> + <div>dict with hostname as key and dict with firewall rule set facts as value</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'rule_set_state': {'localhost.localdomain': {'CIMHttpServer': {'current_state': False, 'desired_state': False, 'previous_state': True, 'allowed_hosts': {'current_allowed_all': True, 'previous_allowed_all': True, 'desired_allowed_all': True, 'current_allowed_ip': [], 'previous_allowed_ip': [], 'desired_allowed_ip': [], 'current_allowed_networks': [], 'previous_allowed_networks': [], 'desired_allowed_networks': []}}, 'remoteSerialPort': {'current_state': True, 'desired_state': True, 'previous_state': True, 'allowed_hosts': {'current_allowed_all': False, 'previous_allowed_all': True, 'desired_allowed_all': False, 'current_allowed_ip': ['192.168.100.11'], 'previous_allowed_ip': [], 'desired_allowed_ip': ['192.168.100.11'], 'current_allowed_networks': ['192.168.200.0/24'], 'previous_allowed_networks': [], 'desired_allowed_networks': ['192.168.200.0/24']}}}}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) +- Aaron Longchamps (@alongchamps) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_hyperthreading_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_hyperthreading_module.rst new file mode 100644 index 00000000..6c80ae45 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_hyperthreading_module.rst @@ -0,0 +1,303 @@ +.. _community.vmware.vmware_host_hyperthreading_module: + + +******************************************* +community.vmware.vmware_host_hyperthreading +******************************************* + +**Enables/Disables Hyperthreading optimization for an ESXi host system** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to enable or disable Hyperthreading optimization for ESXi host systems in given vCenter infrastructure. +- It also checks if Hyperthreading is activated/deactivated and if the host needs to be restarted. +- The module informs the user if Hyperthreading is enabled but inactive because the processor is vulnerable to L1 Terminal Fault (L1TF). + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster from which all host systems will be used.</div> + <div>This parameter is required if <code>esxi_hostname</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the host system to work with.</div> + <div>This parameter is required if <code>cluster_name</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>enabled</b> ←</div></li> + <li>disabled</li> + </ul> + </td> + <td> + <div>Enable or disable Hyperthreading.</div> + <div>You need to reboot the ESXi host if you change the configuration.</div> + <div>Make sure that Hyperthreading is enabled in the BIOS. Otherwise, it will be enabled, but never activated.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Enable Hyperthreading for an host system + community.vmware.vmware_host_hyperthreading: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + state: enabled + delegate_to: localhost + + - name: Disable Hyperthreading for an host system + community.vmware.vmware_host_hyperthreading: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + state: disabled + delegate_to: localhost + + - name: Disable Hyperthreading for all host systems from cluster + community.vmware.vmware_host_hyperthreading: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + state: disabled + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>results</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about host system's Hyperthreading configuration</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'esxi01': {'msg': "Hyperthreading is already enabled and active for host 'esxi01'", 'state_current': 'active', 'state': 'enabled'}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Christian Kotte (@ckotte) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_inventory_inventory.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_inventory_inventory.rst new file mode 100644 index 00000000..5a2a5669 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_inventory_inventory.rst @@ -0,0 +1,776 @@ +.. _community.vmware.vmware_host_inventory_inventory: + + +************************************** +community.vmware.vmware_host_inventory +************************************** + +**VMware ESXi hostsystem inventory source** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Get VMware ESXi hostsystem as inventory hosts from VMware environment. +- Uses any file which ends with vmware.yml, vmware.yaml, vmware_host_inventory.yml, or vmware_host_inventory.yaml as a YAML configuration file. + + + +Requirements +------------ +The below requirements are needed on the local Ansible controller node that executes this inventory. + +- vSphere Automation SDK - For tag feature + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th>Configuration</th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cache</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div> ini entries: + <p>[inventory]<br>cache = no</p> + </div> + <div>env:ANSIBLE_INVENTORY_CACHE</div> + </td> + <td> + <div>Toggle to enable/disable the caching of the inventory's source data, requires a cache plugin setup to work.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cache_connection</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div> ini entries: + <p>[defaults]<br>fact_caching_connection = VALUE</p> + <p>[inventory]<br>cache_connection = VALUE</p> + </div> + <div>env:ANSIBLE_CACHE_PLUGIN_CONNECTION</div> + <div>env:ANSIBLE_INVENTORY_CACHE_CONNECTION</div> + </td> + <td> + <div>Cache connection data or path, read cache plugin documentation for specifics.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cache_plugin</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"memory"</div> + </td> + <td> + <div> ini entries: + <p>[defaults]<br>fact_caching = memory</p> + <p>[inventory]<br>cache_plugin = memory</p> + </div> + <div>env:ANSIBLE_CACHE_PLUGIN</div> + <div>env:ANSIBLE_INVENTORY_CACHE_PLUGIN</div> + </td> + <td> + <div>Cache plugin to use for the inventory's source data.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cache_prefix</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">-</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"ansible_inventory_"</div> + </td> + <td> + <div> ini entries: + <p>[default]<br>fact_caching_prefix = ansible_inventory_</p> + <p>[defaults]<br>fact_caching_prefix = ansible_inventory_</p> + <p>[inventory]<br>cache_prefix = ansible_inventory_</p> + </div> + <div>env:ANSIBLE_CACHE_PLUGIN_PREFIX</div> + <div>env:ANSIBLE_INVENTORY_CACHE_PLUGIN_PREFIX</div> + </td> + <td> + <div>Prefix to use for cache plugin files/tables</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cache_timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">3600</div> + </td> + <td> + <div> ini entries: + <p>[defaults]<br>fact_caching_timeout = 3600</p> + <p>[inventory]<br>cache_timeout = 3600</p> + </div> + <div>env:ANSIBLE_CACHE_PLUGIN_TIMEOUT</div> + <div>env:ANSIBLE_INVENTORY_CACHE_TIMEOUT</div> + </td> + <td> + <div>Cache duration in seconds</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>compose</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{}</div> + </td> + <td> + </td> + <td> + <div>Create vars from jinja2 expressions.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>filters</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + </td> + <td> + <div>This option allows client-side filtering hosts with jinja templating.</div> + <div>When server-side filtering is introduced, it should be preferred over this.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>groups</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{}</div> + </td> + <td> + </td> + <td> + <div>Add hosts to group based on Jinja2 conditionals.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">-</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>env:VMWARE_HOST</div> + <div>env:VMWARE_SERVER</div> + </td> + <td> + <div>Name of vCenter or ESXi server.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostnames</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">["name"]</div> + </td> + <td> + </td> + <td> + <div>A list of templates in order of precedence to compose inventory_hostname.</div> + <div>Ignores template if resulted in an empty string or None value.</div> + <div>You can use property specified in <em>properties</em> as variables in the template.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>keyed_groups</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[{"key": "summary.runtime.powerState", "separator": ""}]</div> + </td> + <td> + </td> + <td> + <div>Add hosts to group based on the values of a variable.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>default_value</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.12</div> + </td> + <td> + </td> + <td> + </td> + <td> + <div>The default value when the host variable's value is an empty string.</div> + <div>This option is mutually exclusive with <code>trailing_separator</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>key</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + </td> + <td> + <div>The key from input dictionary used to generate groups</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>parent_group</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + </td> + <td> + <div>parent group for keyed group</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>prefix</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + </td> + <td> + <div>A keyed group name will start with this prefix</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>separator</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"_"</div> + </td> + <td> + </td> + <td> + <div>separator used to build the keyed group name</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>trailing_separator</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.12</div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + </td> + <td> + <div>Set this option to <em>False</em> to omit the <code>separator</code> after the host variable when the value is an empty string.</div> + <div>This option is mutually exclusive with <code>default_value</code>.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>leading_separator</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.11</div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"yes"</div> + </td> + <td> + </td> + <td> + <div>Use in conjunction with keyed_groups.</div> + <div>By default, a keyed group that does not have a prefix or a separator provided will have a name that starts with an underscore.</div> + <div>This is because the default prefix is "" and the default separator is "_".</div> + <div>Set this option to False to omit the leading underscore (or other separator) if no prefix is given.</div> + <div>If the group name is derived from a mapping the separator is still used to concatenate the items.</div> + <div>To not use a separator in the group name at all, set the separator for the keyed group to an empty string instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">-</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>env:VMWARE_PASSWORD</div> + </td> + <td> + <div>Password of vSphere user.</div> + <div>Accepts vault encrypted variable.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>env:VMWARE_PORT</div> + </td> + <td> + <div>Port number used to connect to vCenter or ESXi Server.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>properties</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">["name", "customValue", "summary.runtime.powerState"]</div> + </td> + <td> + </td> + <td> + <div>Specify the list of VMware schema properties associated with the ESXi hostsystem.</div> + <div>These properties will be populated in hostvars of the given ESXi hostsystem.</div> + <div>Each value in the list can be a path to a specific property in hostsystem object or a path to a collection of hostsystem objects.</div> + <div><code>summary.runtime.powerState</code> are required if <code>keyed_groups</code> is set to default.</div> + <div>Please make sure that all the properties that are used in other parameters are included in this options.</div> + <div>In addition to ESXi hostsystem's properties, the following are special values</div> + <div>Use <code>customValue</code> to populate ESXi hostsystem's custom attributes. <code>customValue</code> is only supported by vCenter and not by ESXi.</div> + <div>Use <code>all</code> to populate all the properties of the virtual machine. The value <code>all</code> is time consuming operation, do not use unless required absolutely.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>env:VMWARE_PROXY_HOST</div> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>This feature depends on a version of pyvmomi>=v6.7.1.2018.12.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>env:VMWARE_PROXY_PORT</div> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>resources</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + </td> + <td> + <div>A list of resources to limit search scope.</div> + <div>Each resource item is represented by exactly one <code>'vim_type_snake_case</code>:<code>list of resource names</code> pair and optional nested <em>resources</em></div> + <div>Key name is based on snake case of a vim type name; e.g <code>host_system</code> correspond to <code>vim.HostSystem</code></div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>strict</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + </td> + <td> + <div>If <code>yes</code> make invalid entries a fatal error, otherwise skip and continue.</div> + <div>Since it is possible to use facts in the expressions they might not always be available and we ignore those errors by default.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_extra_vars</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.11</div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div> ini entries: + <p>[inventory_plugins]<br>use_extra_vars = no</p> + </div> + <div>env:ANSIBLE_INVENTORY_USE_EXTRA_VARS</div> + </td> + <td> + <div>Merge extra vars into the available variables for composition (highest precedence).</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">-</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>env:VMWARE_USER</div> + <div>env:VMWARE_USERNAME</div> + </td> + <td> + <div>Name of vSphere user.</div> + <div>Accepts vault encrypted variable.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>env:VMWARE_VALIDATE_CERTS</div> + </td> + <td> + <div>Allows connection when SSL certificates are not valid.</div> + <div>Set to <code>false</code> when certificates are not trusted.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>with_nested_properties</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + </td> + <td> + <div>This option transform flatten properties name to nested dictionary.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>with_path</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + </td> + <td> + <div>Include ESXi hostsystem's path.</div> + <div>Set this option to a string value to replace root name from <em>'Datacenters'</em>.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>with_sanitized_property_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + </td> + <td> + <div>This option allows property name sanitization to create safe property names for use in Ansible.</div> + <div>Also, transforms property name to snake case.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>with_tags</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + </td> + <td> + <div>Include tags and associated hosts.</div> + <div>Requires 'vSphere Automation SDK' library to be installed on the given controller machine.</div> + <div>Please refer following URLs for installation steps</div> + <div><a href='https://code.vmware.com/web/sdk/7.0/vsphere-automation-python'>https://code.vmware.com/web/sdk/7.0/vsphere-automation-python</a></div> + </td> + </tr> + </table> + <br/> + + + + +Examples +-------- + +.. code-block:: yaml + + # Sample configuration file for VMware Host dynamic inventory + plugin: community.vmware.vmware_host_inventory + strict: False + hostname: 10.65.223.31 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + with_tags: True + + # Using compose + plugin: community.vmware.vmware_host_inventory + hostname: 10.65.223.31 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + properties: + - name + - summary + - config.lockdownMode + compose: + ansible_user: "'root'" + ansible_connection: "'ssh'" + + + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) + + +.. hint:: + Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up. diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_ipv6_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_ipv6_module.rst new file mode 100644 index 00000000..5ca3f39b --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_ipv6_module.rst @@ -0,0 +1,301 @@ +.. _community.vmware.vmware_host_ipv6_module: + + +********************************* +community.vmware.vmware_host_ipv6 +********************************* + +**Enables/Disables IPv6 support for an ESXi host system** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to enable or disable IPv6 support for ESXi host systems in given vCenter infrastructure. +- It also checks if the host needs to be restarted. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster from which all host systems will be used.</div> + <div>This is required parameter if <code>esxi_hostname</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the host system to work with.</div> + <div>This is required parameter if <code>cluster_name</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>enabled</b> ←</div></li> + <li>disabled</li> + </ul> + </td> + <td> + <div>Enable or disable IPv6 support.</div> + <div>You need to reboot the ESXi host if you change the configuration.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Enable IPv6 for an host system + community.vmware.vmware_host_ipv6: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + state: enabled + delegate_to: localhost + + - name: Disable IPv6 for an host system + community.vmware.vmware_host_ipv6: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + state: disabled + delegate_to: localhost + + - name: Disable IPv6 for all host systems from cluster + community.vmware.vmware_host_ipv6: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + state: disabled + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about host system's IPv6 configuration</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'esxi01': {'changed': False, 'msg': "IPv6 is already enabled and active for host 'esxi01'"}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Christian Kotte (@ckotte) <christian.kotte@gmx.de> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_iscsi_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_iscsi_info_module.rst new file mode 100644 index 00000000..216b0f0a --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_iscsi_info_module.rst @@ -0,0 +1,326 @@ +.. _community.vmware.vmware_host_iscsi_info_module: + + +*************************************** +community.vmware.vmware_host_iscsi_info +*************************************** + +**Gather iSCSI configuration information of ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about the iSCSI configuration of the ESXi host. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The ESXi hostname on which to gather iSCSI settings.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather iSCSI configuration information of ESXi host + community.vmware.vmware_host_iscsi_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ esxi_hostname }}" + register: iscsi_info + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>detected_iscsi_drives</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>always</td> + <td> + <div>list of detected iSCSI drive</div> + <div>added from version 1.9.0</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[ + { + "address": [ + "192.168.0.57:3260" + ], + "canonical_name": "naa.60014055f198fb3d0cb4bd7ae1f802e1", + "iscsi_name": "iqn.2021-03.local.iscsi-target:iscsi-storage.target0" + } + ]</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>iscsi_properties</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>dictionary of current iSCSI information</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{ + "iscsi_alias": "", + "iscsi_authentication_properties": { + "_vimtype": "vim.host.InternetScsiHba.AuthenticationProperties", + "chapAuthEnabled": false, + "chapAuthenticationType": "chapProhibited", + "chapInherited": null, + "chapName": "", + "chapSecret": "XXXXXXXXX", + "mutualChapAuthenticationType": "chapProhibited", + "mutualChapInherited": null, + "mutualChapName": "", + "mutualChapSecret": "XXXXXXXXX" + }, + "iscsi_enabled": true, + "iscsi_name": "iqn.1998-01.com.vmware:esxi-033f58ee", + "iscsi_send_targets": [ + { + "address": "192.168.0.1", + "authenticationProperties": { + "_vimtype": "vim.host.InternetScsiHba.AuthenticationProperties", + "chapAuthEnabled": false, + "chapAuthenticationType": "chapProhibited", + "chapInherited": true, + "chapName": "", + "chapSecret": "XXXXXXXXX", + "mutualChapAuthenticationType": "chapProhibited", + "mutualChapInherited": true, + "mutualChapName": "", + "mutualChapSecret": "XXXXXXXXX" + }, + "port": 3260 + } + ], + "iscsi_static_targets": [ + { + "address": "192.168.0.1", + "authenticationProperties": { + "_vimtype": "vim.host.InternetScsiHba.AuthenticationProperties", + "chapAuthEnabled": false, + "chapAuthenticationType": "chapProhibited", + "chapInherited": true, + "chapName": "", + "chapSecret": "XXXXXXXXX", + "mutualChapAuthenticationType": "chapProhibited", + "mutualChapInherited": true, + "mutualChapName": "", + "mutualChapSecret": "XXXXXXXXX" + }, + "iscsi_name": "iqn.2004-04.com.qnap:tvs-673:iscsi.vm3.2c580e", + "port": 3260 + } + ], + "port_bind": [], + "vmhba_name": "vmhba65" + }</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- sky-joker (@sky-joker) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_iscsi_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_iscsi_module.rst new file mode 100644 index 00000000..1e3b0e28 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_iscsi_module.rst @@ -0,0 +1,1148 @@ +.. _community.vmware.vmware_host_iscsi_module: + + +********************************** +community.vmware.vmware_host_iscsi +********************************** + +**Manage the iSCSI configuration of ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- In this module, can manage the iSCSI configuration of ESXi host + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="4">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The ESXi hostname on which to change iSCSI settings.</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>iscsi_config</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>The iSCSI configs.</div> + <div>This parameter is required if <em>state=present</em> or <em>state=absent</em>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>alias</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>The new value for the alias of the adapter.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>authentication</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>CHAP authentication parent settings for iSCSI.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>chap_auth_enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to enable CHAP authentication.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>chap_authentication_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>chapDiscouraged</li> + <li>chapPreferred</li> + <li>chapRequired</li> + <li><div style="color: blue"><b>chapProhibited</b> ←</div></li> + </ul> + </td> + <td> + <div>The preference for CHAP or non-CHAP protocol of CHAP if CHAP is enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>chap_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>CHAP user name if CHAP is enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>chap_secret</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The secret password of CHAP if CHAP is enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mutual_chap_authentication_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>chapProhibited</b> ←</div></li> + <li>chapRequired</li> + </ul> + </td> + <td> + <div>The preference for CHAP or non-CHAP protocol of Mutual-CHAP if CHAP is enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mutual_chap_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>The user name that the target needs to use to authenticate with the initiator if Mutual-CHAP is enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mutual_chap_secret</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The secret password of mutual CHAP if Mutual-CHAP is enabled.</div> + </td> + </tr> + + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>force</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Force port bind VMkernels to be removed.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>iscsi_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The name for the iSCSI HBA adapter.</div> + <div>This is iSCSI qualified name.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: initiator_iqn</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port_bind</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>The list of the VMkernels if use port bindings.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>send_target</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>The iSCSI dynamic target settings.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>address</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The IP address or hostname of the storage device.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>authentication</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>CHAP authentication settings of a dynamic target for iSCSI.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>chap_auth_enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to enable CHAP authentication.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>chap_authentication_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>chapDiscouraged</li> + <li>chapPreferred</li> + <li>chapRequired</li> + <li><div style="color: blue"><b>chapProhibited</b> ←</div></li> + </ul> + </td> + <td> + <div>The preference for CHAP or non-CHAP protocol of CHAP if CHAP is enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>chap_inherited</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Whether or not to inherit CHAP settings from the parent settings.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>chap_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>CHAP user name if CHAP is enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>chap_secret</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The secret password of CHAP if CHAP is enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mutual_chap_authentication_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>chapProhibited</b> ←</div></li> + <li>chapRequired</li> + </ul> + </td> + <td> + <div>The preference for CHAP or non-CHAP protocol of Mutual-CHAP if CHAP is enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mutual_chap_inherited</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Whether or not to inherit Mutual-CHAP settings from the parent settings.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mutual_chap_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>The user name that the target needs to use to authenticate with the initiator if Mutual-CHAP is enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mutual_chap_secret</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The secret password of mutual CHAP if Mutual-CHAP is enabled.</div> + </td> + </tr> + + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">3260</div> + </td> + <td> + <div>The TCP port of the storage device.</div> + <div>If not specified, the standard default of 3260 is used.</div> + </td> + </tr> + + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>static_target</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>The iSCSI static target settings.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>address</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The IP address or hostname of the storage device.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>authentication</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>CHAP authentication settings of a static target for iSCSI.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>chap_auth_enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to enable CHAP authentication.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>chap_authentication_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>chapDiscouraged</li> + <li>chapPreferred</li> + <li>chapRequired</li> + <li><div style="color: blue"><b>chapProhibited</b> ←</div></li> + </ul> + </td> + <td> + <div>The preference for CHAP or non-CHAP protocol of CHAP if CHAP is enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>chap_inherited</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Whether or not to inherit CHAP settings from the parent settings.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>chap_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>CHAP user name if CHAP is enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>chap_secret</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The secret password of CHAP if CHAP is enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mutual_chap_authentication_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>chapProhibited</b> ←</div></li> + <li>chapRequired</li> + </ul> + </td> + <td> + <div>The preference for CHAP or non-CHAP protocol of Mutual-CHAP if CHAP is enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mutual_chap_inherited</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Whether or not to inherit Mutual-CHAP settings from the parent settings.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mutual_chap_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>The user name that the target needs to use to authenticate with the initiator if Mutual-CHAP is enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mutual_chap_secret</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The secret password of mutual CHAP if Mutual-CHAP is enabled.</div> + </td> + </tr> + + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>iscsi_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the iSCSI target to connect to.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td class="elbow-placeholder"></td> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">3260</div> + </td> + <td> + <div>The TCP port of the storage device.</div> + <div>If not specified, the standard default of 3260 is used.</div> + </td> + </tr> + + <tr> + <td class="elbow-placeholder"></td> + <td colspan="3"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vmhba_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The iSCSI adapter name.</div> + </td> + </tr> + + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + <li>enabled</li> + <li>disabled</li> + </ul> + </td> + <td> + <div>If set to <code>present</code>, add the iSCSI target or the bind ports if they are not existing.</div> + <div>If set to <code>present</code>, update the iSCSI settings if they already exist and occur change.</div> + <div>If set to <code>absent</code>, remove the iSCSI target or the bind ports if they are existing.</div> + <div>If set to (enabled), enable the iSCSI of ESXi if the iSCSI is disabled.</div> + <div>If set to (disabled), disable the iSCSI of ESXi if the iSCSI is enabled.</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="4"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - 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 <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>iscsi_properties</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>changed</td> + <td> + <div>Parameter return when system defaults config is changed.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{ + "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" + }</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- sky-joker (@sky-joker) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_kernel_manager_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_kernel_manager_module.rst new file mode 100644 index 00000000..bc360bab --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_kernel_manager_module.rst @@ -0,0 +1,309 @@ +.. _community.vmware.vmware_host_kernel_manager_module: + + +******************************************* +community.vmware.vmware_host_kernel_manager +******************************************* + +**Manage kernel module options on ESXi hosts** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to manage kernel module options on ESXi hosts. +- All connected ESXi hosts in scope will be configured when specified. +- If a host is not connected at time of configuration, it will be marked as such in the output. +- Kernel module options may require a reboot to take effect which is not covered here. +- You can use :ref:`ansible.builtin.reboot <ansible.builtin.reboot_module>` or :ref:`community.vmware.vmware_host_powerstate <community.vmware.vmware_host_powerstate_module>` module to reboot all ESXi host systems. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the VMware cluster to work on.</div> + <div>All ESXi hosts in this cluster will be configured.</div> + <div>This parameter is required if <code>esxi_hostname</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the ESXi host to work on.</div> + <div>This parameter is required if <code>cluster_name</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>kernel_module_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the kernel module to be configured.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>kernel_module_option</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Specified configurations will be applied to the given module.</div> + <div>These values are specified in key=value pairs and separated by a space when there are multiple options.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Configure IPv6 to be off via tcpip4 kernel module + community.vmware.vmware_host_kernel_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + kernel_module_name: "tcpip4" + kernel_module_option: "ipv6=0" + + - name: Using cluster_name, configure vmw_psp_rr options + community.vmware.vmware_host_kernel_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ virtual_cluster_name }}' + kernel_module_name: "vmw_psp_rr" + kernel_module_option: "maxPathsPerDevice=2" + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>host_kernel_status</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>success</td> + <td> + <div>dict with information on what was changed, by ESXi host in scope.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'results': {'myhost01.example.com': {'changed': True, 'configured_options': 'ipv6=0', 'msg': 'Options have been changed on the kernel module', 'original_options': 'ipv6=1'}}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Aaron Longchamps (@alongchamps) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_lockdown_exceptions_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_lockdown_exceptions_module.rst new file mode 100644 index 00000000..a2097c12 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_lockdown_exceptions_module.rst @@ -0,0 +1,308 @@ +.. _community.vmware.vmware_host_lockdown_exceptions_module: + + +************************************************ +community.vmware.vmware_host_lockdown_exceptions +************************************************ + +**Manage Lockdown Mode Exception Users** + + +Version added: 3.1.0 + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to manage Lockdown Mode Exception Users. +- All parameters and VMware objects values are case sensitive. +- Please specify ``hostname`` as vCenter IP or hostname only, as lockdown operations are not possible from standalone ESXi server. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of cluster.</div> + <div>All host systems from given cluster used to manage exception users.</div> + <div>Required parameter, if <code>esxi_hostname</code> is not set.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>List of ESXi hostname to manage exception users.</div> + <div>Required parameter, if <code>cluster_name</code> is not set.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>exception_users</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>List of Lockdown Mode Exception Users.</div> + <div>To remove all Exception Users, <em>state=set</em> the empty list.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + <li>set</li> + </ul> + </td> + <td> + <div>If <code>present</code>, make sure the given users are defined as Lockdown Mode Exception Users.</div> + <div>If <code>absent</code>, make sure the given users are NO Lockdown Mode Exception Users.</div> + <div>If <code>set</code>, will replace Lockdown Mode Exception Users defined list of users.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Remove all Lockdown Mode Exception Users on a host + community.vmware.vmware_host_lockdown: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + exception_users: [] + state: set + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>results</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about exception users of Host systems</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'host_lockdown_exceptions': {'DC0_C0': {'current_exception_users': [], 'desired_exception_users': [], 'previous_exception_users': ['root']}}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Mario Lenz (@mariolenz) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_lockdown_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_lockdown_module.rst new file mode 100644 index 00000000..97c6e45e --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_lockdown_module.rst @@ -0,0 +1,336 @@ +.. _community.vmware.vmware_host_lockdown_module: + + +************************************* +community.vmware.vmware_host_lockdown +************************************* + +**Manage administrator permission for the local administrative account for the ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to manage administrator permission for the local administrative account for the host when ESXi hostname is given. +- All parameters and VMware objects values are case sensitive. +- This module is destructive as administrator permission are managed using APIs used, please read options carefully and proceed. +- Please specify ``hostname`` as vCenter IP or hostname only, as lockdown operations are not possible from standalone ESXi server. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of cluster.</div> + <div>All host systems from given cluster used to manage lockdown.</div> + <div>Required parameter, if <code>esxi_hostname</code> is not set.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>List of ESXi hostname to manage lockdown.</div> + <div>Required parameter, if <code>cluster_name</code> is not set.</div> + <div>See examples for specifications.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>disabled</li> + <li><div style="color: blue"><b>normal</b> ←</div></li> + <li>strict</li> + <li>present</li> + <li>absent</li> + </ul> + </td> + <td> + <div>State of hosts system</div> + <div>If set to <code>disabled</code>, all host systems will be removed from lockdown mode.</div> + <div>If host system is already out of lockdown mode and set to <code>disabled</code>, no action will be taken.</div> + <div>If set to <code>normal</code>, all host systems will be set in lockdown mode.</div> + <div>If host system is already in lockdown mode and set to <code>normal</code>, no action will be taken.</div> + <div>If set to <code>strict</code>, all host systems will be set in strict lockdown mode.</div> + <div>If host system is already in strict lockdown mode and set to <code>strict</code>, no action will be taken.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Enter host system into lockdown mode + community.vmware.vmware_host_lockdown: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + state: normal + delegate_to: localhost + + - name: Exit host systems from lockdown mode + community.vmware.vmware_host_lockdown: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + state: disabled + delegate_to: localhost + + - name: Enter host systems into lockdown mode + community.vmware.vmware_host_lockdown: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: + - '{{ esxi_hostname_1 }}' + - '{{ esxi_hostname_2 }}' + state: normal + delegate_to: localhost + + - name: Exit host systems from lockdown mode + community.vmware.vmware_host_lockdown: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: + - '{{ esxi_hostname_1 }}' + - '{{ esxi_hostname_2 }}' + state: disabled + delegate_to: localhost + + - name: Enter all host system from cluster into lockdown mode + community.vmware.vmware_host_lockdown: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + state: normal + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>results</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about state of Host system lock down</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'host_lockdown_state': {'DC0_C0': {'current_state': 'normal', 'previous_state': 'disabled', 'desired_state': 'normal'}}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_logbundle_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_logbundle_info_module.rst new file mode 100644 index 00000000..8d5ae651 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_logbundle_info_module.rst @@ -0,0 +1,245 @@ +.. _community.vmware.vmware_host_logbundle_info_module: + + +******************************************* +community.vmware.vmware_host_logbundle_info +******************************************* + +**Gathers manifest info for logbundle** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather manifest information for logbundle from ESXi. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the host system to fetch the manifests for logbundle.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: fetch the manifests for logbundle from ESXi + community.vmware.vmware_host_logbundle_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ esxi_hostname }}" + register: fetch_manifests_result + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>manifests</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>always</td> + <td> + <div>list of dictionary of manifest information for logbundle</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'enabled': 'true', 'group': 'System', 'id': 'System:Base', 'name': 'Base', 'vmOnly': 'false'}, {'enabled': 'false', 'group': 'System', 'id': 'System:BaseMinmal', 'name': 'BaseMinmal', 'vmOnly': 'false'}, {'enabled': 'true', 'group': 'Fcd', 'id': 'Fcd:Catalog', 'name': 'Catalog', 'vmOnly': 'false'}, {'enabled': 'false', 'group': 'VirtualMachines', 'id': 'VirtualMachines:CoreDumpHung', 'name': 'CoreDumpHung', 'vmOnly': 'true'}, {'enabled': 'true', 'group': 'System', 'id': 'System:CoreDumps', 'name': 'CoreDumps', 'vmOnly': 'false'}]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- sky-joker (@sky-joker) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_logbundle_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_logbundle_module.rst new file mode 100644 index 00000000..1a5029e2 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_logbundle_module.rst @@ -0,0 +1,340 @@ +.. _community.vmware.vmware_host_logbundle_module: + + +************************************** +community.vmware.vmware_host_logbundle +************************************** + +**Fetch logbundle file from ESXi** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to fetch logbundle file from ESXi. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>dest</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>file destination on localhost, path must be exist.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the host system to fetch the logbundle.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>manifests</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">["System:Base", "System:CoreDumps", "System:EsxImage", "System:IOFilter", "System:LoadESX", "System:Modules", "System:RDMA", "System:ResourceGroups", "System:TPM", "System:VFlash", "System:VMTools", "System:VmiofPlugins", "System:ntp", "System:uwstats", "Fcd:Catalog", "VirtualMachines:CoreDumps", "VirtualMachines:VirtualMachineStats", "VirtualMachines:base", "VirtualMachines:base", "VirtualMachines:diskinfo", "VirtualMachines:logs", "Storage:FCoE", "Storage:Multipathing", "Storage:NAS", "Storage:VSAN", "Storage:VSANHealth", "Storage:VSANIscsiTarget", "Storage:VSANPerfStats", "Storage:VSANPerfSvc", "Storage:VSANTraces", "Storage:VVOL", "Storage:base", "Storage:iodm", "Storage:iscsi", "FeatureStateSwitch:FeatureStateSwitch", "Userworld:HostAgent", "Userworld:ProcessInformation", "Configuration:System", "Logs:System", "hostProfiles:SystemImageCacheHostProfile", "hostProfiles:hostProfiles", "FileSystem:VMFSDiskDump", "FileSystem:base", "ActiveDirectory:base", "CIM:base", "Hardware:base", "Hardware:usb", "Installer:base", "Network:base", "Network:dvs", "Network:lacp", "Network:nscd", "Network:tcpip", "IntegrityChecks:md5sums"]</div> + </td> + <td> + <div>Logs to include in the logbundle file.</div> + <div>Refer to the id key of the <span class='module'>community.vmware.vmware_host_logbundle_info</span> module for values that can be specified in the manifest.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>performance_data</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Gather performance data for ESXi.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>duration</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">300</div> + </td> + <td> + <div>Duration for which performance data is gathered.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>interval</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">5</div> + </td> + <td> + <div>Interval for which performance data is gathered.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: fetch logbundle file from ESXi + community.vmware.vmware_host_logbundle: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ esxi_hostname }}" + dest: ./esxi-log.tgz + + - name: fetch logbundle file from ESXi with manifests + community.vmware.vmware_host_logbundle: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ esxi_hostname }}" + dest: ./esxi-log.tgz + manifests: + - System:Base + - VirtualMachines:VirtualMachineStats + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>dest</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>on success</td> + <td> + <div>saved path of a logbundle file for ESXi</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'changed': True, 'dest': './esxi-log.tgz', 'failed': False, 'gid': 0, 'group': 'root', 'mode': '0644', 'owner': 'root', 'size': 25783140, 'state': 'file', 'uid': 0}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- sky-joker (@sky-joker) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_module.rst new file mode 100644 index 00000000..e5e037d6 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_module.rst @@ -0,0 +1,533 @@ +.. _community.vmware.vmware_host_module: + + +**************************** +community.vmware.vmware_host +**************************** + +**Add, remove, or move an ESXi host to, from, or within vCenter** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to add, reconnect, or remove an ESXi host to or from vCenter. +- This module can also be used to move an ESXi host to a cluster or folder, or vice versa, within the same datacenter. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>add_connected</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>If set to <code>True</code>, then the host should be connected as soon as it is added.</div> + <div>This parameter is ignored if state is set to a value other than <code>present</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster to add the host.</div> + <div>If <code>folder</code> is not set, then this parameter is required.</div> + <div>Aliases added in version 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: cluster</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datacenter to add the host.</div> + <div>Aliases added in version 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname to manage.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi password.</div> + <div>Required for adding a host.</div> + <div>Optional for reconnect.</div> + <div>Unused for removing.</div> + <div>No longer a required parameter from version 2.5.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_ssl_thumbprint</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>Specifying the hostsystem certificate's thumbprint.</div> + <div>Use following command to get hostsystem certificate's thumbprint -</div> + <div># openssl x509 -in /etc/vmware/ssl/rui.crt -fingerprint -sha1 -noout</div> + <div>Only used if <code>fetch_thumbprint</code> isn't set to <code>true</code>.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: ssl_thumbprint</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi username.</div> + <div>Required for adding a host.</div> + <div>Optional for reconnect. If both <code>esxi_username</code> and <code>esxi_password</code> are used</div> + <div>Unused for removing.</div> + <div>No longer a required parameter from version 2.5.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>fetch_ssl_thumbprint</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Fetch the thumbprint of the host's SSL certificate.</div> + <div>This basically disables the host certificate verification (check if it was signed by a recognized CA).</div> + <div>Disable this option if you want to allow only hosts with valid certificates to be added to vCenter.</div> + <div>If this option is set to <code>false</code> and the certificate can't be verified, an add or reconnect will fail.</div> + <div>Unused when <code>esxi_ssl_thumbprint</code> is set.</div> + <div>Optional for reconnect, but only used if <code>esxi_username</code> and <code>esxi_password</code> are used.</div> + <div>Unused for removing.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the folder under which host to add.</div> + <div>If <code>cluster_name</code> is not set, then this parameter is required.</div> + <div>For example, if there is a datacenter 'dc1' under folder called 'Site1' then, this value will be '/Site1/dc1/host'.</div> + <div>Here 'host' is an invisible folder under VMware Web Client.</div> + <div>Another example, if there is a nested folder structure like '/myhosts/india/pune' under datacenter 'dc2', then <code>folder</code> value will be '/dc2/host/myhosts/india/pune'.</div> + <div>Other Examples: '/Site2/dc2/Asia-Cluster/host' or '/dc3/Asia-Cluster/host'</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: folder_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>force_connection</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Force the connection if the host is already being managed by another vCenter server.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>reconnect_disconnected</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Reconnect disconnected hosts.</div> + <div>This is only used if <code>state</code> is set to <code>present</code> and if the host already exists.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + <li>add_or_reconnect</li> + <li>reconnect</li> + <li>disconnected</li> + </ul> + </td> + <td> + <div>If set to <code>present</code>, add the host if host is absent.</div> + <div>If set to <code>present</code>, update the location of the host if host already exists.</div> + <div>If set to <code>absent</code>, remove the host if host is present.</div> + <div>If set to <code>absent</code>, do nothing if host already does not exists.</div> + <div>If set to <code>add_or_reconnect</code>, add the host if it's absent else reconnect it and update the location.</div> + <div>If set to <code>reconnect</code>, then reconnect the host if it's present and update the location.</div> + <div>If set to <code>disconnected</code>, disconnect the host if the host already exists.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - 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 + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>on successful addition</td> + <td> + <div>metadata about the new host system added</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">Host already connected to vCenter 'vcenter01' in cluster 'cluster01'</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Joseph Callen (@jcpowermac) +- Russell Teague (@mtnbikenc) +- Maxime de Roucy (@tchernomax) +- Christian Kotte (@ckotte) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_ntp_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_ntp_info_module.rst new file mode 100644 index 00000000..b4cf2be1 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_ntp_info_module.rst @@ -0,0 +1,273 @@ +.. _community.vmware.vmware_host_ntp_info_module: + + +************************************* +community.vmware.vmware_host_ntp_info +************************************* + +**Gathers info about NTP configuration on an ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about NTP configurations on an ESXi host. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster.</div> + <div>NTP config information about each ESXi server will be returned for the given cluster.</div> + <div>If <code>esxi_hostname</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname.</div> + <div>NTP config information about this ESXi server will be returned.</div> + <div>If <code>cluster_name</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather NTP info about all ESXi Host in the given Cluster + community.vmware.vmware_host_ntp_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: cluster_name + delegate_to: localhost + register: cluster_host_ntp + + - name: Gather NTP info about ESXi Host + community.vmware.vmware_host_ntp_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + delegate_to: localhost + register: host_ntp + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>hosts_ntp_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>hosts_ntp_info</td> + <td> + <div>dict with hostname as key and dict with NTP infos as value</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'10.76.33.226': [{'ntp_servers': [], 'time_zone_description': 'UTC', 'time_zone_gmt_offset': 0, 'time_zone_identifier': 'UTC', 'time_zone_name': 'UTC'}]}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_ntp_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_ntp_module.rst new file mode 100644 index 00000000..132900ea --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_ntp_module.rst @@ -0,0 +1,361 @@ +.. _community.vmware.vmware_host_ntp_module: + + +******************************** +community.vmware.vmware_host_ntp +******************************** + +**Manage NTP server configuration of an ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to configure, add or remove NTP servers from an ESXi host. +- If ``state`` is not given, the NTP servers will be configured in the exact sequence. +- User can specify an ESXi hostname or Cluster name. In case of cluster name, all ESXi hosts are updated. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster from which all host systems will be used.</div> + <div>This parameter is required if <code>esxi_hostname</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the host system to work with.</div> + <div>This parameter is required if <code>cluster_name</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ntp_servers</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>IP or FQDN of NTP server(s).</div> + <div>This accepts a list of NTP servers. For multiple servers, please look at the examples.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>present</li> + <li>absent</li> + </ul> + </td> + <td> + <div>present: Add NTP server(s), if specified server(s) are absent else do nothing.</div> + <div>absent: Remove NTP server(s), if specified server(s) are present else do nothing.</div> + <div>Specified NTP server(s) will be configured if <code>state</code> isn't specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>verbose</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Verbose output of the configuration change.</div> + <div>Explains if an NTP server was added, removed, or if the NTP server sequence was changed.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Configure NTP servers for an ESXi Host + community.vmware.vmware_host_ntp: + hostname: vcenter01.example.local + username: administrator@vsphere.local + password: SuperSecretPassword + esxi_hostname: esx01.example.local + ntp_servers: + - 0.pool.ntp.org + - 1.pool.ntp.org + delegate_to: localhost + + - name: Set NTP servers for all ESXi Host in given Cluster + community.vmware.vmware_host_ntp: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + state: present + ntp_servers: + - 0.pool.ntp.org + - 1.pool.ntp.org + delegate_to: localhost + + - name: Set NTP servers for an ESXi Host + community.vmware.vmware_host_ntp: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + state: present + ntp_servers: + - 0.pool.ntp.org + - 1.pool.ntp.org + delegate_to: localhost + + - name: Remove NTP servers for an ESXi Host + community.vmware.vmware_host_ntp: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + state: absent + ntp_servers: + - bad.server.ntp.org + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>host_ntp_status</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about host system's NTP configuration</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'esx01.example.local': {'ntp_servers_changed': ['time1.example.local', 'time2.example.local', 'time3.example.local', 'time4.example.local'], 'ntp_servers': ['time3.example.local', 'time4.example.local'], 'ntp_servers_previous': ['time1.example.local', 'time2.example.local']}, 'esx02.example.local': {'ntp_servers_changed': ['time3.example.local'], 'ntp_servers_current': ['time1.example.local', 'time2.example.local', 'time3.example.local'], 'state': 'present', 'ntp_servers_previous': ['time1.example.local', 'time2.example.local']}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) +- Christian Kotte (@ckotte) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_package_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_package_info_module.rst new file mode 100644 index 00000000..da4c8ba6 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_package_info_module.rst @@ -0,0 +1,273 @@ +.. _community.vmware.vmware_host_package_info_module: + + +***************************************** +community.vmware.vmware_host_package_info +***************************************** + +**Gathers info about available packages on an ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about available packages and their status on an ESXi host. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster.</div> + <div>Package information about each ESXi server will be returned for given cluster.</div> + <div>If <code>esxi_hostname</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname.</div> + <div>Package information about this ESXi server will be returned.</div> + <div>If <code>cluster_name</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather info about all ESXi Host in given Cluster + community.vmware.vmware_host_package_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: cluster_name + delegate_to: localhost + register: cluster_host_packages + + - name: Gather info about ESXi Host + community.vmware.vmware_host_package_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + delegate_to: localhost + register: host_packages + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>hosts_package_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>hosts_package_info</td> + <td> + <div>dict with hostname as key and dict with package information as value</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'hosts_package_info': {'localhost.localdomain': []}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_passthrough_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_passthrough_module.rst new file mode 100644 index 00000000..915ec57e --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_passthrough_module.rst @@ -0,0 +1,376 @@ +.. _community.vmware.vmware_host_passthrough_module: + + +**************************************** +community.vmware.vmware_host_passthrough +**************************************** + +**Manage PCI device passthrough settings on host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be managed PCI device passthrough settings on host. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster from which all host systems will be used.</div> + <div>This parameter is required if <code>esxi_hostname</code> is not specified.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: cluster_name</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>devices</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>List of PCI device name or id.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>device</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of PCI device to enable passthrough.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: name, device_name</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the host system to work with.</div> + <div>This parameter is required if <code>cluster_name</code> is not specified.</div> + <div>User can specify specific host from the cluster.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>If <em>state=present</em>, passthrough of PCI device will be enabled.</div> + <div>If <em>state=absent</em>, passthrough of PCI device will be disabled.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - Supports ``check_mode``. + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Enable PCI device passthrough against the whole ESXi in a cluster + community.vmware.vmware_host_passthrough: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + cluster: "{{ ccr1 }}" + devices: + - device_name: "Dual Band Wireless AC 3165" + state: present + + - name: Enable PCI device passthrough against one ESXi + community.vmware.vmware_host_passthrough: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + esxi_hostname: "{{ esxi1 }}" + devices: + - device_name: "Dual Band Wireless AC 3165" + state: present + + - name: Enable PCI device passthrough with PCI ids + community.vmware.vmware_host_passthrough: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + esxi_hostname: "{{ esxi1 }}" + devices: + - device: '0000:03:00.0' + - device: '0000:00:02.0' + state: present + + - name: Disable PCI device passthrough against the whole ESXi in a cluster + community.vmware.vmware_host_passthrough: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + cluster: "{{ ccr1 }}" + devices: + - device_name: "Dual Band Wireless AC 3165" + state: absent + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>passthrough_configs</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td>changed</td> + <td> + <div>list of that PCI devices have been enabled passthrough for each host system.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[ + { + "esxi-01.example.com": [ + { + "device_id": "0000:03:00.0", + "device_name": "Dual Band Wireless AC 3165", + "passthruEnabled": true + } + ] + }, + { + "esxi-02.example.com": [ + { + "device_id": "0000:03:00.0", + "device_name": "Dual Band Wireless AC 3165", + "passthruEnabled": true + } + ] + } + ]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- sky-joker (@sky-joker) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_powermgmt_policy_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_powermgmt_policy_module.rst new file mode 100644 index 00000000..58bb2c51 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_powermgmt_policy_module.rst @@ -0,0 +1,292 @@ +.. _community.vmware.vmware_host_powermgmt_policy_module: + + +********************************************* +community.vmware.vmware_host_powermgmt_policy +********************************************* + +**Manages the Power Management Policy of an ESXI host system** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to manage the Power Management Policy of ESXi host systems in given vCenter infrastructure. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster from which all host systems will be used.</div> + <div>This is required parameter if <code>esxi_hostname</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the host system to work with.</div> + <div>This is required parameter if <code>cluster_name</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>policy</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>high-performance</li> + <li><div style="color: blue"><b>balanced</b> ←</div></li> + <li>low-power</li> + <li>custom</li> + </ul> + </td> + <td> + <div>Set the Power Management Policy of the host system.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Set the Power Management Policy of a host system to high-performance + community.vmware.vmware_host_powermgmt_policy: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_host }}' + policy: high-performance + delegate_to: localhost + + - name: Set the Power Management Policy of all host systems from cluster to high-performance + community.vmware.vmware_host_powermgmt_policy: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + policy: high-performance + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about host system's Power Management Policy</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'changed': True, 'result': {'esxi01': {'changed': True, 'current_state': 'high-performance', 'desired_state': 'high-performance', 'msg': 'Power policy changed', 'previous_state': 'balanced'}}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Christian Kotte (@ckotte) <christian.kotte@gmx.de> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_powerstate_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_powerstate_module.rst new file mode 100644 index 00000000..7d7773af --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_powerstate_module.rst @@ -0,0 +1,347 @@ +.. _community.vmware.vmware_host_powerstate_module: + + +*************************************** +community.vmware.vmware_host_powerstate +*************************************** + +**Manages power states of host systems in vCenter** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to manage power states of host systems in given vCenter infrastructure. +- User can set power state to 'power-down-to-standby', 'power-up-from-standby', 'shutdown-host' and 'reboot-host'. +- State 'reboot-host', 'shutdown-host' and 'power-down-to-standby' are not supported by all the host systems. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster from which all host systems will be used.</div> + <div>This is required parameter if <code>esxi_hostname</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the host system to work with.</div> + <div>This is required parameter if <code>cluster_name</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>force</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>This parameter specify if the host should be proceeding with user defined powerstate regardless of whether it is in maintenance mode.</div> + <div>If <code>state</code> set to <code>reboot-host</code> and <code>force</code> as <code>true</code>, then host system is rebooted regardless of whether it is in maintenance mode.</div> + <div>If <code>state</code> set to <code>shutdown-host</code> and <code>force</code> as <code>true</code>, then host system is shutdown regardless of whether it is in maintenance mode.</div> + <div>If <code>state</code> set to <code>power-down-to-standby</code> and <code>force</code> to <code>true</code>, then all powered off VMs will evacuated.</div> + <div>Not applicable if <code>state</code> set to <code>power-up-from-standby</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>power-down-to-standby</li> + <li>power-up-from-standby</li> + <li><div style="color: blue"><b>shutdown-host</b> ←</div></li> + <li>reboot-host</li> + </ul> + </td> + <td> + <div>Set the state of the host system.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">600</div> + </td> + <td> + <div>This parameter defines timeout for <code>state</code> set to <code>power-down-to-standby</code> or <code>power-up-from-standby</code>.</div> + <div>Ignored if <code>state</code> set to <code>reboot-host</code> or <code>shutdown-host</code>.</div> + <div>This parameter is defined in seconds.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Set the state of a host system to reboot + community.vmware.vmware_host_powerstate: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + state: reboot-host + delegate_to: localhost + register: reboot_host + + - name: Set the state of a host system to power down to standby + community.vmware.vmware_host_powerstate: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + state: power-down-to-standby + delegate_to: localhost + register: power_down + + - name: Set the state of all host systems from cluster to reboot + community.vmware.vmware_host_powerstate: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + state: reboot-host + delegate_to: localhost + register: reboot_host + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about host system's state</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'esxi01': {'msg': "power down 'esxi01' to standby", 'error': ''}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_scanhba_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_scanhba_module.rst new file mode 100644 index 00000000..86e02a02 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_scanhba_module.rst @@ -0,0 +1,348 @@ +.. _community.vmware.vmware_host_scanhba_module: + + +************************************ +community.vmware.vmware_host_scanhba +************************************ + +**Rescan host HBA's and optionally refresh the storage system** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can force a rescan of the hosts HBA subsystem which is needed when wanting to mount a new datastore. +- You could use this before using :ref:`community.vmware.vmware_host_datastore <community.vmware.vmware_host_datastore_module>` to mount a new datastore to ensure your device/volume is ready. +- You can also optionally force a Refresh of the Storage System in vCenter/ESXi Web Client. +- All parameters and VMware object names are case sensitive. +- You can supply an esxi_hostname or a cluster_name + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Cluster name to Rescan the storage subsystem on (this will run the rescan task on each host in the cluster).</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname to Rescan the storage subsystem on.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>refresh_storage</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Refresh the storage system in vCenter/ESXi Web Client for each host found</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>rescan_hba</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Rescan all host bus adapters for new storage devices. Rescanning all adapters can be slow.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>rescan_vmfs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Rescan all known storage devices for new VMFS volumes.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Recan HBA's for a given ESXi host and refresh storage system objects + community.vmware.vmware_host_scanhba: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ inventory_hostname }}' + refresh_storage: true + delegate_to: localhost + + - name: Rescan HBA's for a given cluster - all found hosts will be scanned + community.vmware.vmware_host_scanhba: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ inventory_hostname }}' + refresh_storage: true + delegate_to: localhost + + - name: Rescan for new VMFS Volumes in a given cluster, but do not scan for new Devices - all found hosts will be scanned + community.vmware.vmware_host_scanhba: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ inventory_hostname }}' + rescan_vmfs: true + rescan_hba: false + delegate_to: localhost + + - name: Recan HBA's for a given ESXi host and don't refresh storage system objects + community.vmware.vmware_host_scanhba: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ inventory_hostname }}' + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>return confirmation of requested host and updated / refreshed storage system</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'esxi01.example.com': {'rescaned_hba': 'true', 'refreshed_storage': 'true', 'rescaned_vmfs': 'true'}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Michael Eaton (@michaeldeaton) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_scsidisk_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_scsidisk_info_module.rst new file mode 100644 index 00000000..b0162cb7 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_scsidisk_info_module.rst @@ -0,0 +1,271 @@ +.. _community.vmware.vmware_host_scsidisk_info_module: + + +****************************************** +community.vmware.vmware_host_scsidisk_info +****************************************** + +**Gather information about SCSI disk attached to the given ESXi** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about SCSI disk attached to the given ESXi. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster from which all host systems will be used.</div> + <div>SCSI disk information about each ESXi server will be returned for the given cluster.</div> + <div>This parameter is required if <em>esxi_hostname</em> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the host system to work with.</div> + <div>SCSI disk information about this ESXi server will be returned.</div> + <div>This parameter is required if <em>cluster_name</em> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather information SCSI disk attached to the given ESXi + community.vmware.vmware_host_scsidisk_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + delegate_to: localhost + + - name: Gather information of all host systems from the given cluster + community.vmware.vmware_host_scsidisk_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>hosts_scsidisk_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about host system SCSI disk information</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'10.65.201.106': [{'block': 41943040, 'block_size': 512, 'canonical_name': 't10.ATA_QEMU_HARDDISK_QM00001_', 'device_name': '/vmfs/devices/disks/t10.ATA_QEMU_HARDDISK_QM00001_', 'device_path': '/vmfs/devices/disks/t10.ATA_QEMU_HARDDISK_QM00001_', 'device_type': 'disk', 'display_name': 'Local ATA Disk (t10.ATA_QEMU_HARDDISK_QM00001_)', 'key': 'key-vim.host.ScsiDisk-0100000000514d30303030312020202020202020202020202051454d552048', 'local_disk': True, 'lun_type': 'disk', 'model': 'QEMU HARDDISK ', 'perenniallyReserved': None, 'protocol_endpoint': False, 'revision': '1.5.', 'scsi_disk_type': 'native512', 'scsi_level': 5, 'serial_number': 'unavailable', 'ssd': False, 'uuid': '0100000000514d30303030312020202020202020202020202051454d552048', 'vStorageSupport': 'vStorageUnsupported', 'vendor': 'ATA '}]}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_service_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_service_info_module.rst new file mode 100644 index 00000000..246abc5e --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_service_info_module.rst @@ -0,0 +1,274 @@ +.. _community.vmware.vmware_host_service_info_module: + + +***************************************** +community.vmware.vmware_host_service_info +***************************************** + +**Gathers info about an ESXi host's services** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about an ESXi host's services. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster.</div> + <div>Service information about each ESXi server will be returned for given cluster.</div> + <div>If <code>esxi_hostname</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname.</div> + <div>Service information about this ESXi server will be returned.</div> + <div>If <code>cluster_name</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - If source package name is not available then fact is populated as null. + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather info about all ESXi Host in given Cluster + community.vmware.vmware_host_service_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: cluster_name + delegate_to: localhost + register: cluster_host_services + + - name: Gather info about ESXi Host + community.vmware.vmware_host_service_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + delegate_to: localhost + register: host_services + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>host_service_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>dict with hostname as key and dict with host service config information</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'10.76.33.226': [{'key': 'DCUI', 'label': 'Direct Console UI', 'policy': 'on', 'required': False, 'running': True, 'uninstallable': False, 'source_package_name': 'esx-base', 'source_package_desc': 'This VIB contains all of the base functionality of vSphere ESXi.'}, {'key': 'TSM', 'label': 'ESXi Shell', 'policy': 'off', 'required': False, 'running': False, 'uninstallable': False, 'source_package_name': 'esx-base', 'source_package_desc': 'This VIB contains all of the base functionality of vSphere ESXi.'}]}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_service_manager_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_service_manager_module.rst new file mode 100644 index 00000000..9601e8c7 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_service_manager_module.rst @@ -0,0 +1,332 @@ +.. _community.vmware.vmware_host_service_manager_module: + + +******************************************** +community.vmware.vmware_host_service_manager +******************************************** + +**Manage services on a given ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to manage (start, stop, restart) services on a given ESXi host. +- If cluster_name is provided, specified service will be managed on all ESXi host belonging to that cluster. +- If specific esxi_hostname is provided, then specified service will be managed on given ESXi host only. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster.</div> + <div>Service settings are applied to every ESXi host system/s in given cluster.</div> + <div>If <code>esxi_hostname</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname.</div> + <div>Service settings are applied to this ESXi host system.</div> + <div>If <code>cluster_name</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>service_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of Service to be managed. This is a brief identifier for the service, for example, ntpd, vxsyslogd etc.</div> + <div>This value should be a valid ESXi service name.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>service_policy</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>automatic</li> + <li>off</li> + <li>on</li> + </ul> + </td> + <td> + <div>Set of valid service policy strings.</div> + <div>If set <code>on</code>, then service should be started when the host starts up.</div> + <div>If set <code>automatic</code>, then service should run if and only if it has open firewall ports.</div> + <div>If set <code>off</code>, then Service should not be started when the host starts up.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>absent</li> + <li>present</li> + <li>restart</li> + <li><div style="color: blue"><b>start</b> ←</div></li> + <li>stop</li> + <li>unchanged</li> + </ul> + </td> + <td> + <div>Desired state of service.</div> + <div>State value 'start' and 'present' has same effect.</div> + <div>State value 'stop' and 'absent' has same effect.</div> + <div>State value <code>unchanged</code> is added in version 1.14.0 to allow defining startup policy without defining or changing service state.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Start ntpd service setting for all ESXi Host in given Cluster + community.vmware.vmware_host_service_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + service_name: ntpd + state: present + delegate_to: localhost + + - name: Start ntpd setting for an ESXi Host + community.vmware.vmware_host_service_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + service_name: ntpd + state: present + delegate_to: localhost + + - name: Start ntpd setting for an ESXi Host with Service policy + community.vmware.vmware_host_service_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + service_name: ntpd + service_policy: on + state: present + delegate_to: localhost + + - name: Stop ntpd setting for an ESXi Host + community.vmware.vmware_host_service_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + service_name: ntpd + state: absent + delegate_to: localhost + + + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_snmp_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_snmp_module.rst new file mode 100644 index 00000000..86f861b0 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_snmp_module.rst @@ -0,0 +1,447 @@ +.. _community.vmware.vmware_host_snmp_module: + + +********************************* +community.vmware.vmware_host_snmp +********************************* + +**Configures SNMP on an ESXi host system** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to configure the embedded SNMP agent on an ESXi host. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>community</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>List of SNMP community strings.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hw_source</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>indications</b> ←</div></li> + <li>sensors</li> + </ul> + </td> + <td> + <div>Source hardware events from IPMI sensors or CIM Indications.</div> + <div>The embedded SNMP agent receives hardware events either from IPMI sensors <code>sensors</code> or CIM indications <code>indications</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>log_level</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>debug</li> + <li><div style="color: blue"><b>info</b> ←</div></li> + <li>warning</li> + <li>error</li> + </ul> + </td> + <td> + <div>Syslog logging level.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>send_trap</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Send a test trap to validate the configuration.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snmp_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">161</div> + </td> + <td> + <div>Port used by the SNMP agent.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>disabled</b> ←</div></li> + <li>enabled</li> + <li>reset</li> + </ul> + </td> + <td> + <div>Enable, disable, or reset the SNMP agent.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>sys_contact</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>System contact who manages the system.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>sys_location</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>System location.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>trap_filter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>A list of trap oids for traps not to be sent by agent, e.g. [ 1.3.6.1.4.1.6876.4.1.1.0, 1.3.6.1.4.1.6876.4.1.1.1 ]</div> + <div>Use value <code>reset</code> to clear settings.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>trap_targets</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>A list of trap targets.</div> + <div>You need to use <code>hostname</code>, <code>port</code>, and <code>community</code> for each trap target.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - You need to reset the agent (to factory defaults) if you want to clear all community strings, trap targets, or filters + - SNMP v3 configuration isn't implemented yet + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Enable and configure SNMP community + community.vmware.vmware_host_snmp: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + community: [ test ] + state: enabled + delegate_to: localhost + + - name: Configure SNMP traps and filters + community.vmware.vmware_host_snmp: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + community: [ test ] + trap_targets: + - hostname: 192.168.1.100 + port: 162 + community: test123 + - hostname: 192.168.1.101 + port: 162 + community: test1234 + trap_filter: + - 1.3.6.1.4.1.6876.4.1.1.0 + - 1.3.6.1.4.1.6876.4.1.1.1 + state: enabled + delegate_to: localhost + + - name: Enable and configure SNMP system contact and location + community.vmware.vmware_host_snmp: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + sys_contact: "admin@testemail.com" + sys_location: "Austin, USA" + state: enabled + delegate_to: localhost + + - name: Disable SNMP + community.vmware.vmware_host_snmp: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + state: disabled + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>results</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about host system's SNMP configuration</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'esxi01': {'changed': False, 'community': ['test'], 'hw_source': 'indications', 'msg': 'SNMP already configured properly', 'port': 161, 'state': 'enabled', 'trap_targets': []}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Christian Kotte (@ckotte) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_sriov_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_sriov_module.rst new file mode 100644 index 00000000..f4645203 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_sriov_module.rst @@ -0,0 +1,352 @@ +.. _community.vmware.vmware_host_sriov_module: + + +********************************** +community.vmware.vmware_host_sriov +********************************** + +**Manage SR-IOV settings on host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to configure, enable or disable SR-IOV functions on ESXi host. +- Module does not reboot the host after changes, but puts it in output "rebootRequired" state. +- User can specify an ESXi hostname or Cluster name. In case of cluster name, all ESXi hosts are updated. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster from which all host systems will be used.</div> + <div>This parameter is required if <code>esxi_hostname</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the host system to work with.</div> + <div>This parameter is required if <code>cluster_name</code> is not specified.</div> + <div>User can specify specific host from the cluster.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>num_virt_func</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>number of functions to activate on interface.</div> + <div>0 means SR-IOV disabled.</div> + <div>number greater than 0 means SR-IOV enabled.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>sriov_on</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>optional parameter, related to <code>num_virt_func</code>.</div> + <div>SR-IOV can be enabled only if <code>num_virt_func</code> > 0.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vmnic</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Interface name, like vmnic0.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: enable SR-IOV on vmnic0 with 8 functions + community.vmware.vmware_host_sriov: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ esxi1 }}" + vmnic: vmnic0 + sriov_on: true + num_virt_func: 8 + + - name: enable SR-IOV on already enabled interface vmnic0 + community.vmware.vmware_host_sriov: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ esxi1 }}" + vmnic: vmnic0 + sriov_on: true + num_virt_func: 8 + + - name: enable SR-IOV on vmnic0 with big number of functions + community.vmware.vmware_host_sriov: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ esxi1 }}" + vmnic: vmnic0 + sriov_on: true + num_virt_func: 100 + ignore_errors: true + + - name: disable SR-IOV on vmnic0 + community.vmware.vmware_host_sriov: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ esxi1 }}" + vmnic: vmnic0 + sriov_on: false + num_virt_func: 0 + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>host_sriov_diff</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>contains info about SR-IOV status on vmnic before, after and requested changes</div> + <div>sometimes vCenter slowly update info, as result "after" contains same info as "before" need to run again in check_mode or reboot host, as ESXi requested</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'changed': True, 'diff': {'after': {'host_test': {'sriovActive': False, 'sriovEnabled': True, 'maxVirtualFunctionSupported': 63, 'numVirtualFunction': 0, 'numVirtualFunctionRequested': 8, 'rebootRequired': True, 'sriovCapable': True}}, 'before': {'host_test': {'sriovActive': False, 'sriovEnabled': False, 'maxVirtualFunctionSupported': 63, 'numVirtualFunction': 0, 'numVirtualFunctionRequested': 0, 'rebootRequired': False, 'sriovCapable': True}}, 'changes': {'host_test': {'numVirtualFunction': 8, 'rebootRequired': True, 'sriovEnabled': True}}}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Viktor Tsymbalyuk (@victron) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_ssl_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_ssl_info_module.rst new file mode 100644 index 00000000..5ea83fe1 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_ssl_info_module.rst @@ -0,0 +1,288 @@ +.. _community.vmware.vmware_host_ssl_info_module: + + +************************************* +community.vmware.vmware_host_ssl_info +************************************* + +**Gather info of ESXi host system about SSL** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information of the SSL thumbprint information for a host. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster.</div> + <div>SSL thumbprint information about all ESXi host system in the given cluster will be reported.</div> + <div>If <code>esxi_hostname</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname.</div> + <div>SSL thumbprint information of this ESXi host system will be reported.</div> + <div>If <code>cluster_name</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather SSL thumbprint information about all ESXi Hosts in given Cluster + community.vmware.vmware_host_ssl_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + delegate_to: localhost + register: all_host_ssl_info + + - name: Get SSL Thumbprint info about "{{ esxi_hostname }}" + community.vmware.vmware_host_ssl_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: '{{ esxi_hostname }}' + register: ssl_info + - set_fact: + ssl_thumbprint: "{{ ssl_info['host_ssl_info'][esxi_hostname]['ssl_thumbprints'][0] }}" + - debug: + msg: "{{ ssl_thumbprint }}" + - name: Add ESXi Host to vCenter + vmware_host: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter_name: '{{ datacenter_name }}' + cluster_name: '{{ cluster_name }}' + esxi_hostname: '{{ esxi_hostname }}' + esxi_username: '{{ esxi_username }}' + esxi_password: '{{ esxi_password }}' + esxi_ssl_thumbprint: '{{ ssl_thumbprint }}' + state: present + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>host_ssl_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>info</td> + <td> + <div>dict with hostname as key and dict with SSL thumbprint related info</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'10.76.33.215': {'owner_tag': '', 'principal': 'vpxuser', 'ssl_thumbprints': ['E3:E8:A9:20:8D:32:AE:59:C6:8D:A5:91:B0:20:EF:00:A2:7C:27:EE', 'F1:AC:DA:6E:D8:1E:37:36:4A:5C:07:E5:04:0B:87:C8:75:FB:42:01']}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_tcpip_stacks_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_tcpip_stacks_module.rst new file mode 100644 index 00000000..9134999e --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_tcpip_stacks_module.rst @@ -0,0 +1,805 @@ +.. _community.vmware.vmware_host_tcpip_stacks_module: + + +***************************************** +community.vmware.vmware_host_tcpip_stacks +***************************************** + +**Manage the TCP/IP Stacks configuration of ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to modify the TCP/IP stacks configuration. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>default</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>The TCP/IP stacks configuration of the <em>default</em>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>alternate_dns</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The IP address of the alternate dns server.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>congestion_algorithm</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>newreno</b> ←</div></li> + <li>cubic</li> + </ul> + </td> + <td> + <div>The TCP congest control algorithm.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>domain</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The domain name portion of the DNS name.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>gateway</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The ipv4 gateway address.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The host name of the ESXi host.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ipv6_gateway</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The ipv6 gateway address.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>max_num_connections</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">11000</div> + </td> + <td> + <div>The maximum number of socket connection that are requested.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>preferred_dns</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The IP address of the preferred dns server.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>search_domains</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>The domain in which to search for hosts, placed in order of preference.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the ESXi host.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>provisioning</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>The TCP/IP stacks configuration of the <em>provisioning</em>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>congestion_algorithm</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>newreno</b> ←</div></li> + <li>cubic</li> + </ul> + </td> + <td> + <div>The TCP congest control algorithm.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>gateway</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The ipv4 gateway address.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ipv6_gateway</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The ipv6 gateway address.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>max_num_connections</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">11000</div> + </td> + <td> + <div>The maximum number of socket connection that are requested.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vmotion</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>The TCP/IP stacks configuration of the <em>vmotion</em>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>congestion_algorithm</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>newreno</b> ←</div></li> + <li>cubic</li> + </ul> + </td> + <td> + <div>The TCP congest control algorithm.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>gateway</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The ipv4 gateway address.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ipv6_gateway</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The ipv6 gateway address.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>max_num_connections</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">11000</div> + </td> + <td> + <div>The maximum number of socket connection that are requested.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vxlan</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>The TCP/IP stacks configuration of the <em>vxlan</em>.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: nsx_overlay</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>congestion_algorithm</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>newreno</b> ←</div></li> + <li>cubic</li> + </ul> + </td> + <td> + <div>The TCP congest control algorithm.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>gateway</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The ipv4 gateway address.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ipv6_gateway</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The ipv6 gateway address.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>max_num_connections</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">11000</div> + </td> + <td> + <div>The maximum number of socket connection that are requested.</div> + </td> + </tr> + + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Update the TCP/IP stack configuration of the default + community.vmware.vmware_host_tcpip_stacks: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + esxi_hostname: "{{ esxi_hostname }}" + default: + hostname: "{{ esxi_hostname }}" + domain: example.com + preferred_dns: 192.168.10.1 + alternate_dns: 192.168.20.1 + search_domains: + - hoge.com + - fuga.com + gateway: 192.168.10.1 + congestion_algorithm: cubic + max_num_connections: 12000 + + - name: Update the TCP/IP stack configuration of the provisioning + community.vmware.vmware_host_tcpip_stacks: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + esxi_hostname: "{{ esxi_hostname }}" + provisioning: + congestion_algorithm: newreno + max_num_connections: 12000 + gateway: 10.10.10.254 + + - name: Update the TCP/IP stack configuration of the default and provisioning + community.vmware.vmware_host_tcpip_stacks: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + esxi_hostname: "{{ esxi_hostname }}" + default: + hostname: "{{ esxi_hostname }}" + domain: example.com + preferred_dns: 192.168.10.1 + alternate_dns: 192.168.20.1 + search_domains: + - hoge.com + - fuga.com + gateway: 192.168.10.1 + congestion_algorithm: cubic + max_num_connections: 12000 + provisioning: + congestion_algorithm: newreno + max_num_connections: 12000 + gateway: 10.10.10.254 + + - name: Update the ipv6 gateway of the provisioning TCP/IP stack + community.vmware.vmware_host_tcpip_stacks: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + esxi_hostname: "{{ esxi_hostname }}" + provisioning: + ipv6_gateway: ::ffff:6440:301 + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>default</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>dict of the TCP/IP stack configuration of the default.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{ + "alternate_dns": "192.168.20.1", + "congestion_algorithm": "cubic", + "domain": "example.com", + "gateway": "192.168.10.1", + "ipv6_gateway", null, + "hostname": "esxi-test03", + "max_num_connections": 12000, + "preferred_dns": "192.168.10.1", + "search_domains": [ + "hoge.com", + "fuga.com" + ] + }</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>provisioning</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>dict of the TCP/IP stack configuration of the provisioning.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{ + "congestion_algorithm": "newreno", + "gateway": "10.10.10.254", + "ipv6_gateway": null, + "max_num_connections": 12000 + }</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>vmotion</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>dict of the TCP/IP stack configuration of the vmotion.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{ + "congestion_algorithm": "newreno", + "gateway": null, + "ipv6_gateway": null, + "max_num_connections": 11000 + }</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>vxlan</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>dict of the TCP/IP stack configuration of the vxlan.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{ + "congestion_algorithm": "newreno", + "gateway": null, + "ipv6_gateway": null, + "max_num_connections": 11000 + }</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- sky-joker (@sky-joker) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_user_manager_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_user_manager_module.rst new file mode 100644 index 00000000..9f7f6b32 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_user_manager_module.rst @@ -0,0 +1,364 @@ +.. _community.vmware.vmware_host_user_manager_module: + + +***************************************** +community.vmware.vmware_host_user_manager +***************************************** + +**Manage users of ESXi** + + +Version added: 2.1.0 + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can add, update or delete local users on ESXi host. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the ESXi host that is managing the local user.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>override_user_password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>If the local user exists and updates the password, change this parameter value is true.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>If set to <code>present</code>, add a new local user or update information.</div> + <div>If set to <code>absent</code>, delete the local user.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>user_description</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The local user description.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: local_user_description</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>user_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the local user.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: local_user_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>user_password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The local user password.</div> + <div>If you'd like to update the password, require the <em>override_user_password</em> is true.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: local_user_password</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add new local user to ESXi host + community.vmware.vmware_host_user_manager: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + esxi_hostname: "{{ esxi1 }}" + user_name: example + user_description: "example user" + user_password: "{{ local_user_password }}" + state: present + + - name: Update the local user password in ESXi host + community.vmware.vmware_host_user_manager: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + esxi_hostname: "{{ esxi1 }}" + user_name: example + user_description: "example user" + user_password: "{{ local_user_password }}" + override_user_password: true + state: present + + - name: Delete the local user in ESXi host + community.vmware.vmware_host_user_manager: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + esxi_hostname: "{{ esxi1 }}" + user_name: example + state: absent + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>msg</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>The executed result for the module.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{ + "msg": "Added the new user. + }</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- sky-joker (@sky-joker) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_vmhba_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_vmhba_info_module.rst new file mode 100644 index 00000000..f817bb84 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_vmhba_info_module.rst @@ -0,0 +1,275 @@ +.. _community.vmware.vmware_host_vmhba_info_module: + + +*************************************** +community.vmware.vmware_host_vmhba_info +*************************************** + +**Gathers info about vmhbas available on the given ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about vmhbas available on the given ESXi host. +- If ``cluster_name`` is provided, then vmhba information about all hosts from given cluster will be returned. +- If ``esxi_hostname`` is provided, then vmhba information about given host system will be returned. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster from which all host systems will be used.</div> + <div>Vmhba information about each ESXi server will be returned for the given cluster.</div> + <div>This parameter is required if <code>esxi_hostname</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the host system to work with.</div> + <div>Vmhba information about this ESXi server will be returned.</div> + <div>This parameter is required if <code>cluster_name</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather info about vmhbas of all ESXi Host in the given Cluster + community.vmware.vmware_host_vmhba_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + delegate_to: localhost + register: cluster_host_vmhbas + + - name: Gather info about vmhbas of an ESXi Host + community.vmware.vmware_host_vmhba_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + delegate_to: localhost + register: host_vmhbas + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>hosts_vmhbas_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>hosts_vmhbas_info</td> + <td> + <div>dict with hostname as key and dict with vmhbas information as value.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'10.76.33.204': {'vmhba_details': [{'adapter': 'HPE Smart Array P440ar', 'bus': 3, 'device': 'vmhba0', 'driver': 'nhpsa', 'location': '0000:03:00.0', 'model': 'Smart Array P440ar', 'node_wwn': '50:01:43:80:37:18:9e:a0', 'status': 'unknown', 'type': 'SAS'}, {'adapter': 'QLogic Corp ISP2532-based 8Gb Fibre Channel to PCI Express HBA', 'bus': 5, 'device': 'vmhba1', 'driver': 'qlnativefc', 'location': '0000:05:00.0', 'model': 'ISP2532-based 8Gb Fibre Channel to PCI Express HBA', 'node_wwn': '57:64:96:32:15:90:23:95:82', 'port_type': 'unknown', 'port_wwn': '57:64:96:32:15:90:23:95:82', 'speed': 8, 'status': 'online', 'type': 'Fibre Channel'}, {'adapter': 'QLogic Corp ISP2532-based 8Gb Fibre Channel to PCI Express HBA', 'bus': 8, 'device': 'vmhba2', 'driver': 'qlnativefc', 'location': '0000:08:00.0', 'model': 'ISP2532-based 8Gb Fibre Channel to PCI Express HBA', 'node_wwn': '57:64:96:32:15:90:23:95:21', 'port_type': 'unknown', 'port_wwn': '57:64:96:32:15:90:23:95:21', 'speed': 8, 'status': 'online', 'type': 'Fibre Channel'}]}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Christian Kotte (@ckotte) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_host_vmnic_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_vmnic_info_module.rst new file mode 100644 index 00000000..c76f4525 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_host_vmnic_info_module.rst @@ -0,0 +1,339 @@ +.. _community.vmware.vmware_host_vmnic_info_module: + + +*************************************** +community.vmware.vmware_host_vmnic_info +*************************************** + +**Gathers info about vmnics available on the given ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about vmnics available on the given ESXi host. +- If ``cluster_name`` is provided, then vmnic information about all hosts from given cluster will be returned. +- If ``esxi_hostname`` is provided, then vmnic information about given host system will be returned. +- Additional details about vswitch and dvswitch with respective vmnic is also provided which is added in 2.7 version. +- Additional details about lldp added in 1.11.0 + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>capabilities</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Gather information about general capabilities (Auto negotiation, Wake On LAN, and Network I/O Control).</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster from which all host systems will be used.</div> + <div>Vmnic information about each ESXi server will be returned for the given cluster.</div> + <div>This parameter is required if <code>esxi_hostname</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>directpath_io</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Gather information about DirectPath I/O capabilities and configuration.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the host system to work with.</div> + <div>Vmnic information about this ESXi server will be returned.</div> + <div>This parameter is required if <code>cluster_name</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>sriov</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Gather information about SR-IOV capabilities and configuration.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather info about vmnics of all ESXi Host in the given Cluster + community.vmware.vmware_host_vmnic_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + delegate_to: localhost + register: cluster_host_vmnics + + - name: Gather info about vmnics of an ESXi Host + community.vmware.vmware_host_vmnic_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + delegate_to: localhost + register: host_vmnics + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>hosts_vmnics_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>hosts_vmnics_info</td> + <td> + <div>dict with hostname as key and dict with vmnics information as value.</div> + <div>for <code>num_vmnics</code>, only NICs starting with vmnic are counted. NICs like vusb* are not counted.</div> + <div>details about vswitch and dvswitch was added in version 2.7.</div> + <div>details about vmnics was added in version 2.8.</div> + <div>details about lldp was added in version 1.11.0</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'10.76.33.204': {'all': ['vmnic0', 'vmnic1'], 'available': [], 'dvswitch': {'dvs_0002': ['vmnic1']}, 'num_vmnics': 2, 'used': ['vmnic1', 'vmnic0'], 'vmnic_details': [{'actual_duplex': 'Full Duplex', 'actual_speed': 10000, 'adapter': 'Intel(R) 82599 10 Gigabit Dual Port Network Connection', 'configured_duplex': 'Auto negotiate', 'configured_speed': 'Auto negotiate', 'device': 'vmnic0', 'driver': 'ixgbe', 'lldp_info': {'Aggregated Port ID': '0', 'Aggregation Status': '1', 'Enabled Capabilities': {'_vimtype': 'vim.host.PhysicalNic.CdpDeviceCapability', 'host': False, 'igmpEnabled': False, 'networkSwitch': False, 'repeater': False, 'router': True, 'sourceRouteBridge': False, 'transparentBridge': True}, 'MTU': '9216', 'Port Description': 'switch port description', 'Samples': 18814, 'System Description': 'omitted from output', 'System Name': 'sw1', 'TimeOut': 30, 'Vlan ID': '1'}, 'location': '0000:01:00.0', 'mac': 'aa:bb:cc:dd:ee:ff', 'status': 'Connected'}, {'actual_duplex': 'Full Duplex', 'actual_speed': 10000, 'adapter': 'Intel(R) 82599 10 Gigabit Dual Port Network Connection', 'configured_duplex': 'Auto negotiate', 'configured_speed': 'Auto negotiate', 'device': 'vmnic1', 'driver': 'ixgbe', 'lldp_info': 'N/A', 'location': '0000:01:00.1', 'mac': 'ab:ba:cc:dd:ee:ff', 'status': 'Connected'}], 'vswitch': {'vSwitch0': ['vmnic0']}}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) +- Christian Kotte (@ckotte) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_httpapi.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_httpapi.rst new file mode 100644 index 00000000..a00609b7 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_httpapi.rst @@ -0,0 +1,42 @@ +.. _community.vmware.vmware_httpapi: + + +*********************** +community.vmware.vmware +*********************** + +**HttpApi Plugin for VMware REST API** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This HttpApi plugin provides methods to connect to VMware vCenter over a HTTP(S)-based APIs. + + + + + + + + + + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) + + +.. hint:: + Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up. diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_local_role_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_local_role_info_module.rst new file mode 100644 index 00000000..bb36fef6 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_local_role_info_module.rst @@ -0,0 +1,236 @@ +.. _community.vmware.vmware_local_role_info_module: + + +*************************************** +community.vmware.vmware_local_role_info +*************************************** + +**Gather info about local roles on an ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about local role info on an ESXi host + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - Be sure that the ESXi user used for login, has the appropriate rights to view roles + - The module returns a list of dict in version 2.8 and above. + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather info about local role from an ESXi + community.vmware.vmware_local_role_info: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + register: fact_details + delegate_to: localhost + - name: Get Admin privileges + set_fact: + admin_priv: "{{ fact_details.local_role_info | selectattr('role_name', 'equalto', 'Admin') | map(attribute='privileges') | first }}" + - debug: + msg: "{{ admin_priv }}" + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>local_role_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>always</td> + <td> + <div>A list of dict about role information present on ESXi host</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'privileges': ['Alarm.Acknowledge', 'Alarm.Create', 'Alarm.Delete', 'Alarm.DisableActions'], 'role_id': -12, 'role_info_label': 'Ansible User', 'role_info_summary': 'Ansible Automation user', 'role_name': 'AnsiUser1', 'role_system': True}, {'privileges': [], 'role_id': -5, 'role_info_label': 'No access', 'role_info_summary': 'Used for restricting granted access', 'role_name': 'NoAccess', 'role_system': True}, {'privileges': ['System.Anonymous', 'System.View'], 'role_id': -3, 'role_info_label': 'View', 'role_info_summary': 'Visibility access (cannot be granted)', 'role_name': 'View', 'role_system': True}]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_local_role_manager_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_local_role_manager_module.rst new file mode 100644 index 00000000..d85c49ac --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_local_role_manager_module.rst @@ -0,0 +1,465 @@ +.. _community.vmware.vmware_local_role_manager_module: + + +****************************************** +community.vmware.vmware_local_role_manager +****************************************** + +**Manage local roles on an ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to manage local roles on an ESXi host. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>action</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>add</li> + <li>remove</li> + <li><div style="color: blue"><b>set</b> ←</div></li> + </ul> + </td> + <td> + <div>This parameter is only valid while updating an existing role with privileges.</div> + <div><code>add</code> will add the privileges to the existing privilege list.</div> + <div><code>remove</code> will remove the privileges from the existing privilege list.</div> + <div><code>set</code> will replace the privileges of the existing privileges with user defined list of privileges.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>force_remove</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>If set to <code>False</code> then prevents the role from being removed if any permissions are using it.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>local_privilege_ids</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>The list of privileges that role needs to have.</div> + <div>Please see <a href='https://docs.vmware.com/en/VMware-vSphere/6.0/com.vmware.vsphere.security.doc/GUID-ED56F3C4-77D0-49E3-88B6-B99B8B437B62.html'>https://docs.vmware.com/en/VMware-vSphere/6.0/com.vmware.vsphere.security.doc/GUID-ED56F3C4-77D0-49E3-88B6-B99B8B437B62.html</a></div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>local_role_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The local role name to be managed.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>Indicate desired state of the role.</div> + <div>If the role already exists when <code>state=present</code>, the role info is updated.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - Be sure that the ESXi user used for login, has the appropriate rights to create / delete / edit roles + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add local role to ESXi + community.vmware.vmware_local_role_manager: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + local_role_name: vmware_qa + state: present + delegate_to: localhost + + - name: Add local role with privileges to ESXi + community.vmware.vmware_local_role_manager: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + local_role_name: vmware_qa + local_privilege_ids: [ 'Folder.Create', 'Folder.Delete'] + state: present + delegate_to: localhost + + - name: Remove local role from ESXi + community.vmware.vmware_local_role_manager: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + local_role_name: vmware_qa + state: absent + delegate_to: localhost + + - name: Add a privilege to an existing local role + community.vmware.vmware_local_role_manager: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + local_role_name: vmware_qa + local_privilege_ids: [ 'Folder.Create' ] + action: add + delegate_to: localhost + + - name: Remove a privilege to an existing local role + community.vmware.vmware_local_role_manager: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + local_role_name: vmware_qa + local_privilege_ids: [ 'Folder.Create' ] + action: remove + delegate_to: localhost + + - name: Set a privilege to an existing local role + community.vmware.vmware_local_role_manager: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + local_role_name: vmware_qa + local_privilege_ids: [ 'Folder.Create' ] + action: set + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>local_role_name</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>Name of local role</div> + <br/> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>new_privileges</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>always</td> + <td> + <div>List of privileges</div> + <br/> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>old_privileges</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>on update</td> + <td> + <div>List of privileges of role before the update</div> + <br/> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>privileges</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>always</td> + <td> + <div>List of privileges</div> + <br/> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>privileges_previous</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>on update</td> + <td> + <div>List of privileges of role before the update</div> + <br/> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>role_id</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td>always</td> + <td> + <div>ESXi generated local role id</div> + <br/> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>role_name</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>Name of local role</div> + <br/> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) +- Christian Kotte (@ckotte) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_local_user_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_local_user_info_module.rst new file mode 100644 index 00000000..d2123d7b --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_local_user_info_module.rst @@ -0,0 +1,232 @@ +.. _community.vmware.vmware_local_user_info_module: + + +*************************************** +community.vmware.vmware_local_user_info +*************************************** + +**Gather info about users on the given ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about users present on the given ESXi host system in VMware infrastructure. +- All variables and VMware object names are case sensitive. +- User must hold the 'Authorization.ModifyPermissions' privilege to invoke this module. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather info about all Users on given ESXi host system + community.vmware.vmware_local_user_info: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + delegate_to: localhost + register: all_user_info + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>local_user_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about all local users</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'role': 'admin', 'description': 'Administrator', 'group': False, 'user_id': 0, 'user_name': 'root', 'shell_access': True}, {'role': 'admin', 'description': 'DCUI User', 'group': False, 'user_id': 100, 'user_name': 'dcui', 'shell_access': False}]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) +- Christian Kotte (@ckotte) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_local_user_manager_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_local_user_manager_module.rst new file mode 100644 index 00000000..431e048b --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_local_user_manager_module.rst @@ -0,0 +1,264 @@ +.. _community.vmware.vmware_local_user_manager_module: + + +****************************************** +community.vmware.vmware_local_user_manager +****************************************** + +**Manage local users on an ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Manage local users on an ESXi host + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>local_user_description</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Description for the user.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>local_user_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The local user name to be changed.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>local_user_password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password to be set.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>Indicate desired state of the user. If the user already exists when <code>state=present</code>, the user info is updated</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - Be sure that the ESXi user used for login, has the appropriate rights to create / delete / edit users + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add local user to ESXi + community.vmware.vmware_local_user_manager: + hostname: esxi_hostname + username: root + password: vmware + local_user_name: foo + local_user_password: password + delegate_to: localhost + + + + +Status +------ + + +Authors +~~~~~~~ + +- Andreas Nafpliotis (@nafpliot-ibm) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_maintenancemode_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_maintenancemode_module.rst new file mode 100644 index 00000000..d45e24ba --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_maintenancemode_module.rst @@ -0,0 +1,360 @@ +.. _community.vmware.vmware_maintenancemode_module: + + +*************************************** +community.vmware.vmware_maintenancemode +*************************************** + +**Place a host into maintenance mode** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used for placing a ESXi host into maintenance mode. +- Support for VSAN compliant maintenance mode when selected. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the host as defined in vCenter.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>evacuate</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>If set to <code>True</code>, evacuate all powered off VMs.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>Enter or exit maintenance mode.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">0</div> + </td> + <td> + <div>Specify a timeout for the operation.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vsan</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>ensureObjectAccessibility</li> + <li>evacuateAllData</li> + <li>noAction</li> + </ul> + </td> + <td> + <div>Specify which VSAN compliant mode to enter.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: vsan_mode</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Enter VSAN-Compliant Maintenance Mode + community.vmware.vmware_maintenancemode: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ esxi_hostname }}" + vsan: ensureObjectAccessibility + evacuate: true + timeout: 3600 + state: present + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>Name of host in vCenter</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">esxi.local.domain</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>hostsystem</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>Name of vim reference</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">'vim.HostSystem:host-236'</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>status</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>Action taken</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">ENTER</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Jay Jahns (@jjahns) <jjahns@vmware.com> +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_migrate_vmk_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_migrate_vmk_module.rst new file mode 100644 index 00000000..626a0797 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_migrate_vmk_module.rst @@ -0,0 +1,316 @@ +.. _community.vmware.vmware_migrate_vmk_module: + + +*********************************** +community.vmware.vmware_migrate_vmk +*********************************** + +**Migrate a VMK interface from VSS to VDS** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Migrate a VMK interface from VSS to VDS + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>current_portgroup_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Portgroup name VMK interface is currently on</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>current_switch_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Switch VMK interface is currently on</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>device</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>VMK interface name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname to be managed</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>migrate_portgroup_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Portgroup name to migrate VMK interface to</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>migrate_switch_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Switch name to migrate VMK interface to</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>migrate_vlan_id</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.4.0</div> + </td> + <td> + </td> + <td> + <div>VLAN to use for the VMK interface when migrating from VDS to VSS</div> + <div>Will be ignored when migrating from VSS to VDS</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Migrate Management vmk + community.vmware.vmware_migrate_vmk: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ esxi_hostname }}" + device: vmk1 + current_switch_name: temp_vswitch + current_portgroup_name: esx-mgmt + migrate_switch_name: dvSwitch + migrate_portgroup_name: Management + delegate_to: localhost + + + + +Status +------ + + +Authors +~~~~~~~ + +- Joseph Callen (@jcpowermac) +- Russell Teague (@mtnbikenc) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_object_custom_attributes_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_object_custom_attributes_info_module.rst new file mode 100644 index 00000000..70cfd1f2 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_object_custom_attributes_info_module.rst @@ -0,0 +1,320 @@ +.. _community.vmware.vmware_object_custom_attributes_info_module: + + +***************************************************** +community.vmware.vmware_object_custom_attributes_info +***************************************************** + +**Gather custom attributes of an object** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be gathered custom attributes of an object. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to get if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>object_name</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>object_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the object to work with.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>object_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>Datacenter</li> + <li>Cluster</li> + <li>HostSystem</li> + <li>ResourcePool</li> + <li>Folder</li> + <li>VirtualMachine</li> + <li>DistributedVirtualSwitch</li> + <li>DistributedVirtualPortgroup</li> + <li>Datastore</li> + </ul> + </td> + <td> + <div>Type of an object to work with.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - Supports ``check_mode``. + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather custom attributes of a virtual machine + community.vmware.vmware_object_custom_attributes_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + object_type: VirtualMachine + object_name: "{{ object_name }}" + register: vm_attributes + + - name: Gather custom attributes of a virtual machine with moid + community.vmware.vmware_object_custom_attributes_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + object_type: VirtualMachine + moid: "{{ moid }}" + register: vm_attributes + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>custom_attributes</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>always</td> + <td> + <div>list of custom attributes of an object.</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[ + { + "attribute": "example01", + "key": 132, + "type": "VirtualMachine", + "value": "10" + }, + { + "attribute": "example02", + "key": 131, + "type": "VirtualMachine", + "value": "20" + }, + { + "attribute": "example03", + "key": 130, + "type": "VirtualMachine", + "value": null + } + ]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- sky-joker (@sky-joker) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_object_rename_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_object_rename_module.rst new file mode 100644 index 00000000..e9d69b8b --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_object_rename_module.rst @@ -0,0 +1,363 @@ +.. _community.vmware.vmware_object_rename_module: + + +************************************* +community.vmware.vmware_object_rename +************************************* + +**Renames VMware objects** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to rename VMware objects. +- All variables and VMware object names are case sensitive. +- Renaming Host and Network is not supported by VMware APIs. + + + +Requirements +------------ +The below requirements are needed on the host that executes this module. + +- vSphere Automation SDK + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>new_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>New name for VMware object.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: object_new_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>object_moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed object id of the VMware object to work with.</div> + <div>Mutually exclusive with <code>object_name</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>object_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the object to work with.</div> + <div>Mutually exclusive with <code>object_moid</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>object_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>ClusterComputeResource</li> + <li>Cluster</li> + <li>Datacenter</li> + <li>Datastore</li> + <li>Folder</li> + <li>Network</li> + <li>ResourcePool</li> + <li>VM</li> + <li>VirtualMachine</li> + </ul> + </td> + <td> + <div>Type of object to work with.</div> + <div>Valid options are Cluster, ClusterComputeResource, Datacenter, Datastore, Folder, ResourcePool, VM or VirtualMachine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>protocol</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>http</li> + <li><div style="color: blue"><b>https</b> ←</div></li> + </ul> + </td> + <td> + <div>The connection to protocol.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid.</div> + <div>Set to <code>False</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + </td> + </tr> + </table> + <br/> + + + + +Examples +-------- + +.. code-block:: yaml + + - name: Rename a virtual machine + community.vmware.vmware_object_rename: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + new_name: Fedora_31 + object_name: Fedora_VM + object_type: VirtualMachine + delegate_to: localhost + + - name: Rename a virtual machine using moid + community.vmware.vmware_object_rename: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + new_name: Fedora_31 + object_moid: vm-14 + object_type: VirtualMachine + delegate_to: localhost + + - name: Rename a datacenter + community.vmware.vmware_object_rename: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + new_name: Asia_Datacenter + object_name: dc1 + object_type: Datacenter + delegate_to: localhost + + - name: Rename a folder with moid + community.vmware.vmware_object_rename: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + new_name: backup + object_moid: group-v46 + object_type: Folder + delegate_to: localhost + + - name: Rename a cluster with moid + community.vmware.vmware_object_rename: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + new_name: CCR_1 + object_moid: domain-c33 + object_type: Cluster + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>rename_status</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>on success</td> + <td> + <div>metadata about VMware object rename operation</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'current_name': 'Fedora_31', 'desired_name': 'Fedora_31', 'previous_name': 'Fedora_VM'}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_object_role_permission_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_object_role_permission_info_module.rst new file mode 100644 index 00000000..33bf23b3 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_object_role_permission_info_module.rst @@ -0,0 +1,320 @@ +.. _community.vmware.vmware_object_role_permission_info_module: + + +*************************************************** +community.vmware.vmware_object_role_permission_info +*************************************************** + +**Gather information about object's permissions** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather object permissions on the given VMware object. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed object ID for the given object.</div> + <div>Mutually exclusive with <em>object_name</em>.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: object_moid</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>object_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The object name to assigned permission.</div> + <div>Mutually exclusive with <em>moid</em>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>object_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>Folder</b> ←</div></li> + <li>VirtualMachine</li> + <li>Datacenter</li> + <li>ResourcePool</li> + <li>Datastore</li> + <li>Network</li> + <li>HostSystem</li> + <li>ComputeResource</li> + <li>ClusterComputeResource</li> + <li>DistributedVirtualSwitch</li> + <li>DistributedVirtualPortgroup</li> + <li>StoragePod</li> + </ul> + </td> + <td> + <div>The object type being targeted.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>principal</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The optional name of an entity, such as a user, assigned permissions on an object.</div> + <div>If provided, actual permissions on the specified object are returned for the principal, instead of roles.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - The ESXi login user must have the appropriate rights to administer permissions. + - Supports check mode. + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather role information about Datastore + community.vmware.vmware_object_role_permission_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + object_name: ds_200 + object_type: Datastore + + - name: Gather permissions on Datastore for a User + community.vmware.vmware_object_role_permission_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + principal: some.user@company.com + object_name: ds_200 + object_type: Datastore + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>permission_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>always</td> + <td> + <div>information about object's permission</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'principal': 'VSPHERE.LOCAL\\vpxd-extension-12e0b667-892c-4694-8a5e-f13147e45dbd', 'propagate': True, 'role_id': -1, 'role_name': 'Admin'}]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_object_role_permission_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_object_role_permission_module.rst new file mode 100644 index 00000000..beb461b3 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_object_role_permission_module.rst @@ -0,0 +1,413 @@ +.. _community.vmware.vmware_object_role_permission_module: + + +********************************************** +community.vmware.vmware_object_role_permission +********************************************** + +**Manage local roles on an ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to manage object permissions on the given host. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>group</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The group to be assigned permission.</div> + <div>Required if <code>principal</code> is not specified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>object_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The object name to assigned permission.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>object_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>Folder</b> ←</div></li> + <li>VirtualMachine</li> + <li>Datacenter</li> + <li>ResourcePool</li> + <li>Datastore</li> + <li>Network</li> + <li>HostSystem</li> + <li>ComputeResource</li> + <li>ClusterComputeResource</li> + <li>DistributedVirtualSwitch</li> + <li>DistributedVirtualPortgroup</li> + <li>StoragePod</li> + </ul> + </td> + <td> + <div>The object type being targeted.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>principal</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The user to be assigned permission.</div> + <div>Required if <code>group</code> is not specified.</div> + <div>If specifying domain user, required separator of domain uses backslash.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>recursive</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Should the permissions be recursively applied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>role</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The role to be assigned permission.</div> + <div>User can also specify role name presented in Web UI. Supported added in 1.5.0.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>Indicate desired state of the object's permission.</div> + <div>When <code>state=present</code>, the permission will be added if it doesn't already exist.</div> + <div>When <code>state=absent</code>, the permission is removed if it exists.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - The ESXi login user must have the appropriate rights to administer permissions. + - Permissions for a distributed switch must be defined and managed on either the datacenter or a folder containing the switch. + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Assign user to VM folder + community.vmware.vmware_object_role_permission: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + role: Admin + principal: user_bob + object_name: services + state: present + delegate_to: localhost + + - name: Remove user from VM folder + community.vmware.vmware_object_role_permission: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + role: Admin + principal: user_bob + object_name: services + state: absent + delegate_to: localhost + + - name: Assign finance group to VM folder + community.vmware.vmware_object_role_permission: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + role: Limited Users + group: finance + object_name: Accounts + state: present + delegate_to: localhost + + - name: Assign view_user Read Only permission at root folder + community.vmware.vmware_object_role_permission: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + role: ReadOnly + principal: view_user + object_name: rootFolder + state: present + delegate_to: localhost + + - name: Assign domain user to VM folder + community.vmware.vmware_object_role_permission: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: false + role: Admin + principal: "vsphere.local\\domainuser" + object_name: services + state: present + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>changed</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td>always</td> + <td> + <div>whether or not a change was made to the object's role</div> + <br/> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Derek Rushing (@kryptsi) +- Joseph Andreatta (@vmwjoseph) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_portgroup_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_portgroup_info_module.rst new file mode 100644 index 00000000..edf3ad7d --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_portgroup_info_module.rst @@ -0,0 +1,291 @@ +.. _community.vmware.vmware_portgroup_info_module: + + +************************************** +community.vmware.vmware_portgroup_info +************************************** + +**Gathers info about an ESXi host's Port Group configuration** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about an ESXi host's Port Group configuration when ESXi hostname or Cluster name is given. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster.</div> + <div>Info will be returned for all hostsystem belonging to this cluster name.</div> + <div>If <code>esxi_hostname</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname to gather information from.</div> + <div>If <code>cluster_name</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>policies</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Gather information about Security, Traffic Shaping, as well as Teaming and failover.</div> + <div>The property <code>ts</code> stands for Traffic Shaping and <code>lb</code> for Load Balancing.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather portgroup info about all ESXi Host in given Cluster + community.vmware.vmware_portgroup_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + delegate_to: localhost + + - name: Gather portgroup info about ESXi Host system + community.vmware.vmware_portgroup_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>hosts_portgroup_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>on success</td> + <td> + <div>metadata about host's portgroup configuration</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'esx01': [{'failback': True, 'failover_active': ['vmnic0', 'vmnic1'], 'failover_standby': [], 'failure_detection': 'link_status_only', 'lb': 'loadbalance_srcid', 'notify': True, 'portgroup': 'Management Network', 'security': [False, False, False], 'ts': 'No override', 'vlan_id': 0, 'vswitch': 'vSwitch0'}, {'failback': True, 'failover_active': ['vmnic2'], 'failover_standby': ['vmnic3'], 'failure_detection': 'No override', 'lb': 'No override', 'notify': True, 'portgroup': 'vMotion', 'security': [False, False, False], 'ts': 'No override', 'vlan_id': 33, 'vswitch': 'vSwitch1'}]}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) +- Christian Kotte (@ckotte) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_portgroup_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_portgroup_module.rst new file mode 100644 index 00000000..887c7b9a --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_portgroup_module.rst @@ -0,0 +1,715 @@ +.. _community.vmware.vmware_portgroup_module: + + +********************************* +community.vmware.vmware_portgroup +********************************* + +**Create a VMware portgroup** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Create a VMware Port Group on a VMware Standard Switch (vSS) for given ESXi host(s) or hosts of given cluster. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of cluster name for host membership.</div> + <div>Portgroup will be created on all hosts of the given cluster.</div> + <div>This option is required if <code>hosts</code> is not specified.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: cluster</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hosts</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>List of name of host or hosts on which portgroup needs to be added.</div> + <div>This option is required if <code>cluster_name</code> is not specified.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: esxi_hostname</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>portgroup</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Portgroup name to add.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: portgroup_name</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>security</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Network policy specifies layer 2 security settings for a portgroup such as promiscuous mode, where guest adapter listens to all the packets, MAC address changes and forged transmits.</div> + <div>Dict which configures the different security values for portgroup.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: security_policy, network_policy</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>forged_transmits</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates whether forged transmits are allowed.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mac_changes</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates whether mac changes are allowed.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>promiscuous_mode</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates whether promiscuous mode is allowed.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>Determines if the portgroup should be present or not.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>switch</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>vSwitch to modify.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: switch_name, vswitch</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>teaming</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Dictionary which configures the different teaming values for portgroup.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: teaming_policy</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>active_adapters</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>List of active adapters used for load balancing.</div> + <div>All vmnics are used as active adapters if <code>active_adapters</code> and <code>standby_adapters</code> are not defined.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>failback</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicate whether or not to use a failback when restoring links.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>load_balancing</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>loadbalance_ip</li> + <li>loadbalance_srcmac</li> + <li>loadbalance_srcid</li> + <li>failover_explicit</li> + <li>None</li> + </ul> + </td> + <td> + <div>Network adapter teaming policy.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: load_balance_policy</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>network_failure_detection</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>link_status_only</li> + <li>beacon_probing</li> + </ul> + </td> + <td> + <div>Network failure detection.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>notify_switches</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicate whether or not to notify the physical switch if a link fails.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>standby_adapters</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>List of standby adapters used for failover.</div> + <div>All vmnics are used as active adapters if <code>active_adapters</code> and <code>standby_adapters</code> are not defined.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>traffic_shaping</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Dictionary which configures traffic shaping for the switch.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>average_bandwidth</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Average bandwidth (kbit/s).</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>burst_size</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Burst size (KB).</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Status of Traffic Shaping Policy.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>peak_bandwidth</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Peak bandwidth (kbit/s).</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vlan_id</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">0</div> + </td> + <td> + <div>VLAN ID to assign to portgroup.</div> + <div>Set to 0 (no VLAN tagging) by default.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: vlan</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add Management Network VM Portgroup + community.vmware.vmware_portgroup: + hostname: "{{ esxi_hostname }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + switch: "{{ vswitch_name }}" + portgroup: "{{ portgroup_name }}" + vlan_id: "{{ vlan_id }}" + delegate_to: localhost + + - name: Add Portgroup with Promiscuous Mode Enabled + community.vmware.vmware_portgroup: + hostname: "{{ esxi_hostname }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + switch: "{{ vswitch_name }}" + portgroup: "{{ portgroup_name }}" + security: + promiscuous_mode: True + delegate_to: localhost + + - name: Add Management Network VM Portgroup to specific hosts + community.vmware.vmware_portgroup: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + hosts: [esxi_hostname_one] + switch: "{{ vswitch_name }}" + portgroup: "{{ portgroup_name }}" + vlan_id: "{{ vlan_id }}" + delegate_to: localhost + + - name: Add Management Network VM Portgroup to all hosts in a cluster + community.vmware.vmware_portgroup: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + cluster_name: "{{ cluster_name }}" + switch: "{{ vswitch_name }}" + portgroup: "{{ portgroup_name }}" + vlan_id: "{{ vlan_id }}" + delegate_to: localhost + + - name: Remove Management Network VM Portgroup to all hosts in a cluster + community.vmware.vmware_portgroup: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + cluster_name: "{{ cluster_name }}" + switch: "{{ vswitch_name }}" + portgroup: "{{ portgroup_name }}" + vlan_id: "{{ vlan_id }}" + state: absent + delegate_to: localhost + + - name: Add Portgroup with all settings defined + community.vmware.vmware_portgroup: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ inventory_hostname }}" + switch: "{{ vswitch_name }}" + portgroup: "{{ portgroup_name }}" + vlan_id: 10 + security: + promiscuous_mode: False + mac_changes: False + forged_transmits: False + traffic_shaping: + enabled: True + average_bandwidth: 100000 + peak_bandwidth: 100000 + burst_size: 102400 + teaming: + load_balancing: failover_explicit + network_failure_detection: link_status_only + notify_switches: true + failback: true + active_adapters: + - vmnic0 + standby_adapters: + - vmnic1 + delegate_to: localhost + register: teaming_result + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the portgroup</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'esxi01.example.com': {'changed': True, 'failback': 'No override', 'failover_active': 'No override', 'failover_standby': 'No override', 'failure_detection': 'No override', 'load_balancing': 'No override', 'msg': 'Port Group added', 'notify_switches': 'No override', 'portgroup': 'vMotion', 'sec_forged_transmits': False, 'sec_mac_changes': False, 'sec_promiscuous_mode': False, 'traffic_shaping': 'No override', 'vlan_id': 33, 'vswitch': 'vSwitch1'}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Joseph Callen (@jcpowermac) +- Russell Teague (@mtnbikenc) +- Abhijeet Kasurde (@Akasurde) +- Christian Kotte (@ckotte) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_recommended_datastore_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_recommended_datastore_module.rst new file mode 100644 index 00000000..84f17117 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_recommended_datastore_module.rst @@ -0,0 +1,266 @@ +.. _community.vmware.vmware_recommended_datastore_module: + + +********************************************* +community.vmware.vmware_recommended_datastore +********************************************* + +**Returns the recommended datastore from a SDRS-enabled datastore cluster** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module provides the recommended datastore name from a datastore cluster only if the SDRS is enabled for the specified datastore cluster + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datacenter.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore_cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datastore cluster.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - Supports Check mode. + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Get recommended datastore from a Storage DRS-enabled datastore cluster + community.vmware.vmware_recommended_datastore: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + validate_certs: no + datastore_cluster: '{{ datastore_cluster_name }}' + datacenter: '{{ datacenter }}' + register: recommended_ds + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>recommended_datastore</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the recommended datastore</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'recommended_datastore': 'datastore-01'}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Unknown (@MalfuncEddie) +- Alina Buzachis (@alinabuzachis) +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_resource_pool_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_resource_pool_info_module.rst new file mode 100644 index 00000000..e7cab3b2 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_resource_pool_info_module.rst @@ -0,0 +1,229 @@ +.. _community.vmware.vmware_resource_pool_info_module: + + +****************************************** +community.vmware.vmware_resource_pool_info +****************************************** + +**Gathers info about resource pool information** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about all resource configuration information. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather resource pool info about all resource pools available + community.vmware.vmware_resource_pool_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + register: rp_info + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>resource_pool_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>on success</td> + <td> + <div>metadata about resource pool configuration</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'cpu_allocation_expandable_reservation': False, 'cpu_allocation_limit': 4121, 'cpu_allocation_overhead_limit': None, 'cpu_allocation_reservation': 4121, 'cpu_allocation_shares': 9000, 'cpu_allocation_shares_level': 'custom', 'mem_allocation_expandable_reservation': False, 'mem_allocation_limit': 961, 'mem_allocation_overhead_limit': None, 'mem_allocation_reservation': 961, 'mem_allocation_shares': 9000, 'mem_allocation_shares_level': 'custom', 'name': 'Resources', 'overall_status': 'green', 'owner': 'DC0_H0', 'runtime_cpu_max_usage': 4121, 'runtime_cpu_overall_usage': 0, 'runtime_cpu_reservation_used': 0, 'runtime_cpu_reservation_used_vm': 0, 'runtime_cpu_unreserved_for_pool': 4121, 'runtime_cpu_unreserved_for_vm': 4121, 'runtime_memory_max_usage': 1007681536, 'runtime_memory_overall_usage': 0, 'runtime_memory_reservation_used': 0, 'runtime_memory_reservation_used_vm': 0, 'runtime_memory_unreserved_for_pool': 1007681536, 'runtime_memory_unreserved_for_vm': 1007681536}]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_resource_pool_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_resource_pool_module.rst new file mode 100644 index 00000000..11748a5f --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_resource_pool_module.rst @@ -0,0 +1,571 @@ +.. _community.vmware.vmware_resource_pool_module: + + +************************************* +community.vmware.vmware_resource_pool +************************************* + +**Add/remove resource pools to/from vCenter** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to add/remove a resource pool to/from vCenter + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster to configure the resource pool.</div> + <div>This parameter is required if <code>esxi_hostname</code> or <code>parent_resource_pool</code> is not specified.</div> + <div>The <code>cluster</code>, <code>esxi_hostname</code> and <code>parent_resource_pool</code> parameters are mutually exclusive.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cpu_allocation_shares</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">4000</div> + </td> + <td> + <div>The number of cpu shares allocated.</div> + <div>This value is only set if <em>cpu_shares</em> is set to <code>custom</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cpu_expandable_reservations</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>In a resource pool with an expandable reservation, the reservation on a resource pool can grow beyond the specified value.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cpu_limit</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">-1</div> + </td> + <td> + <div>The utilization of a virtual machine/resource pool will not exceed this limit, even if there are available resources.</div> + <div>The default value -1 indicates no limit.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cpu_reservation</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">0</div> + </td> + <td> + <div>Amount of resource that is guaranteed available to the virtual machine or resource pool.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cpu_shares</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>high</li> + <li>custom</li> + <li>low</li> + <li><div style="color: blue"><b>normal</b> ←</div></li> + </ul> + </td> + <td> + <div>Memory shares are used in case of resource contention.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the datacenter.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the host to configure the resource pool.</div> + <div>The host must not be member of a cluster.</div> + <div>This parameter is required if <code>cluster</code> or <code>parent_resource_pool</code> is not specified.</div> + <div>The <code>cluster</code>, <code>esxi_hostname</code> and <code>parent_resource_pool</code> parameters are mutually exclusive.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mem_allocation_shares</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">163840</div> + </td> + <td> + <div>The number of memory shares allocated.</div> + <div>This value is only set if <em>mem_shares</em> is set to <code>custom</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mem_expandable_reservations</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>In a resource pool with an expandable reservation, the reservation on a resource pool can grow beyond the specified value.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mem_limit</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">-1</div> + </td> + <td> + <div>The utilization of a virtual machine/resource pool will not exceed this limit, even if there are available resources.</div> + <div>The default value -1 indicates no limit.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mem_reservation</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">0</div> + </td> + <td> + <div>Amount of resource that is guaranteed available to the virtual machine or resource pool.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mem_shares</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>high</li> + <li>custom</li> + <li>low</li> + <li><div style="color: blue"><b>normal</b> ←</div></li> + </ul> + </td> + <td> + <div>Memory shares are used in case of resource contention.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>parent_resource_pool</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the parent resource pool.</div> + <div>This parameter is required if <code>cluster</code> or <code>esxi_hostname</code> is not specified.</div> + <div>The <code>cluster</code>, <code>esxi_hostname</code> and <code>parent_resource_pool</code> parameters are mutually exclusive.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>resource_pool</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Resource pool name to manage.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>Add or remove the resource pool</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add resource pool to vCenter + community.vmware.vmware_resource_pool: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter: '{{ datacenter_name }}' + cluster: '{{ cluster_name }}' + resource_pool: '{{ resource_pool_name }}' + mem_shares: normal + mem_limit: -1 + mem_reservation: 0 + mem_expandable_reservations: true + cpu_shares: normal + cpu_limit: -1 + cpu_reservation: 0 + cpu_expandable_reservations: true + state: present + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>instance</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the new resource pool</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">None</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>resource_pool_config</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>config data about the resource pool, version added 1.4.0</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{ + "_vimtype": "vim.ResourceConfigSpec", + "changeVersion": null, + "cpuAllocation": { + "_vimtype": "vim.ResourceAllocationInfo", + "expandableReservation": true, + "limit": -1, + "overheadLimit": null, + "reservation": 0, + "shares": { + "_vimtype": "vim.SharesInfo", + "level": "normal", + "shares": 4000 + } + }, + "entity": "vim.ResourcePool:resgroup-1108", + "lastModified": null, + "memoryAllocation": { + "_vimtype": "vim.ResourceAllocationInfo", + "expandableReservation": true, + "limit": -1, + "overheadLimit": null, + "reservation": 0, + "shares": { + "_vimtype": "vim.SharesInfo", + "level": "high", + "shares": 327680 + } + }, + "name": "test_pr1", + "scaleDescendantsShares": null + }</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Davis Phillips (@dav1x) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_tag_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_tag_info_module.rst new file mode 100644 index 00000000..08282393 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_tag_info_module.rst @@ -0,0 +1,284 @@ +.. _community.vmware.vmware_tag_info_module: + + +******************************** +community.vmware.vmware_tag_info +******************************** + +**Manage VMware tag info** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to collect information about VMware tags. +- Tag feature is introduced in vSphere 6 version, so this module is not supported in the earlier versions of vSphere. +- All variables and VMware object names are case sensitive. + + + +Requirements +------------ +The below requirements are needed on the host that executes this module. + +- vSphere Automation SDK + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>protocol</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>http</li> + <li><div style="color: blue"><b>https</b> ←</div></li> + </ul> + </td> + <td> + <div>The connection to protocol.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid.</div> + <div>Set to <code>False</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + </td> + </tr> + </table> + <br/> + + + + +Examples +-------- + +.. code-block:: yaml + + - name: Get info about tag + community.vmware.vmware_tag_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + delegate_to: localhost + + - name: Get category id from the given tag + community.vmware.vmware_tag_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + delegate_to: localhost + register: tag_details + - debug: + msg: "{{ tag_details.tag_facts['fedora_machines']['tag_category_id'] }}" + + - name: Gather tag id from the given tag + community.vmware.vmware_tag_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + delegate_to: localhost + register: tag_results + - set_fact: + tag_id: "{{ item.tag_id }}" + loop: "{{ tag_results.tag_info|json_query(query) }}" + vars: + query: "[?tag_name==`tag0001`]" + - debug: var=tag_id + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>tag_facts</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>on success</td> + <td> + <div>dictionary of tag metadata</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'Sample_Tag_0002': {'tag_category_id': 'urn:vmomi:InventoryServiceCategory:6de17f28-7694-43ec-a783-d09c141819ae:GLOBAL', 'tag_description': 'Sample Description', 'tag_id': 'urn:vmomi:InventoryServiceTag:a141f212-0f82-4f05-8eb3-c49647c904c5:GLOBAL', 'tag_used_by': []}, 'fedora_machines': {'tag_category_id': 'urn:vmomi:InventoryServiceCategory:baa90bae-951b-4e87-af8c-be681a1ba30c:GLOBAL', 'tag_description': '', 'tag_id': 'urn:vmomi:InventoryServiceTag:7d27d182-3ecd-4200-9d72-410cc6398a8a:GLOBAL', 'tag_used_by': []}, 'ubuntu_machines': {'tag_category_id': 'urn:vmomi:InventoryServiceCategory:89573410-29b4-4cac-87a4-127c084f3d50:GLOBAL', 'tag_description': '', 'tag_id': 'urn:vmomi:InventoryServiceTag:7f3516d5-a750-4cb9-8610-6747eb39965d:GLOBAL', 'tag_used_by': []}}</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>tag_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>on success</td> + <td> + <div>list of tag metadata</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'tag_name': 'Sample_Tag_0002', 'tag_category_id': 'urn:vmomi:InventoryServiceCategory:6de17f28-7694-43ec-a783-d09c141819ae:GLOBAL', 'tag_description': 'Sample Description', 'tag_id': 'urn:vmomi:InventoryServiceTag:a141f212-0f82-4f05-8eb3-c49647c904c5:GLOBAL', 'tag_used_by': []}, {'tag_name': 'Sample_Tag_0002', 'tag_category_id': 'urn:vmomi:InventoryServiceCategory:6de17f28-7694-43ec-a783-d09c141819ae:GLOBAL', 'tag_description': '', 'tag_id': 'urn:vmomi:InventoryServiceTag:7d27d182-3ecd-4200-9d72-410cc6398a8a:GLOBAL', 'tag_used_by': []}, {'tag_name': 'ubuntu_machines', 'tag_category_id': 'urn:vmomi:InventoryServiceCategory:89573410-29b4-4cac-87a4-127c084f3d50:GLOBAL', 'tag_description': '', 'tag_id': 'urn:vmomi:InventoryServiceTag:7f3516d5-a750-4cb9-8610-6747eb39965d:GLOBAL', 'tag_used_by': []}]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_tag_manager_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_tag_manager_module.rst new file mode 100644 index 00000000..443ff4c3 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_tag_manager_module.rst @@ -0,0 +1,430 @@ +.. _community.vmware.vmware_tag_manager_module: + + +*********************************** +community.vmware.vmware_tag_manager +*********************************** + +**Manage association of VMware tags with VMware objects** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to assign / remove VMware tags from the given VMware objects. +- Tag feature is introduced in vSphere 6 version, so this module is not supported in the earlier versions of vSphere. +- All variables and VMware object names are case sensitive. + + + +Requirements +------------ +The below requirements are needed on the host that executes this module. + +- vSphere Automation SDK + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed object ID for the given object.</div> + <div>Required if <code>object_name</code> is not set.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>object_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the object to work with.</div> + <div>For DistributedVirtualPortgroups the format should be "switch_name:portgroup_name"</div> + <div>Required if <code>moid</code> is not set.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>object_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>VirtualMachine</li> + <li>Datacenter</li> + <li>ClusterComputeResource</li> + <li>HostSystem</li> + <li>DistributedVirtualSwitch</li> + <li>DistributedVirtualPortgroup</li> + <li>Datastore</li> + <li>DatastoreCluster</li> + <li>ResourcePool</li> + <li>Folder</li> + </ul> + </td> + <td> + <div>Type of object to work with.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>protocol</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>http</li> + <li><div style="color: blue"><b>https</b> ←</div></li> + </ul> + </td> + <td> + <div>The connection to protocol.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>present</li> + <li>absent</li> + <li><div style="color: blue"><b>add</b> ←</div></li> + <li>remove</li> + <li>set</li> + </ul> + </td> + <td> + <div>If <code>state</code> is set to <code>add</code> or <code>present</code> will add the tags to the existing tag list of the given object.</div> + <div>If <code>state</code> is set to <code>remove</code> or <code>absent</code> will remove the tags from the existing tag list of the given object.</div> + <div>If <code>state</code> is set to <code>set</code> will replace the tags of the given objects with the user defined list of tags.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>tag_names</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=raw</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>List of tag(s) to be managed.</div> + <div>User can also specify category name by specifying colon separated value. For example, "category_name:tag_name".</div> + <div>User can also specify tag and category as dict, when tag or category contains colon. See example for more information. Added in version 2.10.</div> + <div>User can skip category name if you have unique tag names.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid.</div> + <div>Set to <code>False</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + </td> + </tr> + </table> + <br/> + + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add tags to a virtual machine + community.vmware.vmware_tag_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + tag_names: + - Sample_Tag_0002 + - Category_0001:Sample_Tag_0003 + object_name: Fedora_VM + object_type: VirtualMachine + state: add + delegate_to: localhost + + - name: Specify tag and category as dict + community.vmware.vmware_tag_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + tag_names: + - tag: tag_0001 + category: cat_0001 + - tag: tag_0002 + category: cat_0002 + object_name: Fedora_VM + object_type: VirtualMachine + state: add + delegate_to: localhost + + - name: Remove a tag from a virtual machine + community.vmware.vmware_tag_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + tag_names: + - Sample_Tag_0002 + object_name: Fedora_VM + object_type: VirtualMachine + state: remove + delegate_to: localhost + + - name: Add tags to a distributed virtual switch + community.vmware.vmware_tag_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + tag_names: + - Sample_Tag_0003 + object_name: Switch_0001 + object_type: DistributedVirtualSwitch + state: add + delegate_to: localhost + + - name: Add tags to a distributed virtual portgroup + community.vmware.vmware_tag_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + tag_names: + - Sample_Tag_0004 + object_name: Switch_0001:Portgroup_0001 + object_type: DistributedVirtualPortgroup + state: add + delegate_to: localhost + + + - name: Get information about folders + community.vmware.vmware_folder_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + datacenter: 'Asia-Datacenter1' + delegate_to: localhost + register: r + - name: Set Managed object ID for the given folder + ansible.builtin.set_fact: + folder_mo_id: "{{ (r.flat_folder_info | selectattr('path', 'equalto', '/Asia-Datacenter1/vm/tier1/tier2') | map(attribute='moid'))[0] }}" + - name: Add tags to a Folder using managed object id + community.vmware.vmware_tag_manager: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + tag_names: + - Sample_Cat_0004:Sample_Tag_0004 + object_type: Folder + moid: "{{ folder_mo_id }}" + state: add + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>tag_status</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>on success</td> + <td> + <div>metadata about tags related to object configuration</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'current_tags': ['backup', 'security'], 'desired_tags': ['security'], 'previous_tags': ['backup', 'security']}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) +- Frederic Van Reet (@GBrawl) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_tag_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_tag_module.rst new file mode 100644 index 00000000..9f87b4d3 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_tag_module.rst @@ -0,0 +1,341 @@ +.. _community.vmware.vmware_tag_module: + + +*************************** +community.vmware.vmware_tag +*************************** + +**Manage VMware tags** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to create / delete / update VMware tags. +- Tag feature is introduced in vSphere 6 version, so this module is not supported in the earlier versions of vSphere. +- All variables and VMware object names are case sensitive. + + + +Requirements +------------ +The below requirements are needed on the host that executes this module. + +- vSphere Automation SDK + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>category_id</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The unique ID generated by vCenter should be used to.</div> + <div>User can get this unique ID from facts module.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>protocol</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>http</li> + <li><div style="color: blue"><b>https</b> ←</div></li> + </ul> + </td> + <td> + <div>The connection to protocol.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>The state of tag.</div> + <div>If set to <code>present</code> and tag does not exists, then tag is created.</div> + <div>If set to <code>present</code> and tag exists, then tag is updated.</div> + <div>If set to <code>absent</code> and tag exists, then tag is deleted.</div> + <div>If set to <code>absent</code> and tag does not exists, no action is taken.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>tag_description</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>The tag description.</div> + <div>This is required only if <code>state</code> is set to <code>present</code>.</div> + <div>This parameter is ignored, when <code>state</code> is set to <code>absent</code>.</div> + <div>Process of updating tag only allows description change.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>tag_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of tag to manage.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid.</div> + <div>Set to <code>False</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + </td> + </tr> + </table> + <br/> + + + + +Examples +-------- + +.. code-block:: yaml + + - name: Create a tag + community.vmware.vmware_tag: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + category_id: 'urn:vmomi:InventoryServiceCategory:e785088d-6981-4b1c-9fb8-1100c3e1f742:GLOBAL' + tag_name: Sample_Tag_0002 + tag_description: Sample Description + state: present + delegate_to: localhost + + - name: Update tag description + community.vmware.vmware_tag: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + tag_name: Sample_Tag_0002 + tag_description: Some fancy description + state: present + delegate_to: localhost + + - name: Delete tag + community.vmware.vmware_tag: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + tag_name: Sample_Tag_0002 + state: absent + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>tag_status</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>on success</td> + <td> + <div>dictionary of tag metadata</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'msg': "Tag 'Sample_Tag_0002' created.", 'tag_id': 'urn:vmomi:InventoryServiceTag:bff91819-f529-43c9-80ca-1c9dfda09441:GLOBAL'}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_target_canonical_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_target_canonical_info_module.rst new file mode 100644 index 00000000..326bdbb7 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_target_canonical_info_module.rst @@ -0,0 +1,314 @@ +.. _community.vmware.vmware_target_canonical_info_module: + + +********************************************* +community.vmware.vmware_target_canonical_info +********************************************* + +**Return canonical (NAA) from an ESXi host system** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about canonical (NAA) from an ESXi host based on SCSI target ID. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster.</div> + <div>Info about all SCSI devices for all host system in the given cluster is returned.</div> + <div>This parameter is required, if <code>esxi_hostname</code> is not provided.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the ESXi host system.</div> + <div>Info about all SCSI devices for the given ESXi host system is returned.</div> + <div>This parameter is required, if <code>cluster_name</code> is not provided.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>target_id</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>The target id based on order of scsi device.</div> + <div>version 2.6 onwards, this parameter is optional.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Get Canonical name of particular target on particular ESXi host system + community.vmware.vmware_target_canonical_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + target_id: 7 + esxi_hostname: esxi_hostname + delegate_to: localhost + + - name: Get Canonical name of all target on particular ESXi host system + community.vmware.vmware_target_canonical_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + delegate_to: localhost + + - name: Get Canonical name of all ESXi hostname on particular Cluster + community.vmware.vmware_target_canonical_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>canonical</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>if host system and target id is given</td> + <td> + <div>metadata about SCSI Target device</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">mpx.vmhba0:C0:T0:L0</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>scsi_tgt_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>if host system or cluster is given</td> + <td> + <div>metadata about all SCSI Target devices</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'DC0_C0_H0': {'scsilun_canonical': {'key-vim.host.ScsiDisk-0000000000766d686261303a303a30': 'mpx.vmhba0:C0:T0:L0', 'key-vim.host.ScsiLun-0005000000766d686261313a303a30': 'mpx.vmhba1:C0:T0:L0'}, 'target_lun_uuid': {'0': 'key-vim.host.ScsiDisk-0000000000766d686261303a303a30'}}, 'DC0_C0_H1': {'scsilun_canonical': {'key-vim.host.ScsiDisk-0000000000766d686261303a303a30': 'mpx.vmhba0:C0:T0:L0', 'key-vim.host.ScsiLun-0005000000766d686261313a303a30': 'mpx.vmhba1:C0:T0:L0'}, 'target_lun_uuid': {'0': 'key-vim.host.ScsiDisk-0000000000766d686261303a303a30'}}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Joseph Callen (@jcpowermac) +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_tools_connection.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_tools_connection.rst new file mode 100644 index 00000000..b964e2c5 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_tools_connection.rst @@ -0,0 +1,306 @@ +.. _community.vmware.vmware_tools_connection: + + +***************************** +community.vmware.vmware_tools +***************************** + +**Execute tasks inside a VM via VMware Tools** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Use VMware tools to run tasks in, or put/fetch files to guest operating systems running in VMware infrastructure. +- In case of Windows VMs, set ``ansible_shell_type`` to ``powershell``. +- Does not work with 'become'. + + + +Requirements +------------ +The below requirements are needed on the local Ansible controller node that executes this connection. + +- requests (Python library) + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th>Configuration</th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>exec_command_sleep_interval</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">float</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">0.5</div> + </td> + <td> + <div>var: ansible_vmware_tools_exec_command_sleep_interval</div> + </td> + <td> + <div>Time in seconds to sleep between execution of command.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>executable</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">-</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"/bin/sh"</div> + </td> + <td> + <div> ini entries: + <p>[defaults]<br>executable = /bin/sh</p> + </div> + <div>env:ANSIBLE_EXECUTABLE</div> + <div>var: ansible_executable</div> + <div>var: ansible_vmware_tools_executable</div> + </td> + <td> + <div>shell to use for execution inside container</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>file_chunk_size</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">128</div> + </td> + <td> + <div>var: ansible_vmware_tools_file_chunk_size</div> + </td> + <td> + <div>File chunk size.</div> + <div>(Applicable when writing a file to disk, example: using the <code>fetch</code> module.)</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>env:VMWARE_VALIDATE_CERTS</div> + <div>var: ansible_vmware_validate_certs</div> + </td> + <td> + <div>Verify SSL for the connection.</div> + <div>Note: This will validate certs for both <code>vmware_host</code> and the ESXi host running the VM.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">-</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>var: ansible_password</div> + <div>var: ansible_vmware_tools_password</div> + </td> + <td> + <div>Password for the user in guest operating system.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_path</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">-</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>var: ansible_vmware_guest_path</div> + </td> + <td> + <div>VM path absolute to the connection.</div> + <div>vCenter Example: <code>Datacenter/vm/Discovered virtual machine/testVM</code>.</div> + <div>ESXi Host Example: <code>ha-datacenter/vm/testVM</code>.</div> + <div>Must include VM name, appended to 'folder' as would be passed to <span class='module'>community.vmware.vmware_guest</span>.</div> + <div>Needs to include <em>vm</em> between the Datacenter and the rest of the VM path.</div> + <div>Datacenter default value for ESXi server is <code>ha-datacenter</code>.</div> + <div>Folder <em>vm</em> is not visible in the vSphere Web Client but necessary for VMware API to work.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_user</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">-</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>var: ansible_user</div> + <div>var: ansible_vmware_tools_user</div> + </td> + <td> + <div>VM username.</div> + <div><code>ansible_vmware_tools_user</code> is used for connecting to the VM.</div> + <div><code>ansible_user</code> is used by Ansible on the VM.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vmware_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">-</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>env:VI_SERVER</div> + <div>env:VMWARE_HOST</div> + <div>var: ansible_host</div> + <div>var: ansible_vmware_host</div> + </td> + <td> + <div>FQDN or IP Address for the connection (vCenter or ESXi Host).</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vmware_password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">-</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>env:VI_PASSWORD</div> + <div>env:VMWARE_PASSWORD</div> + <div>var: ansible_vmware_password</div> + </td> + <td> + <div>Password for the connection.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vmware_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">-</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>env:VI_PORTNUMBER</div> + <div>env:VMWARE_PORT</div> + <div>var: ansible_port</div> + <div>var: ansible_vmware_port</div> + </td> + <td> + <div>Port for the connection.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vmware_user</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">-</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>env:VI_USERNAME</div> + <div>env:VMWARE_USER</div> + <div>var: ansible_vmware_user</div> + </td> + <td> + <div>Username for the connection.</div> + <div>Requires the following permissions on the VM: - VirtualMachine.GuestOperations.Execute - VirtualMachine.GuestOperations.Modify - VirtualMachine.GuestOperations.Query</div> + </td> + </tr> + </table> + <br/> + + + + + + + + +Status +------ + + +Authors +~~~~~~~ + +- Deric Crago (@dericcrago) <deric.crago@gmail.com> + + +.. hint:: + Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up. diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vc_infraprofile_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vc_infraprofile_info_module.rst new file mode 100644 index 00000000..f36aaa3e --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vc_infraprofile_info_module.rst @@ -0,0 +1,420 @@ +.. _community.vmware.vmware_vc_infraprofile_info_module: + + +******************************************** +community.vmware.vmware_vc_infraprofile_info +******************************************** + +**List and Export VMware vCenter infra profile configs.** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Module to manage VMware vCenter infra profile configs. +- vCenter infra profile Library feature is introduced in vSphere 7.0 version, so this module is not supported in the earlier versions of vSphere. +- All variables and VMware object names are case sensitive. + + + +Requirements +------------ +The below requirements are needed on the host that executes this module. + +- vSphere Automation SDK + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>api</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>export</li> + <li>import</li> + <li>list</li> + <li>validate</li> + </ul> + </td> + <td> + <div>API which needs to be executed</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>config_path</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Config file path which contains infra profile config JSON data, supports both relative and absolute path.</div> + <div>This parameter is required only when <code>import</code>,<code>validate</code> APIs are being used.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>decryption_key</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>decryption_key argument for while doing import profile task as of now its not taken into account form API team.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>description</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Description of about encryption or decryption key.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>encryption_key</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>encryption_key argument for while doing import profile task as of now its not taken into account form API team.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>profiles</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>A list of profile names to be exported, imported, and validated.</div> + <div>This parameter is not required while running for List API, not for <code>export</code>,<code>import</code> and <code>validate</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>protocol</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>http</li> + <li><div style="color: blue"><b>https</b> ←</div></li> + </ul> + </td> + <td> + <div>The connection to protocol.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid.</div> + <div>Set to <code>False</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + </td> + </tr> + </table> + <br/> + + + + +Examples +-------- + +.. code-block:: yaml + + - name: Get information about VC infraprofile + vmware_vc_infraprofile_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + delegate_to: localhost + + - name: export vCenter appliance infra profile config + vmware_vc_infraprofile_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + api: "export" + profiles: "ApplianceManagement" + delegate_to: localhost + + - name: validate vCenter appliance infra profile config + vmware_vc_infraprofile_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + api: "validate" + profiles: "ApplianceManagement" + config_path: "export.json" + + - name: import vCenter appliance infra profile config + vmware_vc_infraprofile_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + api: "import" + profiles: "ApplianceManagement" + config_path: "import.json" + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>export_infra</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>On success with API set as "export"</td> + <td> + <div>A message about the exported file</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'export_config_json': 'json exported to file'}</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>import_profile</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>On success with API set as "import"</td> + <td> + <div>A message about import on import_profile spec</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'changed': True, 'failed': False, 'status': '0.0'}</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>list_infra</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>on success with API as "list"</td> + <td> + <div>A list of infra configs,</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'info': 'ApplianceManagement', 'name': 'ApplianceManagement'}, {'info': 'ApplianceNetwork', 'name': 'ApplianceNetwork'}, {'info': 'Authentication & Authorization Management', 'name': 'AuthManagement'}]</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>validate_infra</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>On success with API set as "validate"</td> + <td> + <div>A message about validate on exported file</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'changed': False, 'failed': False, 'status': 'VALID'}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Naveenkumar G P (@ngp) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vcenter_settings_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vcenter_settings_info_module.rst new file mode 100644 index 00000000..07f20225 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vcenter_settings_info_module.rst @@ -0,0 +1,315 @@ +.. _community.vmware.vmware_vcenter_settings_info_module: + + +********************************************* +community.vmware.vmware_vcenter_settings_info +********************************************* + +**Gather info vCenter settings** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about vCenter settings. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>properties</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify the properties to retrieve.</div> + <div>Example:</div> + <div>properties: [</div> + <div>"config.workflow.port"</div> + <div>]</div> + <div>Only valid when <code>schema</code> is <code>vsphere</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>schema</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>summary</b> ←</div></li> + <li>vsphere</li> + </ul> + </td> + <td> + <div>Specify the output schema desired.</div> + <div>The 'summary' output schema is the legacy output from the module.</div> + <div>The 'vsphere' output schema is the vSphere API class definition which requires pyvmomi>6.7.1.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: "Gather info about vCenter settings" + community.vmware.vmware_vcenter_settings_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + register: vcenter_settings_info + + - name: "Gather some info from vCenter using the vSphere API output schema" + community.vmware.vmware_vcenter_settings_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + schema: vsphere + properties: + - config.workflow.port + register: vcenter_settings_info_vsphere_api + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>vcenter_config_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>success</td> + <td> + <div>dict of vCenter settings</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{ + "db_event_cleanup_previous": true, + "db_event_retention_previous": 30, + "db_max_connections_previous": 50, + "db_task_cleanup_previous": true, + "db_task_retention_previous": 30, + "directory_query_limit_previous": true, + "directory_query_limit_size_previous": 5000, + "directory_timeout_previous": 60, + "directory_validation_period_previous": 1440, + "directory_validation_previous": true, + "logging_options_previous": "info", + "mail_sender_previous": "", + "mail_server_previous": "", + "runtime_managed_address_previous": "", + "runtime_server_name_previous": "vcenter.local", + "runtime_unique_id_previous": 48, + "snmp_1_community_previous": "public", + "snmp_1_enabled_previous": true, + "snmp_1_url_previous": "localhost", + "snmp_2_community_previous": "", + "snmp_2_enabled_previous": false, + "snmp_2_url_previous": "", + "snmp_3_community_previous": "", + "snmp_3_enabled_previous": false, + "snmp_3_url_previous": "", + "snmp_4_community_previous": "", + "snmp_4_enabled_previous": false, + "snmp_4_url_previous": "", + "snmp_receiver_1_port_previous": 162, + "snmp_receiver_2_port_previous": 162, + "snmp_receiver_3_port_previous": 162, + "snmp_receiver_4_port_previous": 162, + "timeout_long_operations_previous": 120, + "timeout_normal_operations_previous": 30 + }</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- sky-joker (@sky-joker) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vcenter_settings_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vcenter_settings_module.rst new file mode 100644 index 00000000..8c5307ba --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vcenter_settings_module.rst @@ -0,0 +1,987 @@ +.. _community.vmware.vmware_vcenter_settings_module: + + +**************************************** +community.vmware.vmware_vcenter_settings +**************************************** + +**Configures general settings on a vCenter server** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to configure the vCenter server general settings (except the statistics). +- The statistics can be configured with the module ``vmware_vcenter_statistics``. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>advanced_settings</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{}</div> + </td> + <td> + <div>A dictionary of advanced settings.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>database</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{"event_cleanup": true, "event_retention": 30, "max_connections": 50, "task_cleanup": true, "task_retention": 30}</div> + </td> + <td> + <div>The database settings for vCenter server.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>event_cleanup</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Event cleanup.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>event_retention</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">30</div> + </td> + <td> + <div>Event retention in days.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>max_connections</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">50</div> + </td> + <td> + <div>Maximum connections.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>task_cleanup</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Task cleanup.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>task_retention</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">30</div> + </td> + <td> + <div>Task retention in days.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>logging_options</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>none</li> + <li>error</li> + <li>warning</li> + <li><div style="color: blue"><b>info</b> ←</div></li> + <li>verbose</li> + <li>trivia</li> + </ul> + </td> + <td> + <div>The level of detail that vCenter server usesfor log files.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mail</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{"sender": "", "server": ""}</div> + </td> + <td> + <div>The settings vCenter server uses to send email alerts.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>sender</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Mail sender address.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>server</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Mail server.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>runtime_settings</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>The unique runtime settings for vCenter server.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>managed_address</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>vCenter server managed address.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>unique_id</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>vCenter server unique ID.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vcenter_server_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>vCenter server name. Default is FQDN.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snmp_receivers</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{"snmp_receiver_1_community": "public", "snmp_receiver_1_enabled": true, "snmp_receiver_1_port": 162, "snmp_receiver_1_url": "localhost", "snmp_receiver_2_community": "", "snmp_receiver_2_enabled": false, "snmp_receiver_2_port": 162, "snmp_receiver_2_url": "", "snmp_receiver_3_community": "", "snmp_receiver_3_enabled": false, "snmp_receiver_3_port": 162, "snmp_receiver_3_url": "", "snmp_receiver_4_community": "", "snmp_receiver_4_enabled": false, "snmp_receiver_4_port": 162, "snmp_receiver_4_url": ""}</div> + </td> + <td> + <div>SNMP trap destinations for vCenter server alerts.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snmp_receiver_1_community</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"public"</div> + </td> + <td> + <div>Community string.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snmp_receiver_1_enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Enable receiver.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snmp_receiver_1_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">162</div> + </td> + <td> + <div>Receiver port.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snmp_receiver_1_url</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"localhost"</div> + </td> + <td> + <div>Primary Receiver ULR.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snmp_receiver_2_community</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>Community string.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snmp_receiver_2_enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enable receiver.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snmp_receiver_2_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">162</div> + </td> + <td> + <div>Receiver port.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snmp_receiver_2_url</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>Receiver 2 ULR.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snmp_receiver_3_community</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>Community string.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snmp_receiver_3_enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enable receiver.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snmp_receiver_3_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">162</div> + </td> + <td> + <div>Receiver port.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snmp_receiver_3_url</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>Receiver 3 ULR.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snmp_receiver_4_community</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>Community string.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snmp_receiver_4_enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enable receiver.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snmp_receiver_4_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">162</div> + </td> + <td> + <div>Receiver port.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>snmp_receiver_4_url</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + <div>Receiver 4 ULR.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>timeout_settings</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{"long_operations": 120, "normal_operations": 30}</div> + </td> + <td> + <div>The vCenter server connection timeout for normal and long operations.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>long_operations</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">120</div> + </td> + <td> + <div>Long operation timeout.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>normal_operations</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">30</div> + </td> + <td> + <div>Normal operation timeout.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>user_directory</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{"query_limit": true, "query_limit_size": 5000, "timeout": 60, "validation": true, "validation_period": 1440}</div> + </td> + <td> + <div>The user directory settings for the vCenter server installation.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>query_limit</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Query limit.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>query_limit_size</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">5000</div> + </td> + <td> + <div>Query limit size.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">60</div> + </td> + <td> + <div>User directory timeout.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validation</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Mail Validation.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validation_period</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">1440</div> + </td> + <td> + <div>Validation period.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Configure vCenter general settings + community.vmware.vmware_vcenter_settings: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + database: + max_connections: 50 + task_cleanup: true + task_retention: 30 + event_cleanup: true + event_retention: 30 + runtime_settings: + unique_id: 1 + managed_address: "{{ lookup('dig', inventory_hostname) }}" + vcenter_server_name: "{{ inventory_hostname }}" + user_directory: + timeout: 60 + query_limit: true + query_limit_size: 5000 + validation: true + validation_period: 1440 + mail: + server: mail.example.com + sender: vcenter@{{ inventory_hostname }} + snmp_receivers: + snmp_receiver_1_url: localhost + snmp_receiver_1_enabled: true + snmp_receiver_1_port: 162 + snmp_receiver_1_community: public + timeout_settings: + normal_operations: 30 + long_operations: 120 + logging_options: info + delegate_to: localhost + + - name: Enable Retreat Mode for cluster with MOID domain-c8 (https://kb.vmware.com/kb/80472) + community.vmware.vmware_vcenter_settings: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + advanced_settings: + 'config.vcls.clusters.domain-c8.enabled': 'false' + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>results</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about vCenter settings</div> + <div>supported diff mode from version 1.8.0</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'changed': False, 'db_event_cleanup': True, 'db_event_retention': 30, 'db_max_connections': 50, 'db_task_cleanup': True, 'db_task_retention': 30, 'directory_query_limit': True, 'directory_query_limit_size': 5000, 'directory_timeout': 60, 'directory_validation': True, 'directory_validation_period': 1440, 'logging_options': 'info', 'mail_sender': 'vcenter@vcenter01.example.com', 'mail_server': 'mail.example.com', 'msg': 'vCenter settings already configured properly', 'runtime_managed_address': '192.168.1.10', 'runtime_server_name': 'vcenter01.example.com', 'runtime_unique_id': 1, 'timeout_long_operations': 120, 'timeout_normal_operations': 30, 'diff': {'after': {'db_event_cleanup': True, 'db_event_retention': 30, 'db_max_connections': 50, 'db_task_cleanup': True, 'db_task_retention': 30, 'directory_query_limit': True, 'directory_query_limit_size': 5000, 'directory_timeout': 60, 'directory_validation': True, 'directory_validation_period': 1440, 'logging_options': 'info', 'mail_sender': 'vcenter@vcenter01.example.com', 'mail_server': 'mail.example.com', 'runtime_managed_address': '192.168.1.10', 'runtime_server_name': 'vcenter01.example.com', 'runtime_unique_id': 1, 'snmp_receiver_1_community': 'public', 'snmp_receiver_1_enabled': True, 'snmp_receiver_1_port': 162, 'snmp_receiver_1_url': 'localhost', 'snmp_receiver_2_community': '', 'snmp_receiver_2_enabled': False, 'snmp_receiver_2_port': 162, 'snmp_receiver_2_url': '', 'snmp_receiver_3_community': '', 'snmp_receiver_3_enabled': False, 'snmp_receiver_3_port': 162, 'snmp_receiver_3_url': '', 'snmp_receiver_4_community': '', 'snmp_receiver_4_enabled': False, 'snmp_receiver_4_port': 162, 'snmp_receiver_4_url': '', 'timeout_long_operations': 120, 'timeout_normal_operations': 30}, 'before': {'db_event_cleanup': True, 'db_event_retention': 30, 'db_max_connections': 50, 'db_task_cleanup': True, 'db_task_retention': 30, 'directory_query_limit': True, 'directory_query_limit_size': 5000, 'directory_timeout': 60, 'directory_validation': True, 'directory_validation_period': 1440, 'logging_options': 'info', 'mail_sender': 'vcenter@vcenter01.example.com', 'mail_server': 'mail.example.com', 'runtime_managed_address': '192.168.1.10', 'runtime_server_name': 'vcenter01.example.com', 'runtime_unique_id': 1, 'snmp_receiver_1_community': 'public', 'snmp_receiver_1_enabled': True, 'snmp_receiver_1_port': 162, 'snmp_receiver_1_url': 'localhost', 'snmp_receiver_2_community': '', 'snmp_receiver_2_enabled': False, 'snmp_receiver_2_port': 162, 'snmp_receiver_2_url': '', 'snmp_receiver_3_community': '', 'snmp_receiver_3_enabled': False, 'snmp_receiver_3_port': 162, 'snmp_receiver_3_url': '', 'snmp_receiver_4_community': '', 'snmp_receiver_4_enabled': False, 'snmp_receiver_4_port': 162, 'snmp_receiver_4_url': '', 'timeout_long_operations': 120, 'timeout_normal_operations': 30}}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Christian Kotte (@ckotte) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vcenter_statistics_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vcenter_statistics_module.rst new file mode 100644 index 00000000..9973db4a --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vcenter_statistics_module.rst @@ -0,0 +1,640 @@ +.. _community.vmware.vmware_vcenter_statistics_module: + + +****************************************** +community.vmware.vmware_vcenter_statistics +****************************************** + +**Configures statistics on a vCenter server** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to configure the vCenter server statistics. +- The remaining settings can be configured with the module ``vmware_vcenter_settings``. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>interval_past_day</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Settings for vCenter server past day statistic collection.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Past day statistics collection enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>interval_minutes</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>1</li> + <li>2</li> + <li>3</li> + <li>4</li> + <li><div style="color: blue"><b>5</b> ←</div></li> + </ul> + </td> + <td> + <div>Interval duration in minutes.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>level</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>1</b> ←</div></li> + <li>2</li> + <li>3</li> + <li>4</li> + </ul> + </td> + <td> + <div>Statistics level.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>save_for_days</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>1</b> ←</div></li> + <li>2</li> + <li>3</li> + <li>4</li> + <li>5</li> + </ul> + </td> + <td> + <div>Save for value in days.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>interval_past_month</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Settings for vCenter server past month statistic collection.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Past month statistics collection enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>interval_hours</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>2</b> ←</div></li> + </ul> + </td> + <td> + <div>Interval duration in hours.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>level</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>1</b> ←</div></li> + <li>2</li> + <li>3</li> + <li>4</li> + </ul> + </td> + <td> + <div>Statistics level.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>save_for_months</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>1</b> ←</div></li> + </ul> + </td> + <td> + <div>Save for value in months.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>interval_past_week</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Settings for vCenter server past week statistic collection.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Past week statistics collection enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>interval_minutes</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>30</b> ←</div></li> + </ul> + </td> + <td> + <div>Interval duration in minutes.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>level</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>1</b> ←</div></li> + <li>2</li> + <li>3</li> + <li>4</li> + </ul> + </td> + <td> + <div>Statistics level.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>save_for_weeks</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>1</b> ←</div></li> + </ul> + </td> + <td> + <div>Save for value in weeks.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>interval_past_year</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>Settings for vCenter server past month statistic collection.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Past month statistics collection enabled.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>interval_days</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>1</b> ←</div></li> + </ul> + </td> + <td> + <div>Interval duration in days.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>level</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>1</b> ←</div></li> + <li>2</li> + <li>3</li> + <li>4</li> + </ul> + </td> + <td> + <div>Statistics level.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>save_for_years</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>1</b> ←</div></li> + <li>2</li> + <li>3</li> + <li>4</li> + <li>5</li> + </ul> + </td> + <td> + <div>Save for value in years.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Configure vCenter statistics + community.vmware.vmware_vcenter_statistics: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + interval_past_day: + enabled: true + interval_minutes: 5 + save_for_days: 1 + level: 1 + interval_past_week: + enabled: true + level: 1 + interval_past_month: + enabled: true + level: 1 + interval_past_year: + enabled: true + save_for_years: 1 + level: 1 + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>results</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about vCenter statistics settings</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'changed': False, 'msg': 'vCenter statistics already configured properly', 'past_day_enabled': True, 'past_day_interval': 5, 'past_day_level': 1, 'past_day_save_for': 1, 'past_month_enabled': True, 'past_month_interval': 2, 'past_month_level': 1, 'past_month_save_for': 1, 'past_week_enabled': True, 'past_week_interval': 30, 'past_week_level': 1, 'past_week_save_for': 1, 'past_year_enabled': True, 'past_year_interval': 1, 'past_year_level': 1, 'past_year_save_for': 1}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Christian Kotte (@ckotte) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_config_option_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_config_option_module.rst new file mode 100644 index 00000000..c33ccc3f --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_config_option_module.rst @@ -0,0 +1,382 @@ +.. _community.vmware.vmware_vm_config_option_module: + + +**************************************** +community.vmware.vmware_vm_config_option +**************************************** + +**Return supported guest ID list and VM recommended config option for specific guest OS** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module is used for getting the hardware versions supported for creation, the guest ID list supported by ESXi host for the most recent virtual hardware supported or specified hardware version, the VM recommended config options for specified guest OS ID. + + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster.</div> + <div>If <code>esxi_hostname</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"ha-datacenter"</div> + </td> + <td> + <div>The datacenter name used to get specified cluster or host.</div> + <div>This parameter is case sensitive.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname.</div> + <div>Obtain VM configure options on this ESXi host.</div> + <div>If <code>cluster_name</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>get_config_options</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Return the dict of VM recommended config options for guest ID specified by <code>guest_id</code> with hardware version specified by <code>hardware_version</code> or the default hardware version.</div> + <div>When set to True, <code>guest_id</code> must be set.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>get_guest_os_ids</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Return the list of guest OS IDs supported on the specified entity.</div> + <div>If <code>hardware_version</code> is set, will return the corresponding guest OS ID list supported, or will return the guest OS ID list for the default hardware version.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>get_hardware_versions</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Return the list of VM hardware versions supported for creation and the default hardware version on the specified entity.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>guest_id</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The guest OS ID from the returned list when <code>get_guest_os_ids</code> is set to <code>True</code>, e.g., 'rhel8_64Guest'.</div> + <div>This parameter must be set when <code>get_config_options</code> is set to <code>True</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hardware_version</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hardware version from the returned list when <code>get_hardware_versions</code> is set to <code>True</code>, e.g., 'vmx-19'.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - Known issue on vSphere 7.0 (https://github.com/vmware/pyvmomi/issues/915) + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Get supported guest ID list on given ESXi host for with default hardware version + community.vmware.vmware_vm_config_option: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ esxi_hostname }}" + get_guest_os_ids: True + delegate_to: localhost + + - name: Get VM recommended config option for Windows 10 guest OS on given ESXi host + community.vmware.vmware_vm_config_option: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + esxi_hostname: "{{ esxi_hostname }}" + get_config_options: True + guest_id: "windows9_64Guest" + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>instance</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about the VM recommended configuration</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">None</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Diane Wang (@Tomorrow9) <dianew@vmware.com> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_host_drs_rule_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_host_drs_rule_module.rst new file mode 100644 index 00000000..26fd5df3 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_host_drs_rule_module.rst @@ -0,0 +1,364 @@ +.. _community.vmware.vmware_vm_host_drs_rule_module: + + +**************************************** +community.vmware.vmware_vm_host_drs_rule +**************************************** + +**Creates vm/host group in a given cluster** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to create VM-Host rules in a given cluster. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>affinity_rule</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>If set to <code>True</code>, the DRS rule will be an Affinity rule.</div> + <div>If set to <code>False</code>, the DRS rule will be an Anti-Affinity rule.</div> + <div>Effective only if <code>state</code> is set to <code>present</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Cluster to create VM-Host rule.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Datacenter to search for given cluster. If not set, we use first cluster we encounter with <code>cluster_name</code>.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>drs_rule_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of rule to create or remove.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>If set to <code>True</code>, the DRS rule will be enabled.</div> + <div>Effective only if <code>state</code> is set to <code>present</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>host_group_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of Host group to use with rule.</div> + <div>Effective only if <code>state</code> is set to <code>present</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mandatory</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>If set to <code>True</code>, the DRS rule will be mandatory.</div> + <div>Effective only if <code>state</code> is set to <code>present</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>If set to <code>present</code> and the rule does not exist then the rule will be created.</div> + <div>If set to <code>absent</code> and the rule exists then the rule will be deleted.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_group_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of VM group to use with rule.</div> + <div>Effective only if <code>state</code> is set to <code>present</code>.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + --- + - name: "Create mandatory DRS Affinity rule for VM/Host" + community.vmware.vmware_vm_host_drs_rule: + hostname: "{{ vcenter_hostname }}" + password: "{{ vcenter_password }}" + username: "{{ vcenter_username }}" + cluster_name: DC0_C0 + drs_rule_name: drs_rule_host_aff_0001 + host_group_name: DC0_C0_HOST_GR1 + vm_group_name: DC0_C0_VM_GR1 + mandatory: True + enabled: True + affinity_rule: True + + + + +Status +------ + + +Authors +~~~~~~~ + +- Karsten Kaj Jakobsen (@karstenjakobsen) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_info_module.rst new file mode 100644 index 00000000..751f7182 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_info_module.rst @@ -0,0 +1,455 @@ +.. _community.vmware.vmware_vm_info_module: + + +******************************* +community.vmware.vmware_vm_info +******************************* + +**Return basic info pertaining to a VMware machine guest** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Return basic information pertaining to a vSphere or ESXi virtual machine guest. +- Cluster name as fact is added in version 2.7. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Specify a folder location of VMs to gather information from.</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>show_allocated</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.5.0</div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Allocated storage in byte and memory in MB are shown if it set to True.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>show_attribute</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Attributes related to VM guest shown in information only when this is set <code>true</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>show_tag</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Tags related to virtual machine are shown if set to <code>True</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine to get related configurations information from.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>all</b> ←</div></li> + <li>vm</li> + <li>template</li> + </ul> + </td> + <td> + <div>If set to <code>vm</code>, then information are gathered for virtual machines only.</div> + <div>If set to <code>template</code>, then information are gathered for virtual machine templates only.</div> + <div>If set to <code>all</code>, then information are gathered for all virtual machines and virtual machine templates.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - Fact about ``moid`` added in VMware collection 1.4.0. + - Fact about ``datastore_url`` is added in VMware collection 1.18.0. + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather all registered virtual machines + community.vmware.vmware_vm_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + delegate_to: localhost + register: vminfo + + - debug: + var: vminfo.virtual_machines + + - name: Gather one specific VM + community.vmware.vmware_vm_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + vm_name: 'vm_name_as_per_vcenter' + delegate_to: localhost + register: vm_info + + - debug: + var: vminfo.virtual_machines + + - name: Gather only registered virtual machine templates + community.vmware.vmware_vm_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + vm_type: template + delegate_to: localhost + register: template_info + + - debug: + var: template_info.virtual_machines + + - name: Gather only registered virtual machines + community.vmware.vmware_vm_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + vm_type: vm + delegate_to: localhost + register: vm_info + + - debug: + var: vm_info.virtual_machines + + - name: Get UUID from given VM Name + block: + - name: Get virtual machine info + community.vmware.vmware_vm_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + folder: "/datacenter/vm/folder" + delegate_to: localhost + register: vm_info + + - debug: + msg: "{{ item.uuid }}" + with_items: + - "{{ vm_info.virtual_machines | community.general.json_query(query) }}" + vars: + query: "[?guest_name=='DC0_H0_VM0']" + + - name: Get Tags from given VM Name + block: + - name: Get virtual machine info + community.vmware.vmware_vm_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + folder: "/datacenter/vm/folder" + delegate_to: localhost + register: vm_info + + - debug: + msg: "{{ item.tags }}" + with_items: + - "{{ vm_info.virtual_machines | community.general.json_query(query) }}" + vars: + query: "[?guest_name=='DC0_H0_VM0']" + + - name: Gather all VMs from a specific folder + community.vmware.vmware_vm_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + folder: "/Asia-Datacenter1/vm/prod" + delegate_to: localhost + register: vm_info + + - name: Get datastore_url from given VM name + block: + - name: Get virtual machine info + community.vmware.vmware_vm_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + delegate_to: localhost + register: vm_info + + - debug: + msg: "{{ item.datastore_url }}" + with_items: + - "{{ vm_info.virtual_machines | community.general.json_query(query) }}" + vars: + query: "[?guest_name=='DC0_H0_VM0']" + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>virtual_machines</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>success</td> + <td> + <div>list of dictionary of virtual machines and their information</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'guest_name': 'ubuntu_t', 'datacenter': 'Datacenter-1', 'cluster': None, 'esxi_hostname': '10.76.33.226', 'folder': '/Datacenter-1/vm', 'guest_fullname': 'Ubuntu Linux (64-bit)', 'ip_address': '', 'mac_address': ['00:50:56:87:a5:9a'], 'power_state': 'poweredOff', 'uuid': '4207072c-edd8-3bd5-64dc-903fd3a0db04', 'vm_network': {'00:50:56:87:a5:9a': {'ipv4': ['10.76.33.228'], 'ipv6': []}}, 'attributes': {'job': 'backup-prepare'}, 'datastore_url': [{'name': 't880-o2g', 'url': '/vmfs/volumes/e074264a-e5c82a58'}], 'tags': [{'category_id': 'urn:vmomi:InventoryServiceCategory:b316cc45-f1a9-4277-811d-56c7e7975203:GLOBAL', 'category_name': 'cat_0001', 'description': '', 'id': 'urn:vmomi:InventoryServiceTag:43737ec0-b832-4abf-abb1-fd2448ce3b26:GLOBAL', 'name': 'tag_0001'}], 'moid': 'vm-24', 'allocated': {'storage': 500000000, 'cpu': 2, 'memory': 16}}]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Joseph Callen (@jcpowermac) +- Abhijeet Kasurde (@Akasurde) +- Fedor Vompe (@sumkincpp) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_inventory_inventory.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_inventory_inventory.rst new file mode 100644 index 00000000..88e0bc9e --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_inventory_inventory.rst @@ -0,0 +1,974 @@ +.. _community.vmware.vmware_vm_inventory_inventory: + + +************************************ +community.vmware.vmware_vm_inventory +************************************ + +**VMware Guest inventory source** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Get virtual machines as inventory hosts from VMware environment. +- Uses any file which ends with vmware.yml, vmware.yaml, vmware_vm_inventory.yml, or vmware_vm_inventory.yaml as a YAML configuration file. + + + +Requirements +------------ +The below requirements are needed on the local Ansible controller node that executes this inventory. + +- requests >= 2.3 +- vSphere Automation SDK - For tag feature + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th>Configuration</th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cache</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div> ini entries: + <p>[inventory]<br>cache = no</p> + </div> + <div>env:ANSIBLE_INVENTORY_CACHE</div> + </td> + <td> + <div>Toggle to enable/disable the caching of the inventory's source data, requires a cache plugin setup to work.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cache_connection</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div> ini entries: + <p>[defaults]<br>fact_caching_connection = VALUE</p> + <p>[inventory]<br>cache_connection = VALUE</p> + </div> + <div>env:ANSIBLE_CACHE_PLUGIN_CONNECTION</div> + <div>env:ANSIBLE_INVENTORY_CACHE_CONNECTION</div> + </td> + <td> + <div>Cache connection data or path, read cache plugin documentation for specifics.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cache_plugin</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"memory"</div> + </td> + <td> + <div> ini entries: + <p>[defaults]<br>fact_caching = memory</p> + <p>[inventory]<br>cache_plugin = memory</p> + </div> + <div>env:ANSIBLE_CACHE_PLUGIN</div> + <div>env:ANSIBLE_INVENTORY_CACHE_PLUGIN</div> + </td> + <td> + <div>Cache plugin to use for the inventory's source data.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cache_prefix</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">-</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"ansible_inventory_"</div> + </td> + <td> + <div> ini entries: + <p>[default]<br>fact_caching_prefix = ansible_inventory_</p> + <p>[defaults]<br>fact_caching_prefix = ansible_inventory_</p> + <p>[inventory]<br>cache_prefix = ansible_inventory_</p> + </div> + <div>env:ANSIBLE_CACHE_PLUGIN_PREFIX</div> + <div>env:ANSIBLE_INVENTORY_CACHE_PLUGIN_PREFIX</div> + </td> + <td> + <div>Prefix to use for cache plugin files/tables</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cache_timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">3600</div> + </td> + <td> + <div> ini entries: + <p>[defaults]<br>fact_caching_timeout = 3600</p> + <p>[inventory]<br>cache_timeout = 3600</p> + </div> + <div>env:ANSIBLE_CACHE_PLUGIN_TIMEOUT</div> + <div>env:ANSIBLE_INVENTORY_CACHE_TIMEOUT</div> + </td> + <td> + <div>Cache duration in seconds</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>compose</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{}</div> + </td> + <td> + </td> + <td> + <div>Create vars from jinja2 expressions.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>filters</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + </td> + <td> + <div>This option allows client-side filtering hosts with jinja templating.</div> + <div>When server-side filtering is introduced, it should be preferred over this.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>groups</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{}</div> + </td> + <td> + </td> + <td> + <div>Add hosts to group based on Jinja2 conditionals.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">-</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>env:VMWARE_HOST</div> + <div>env:VMWARE_SERVER</div> + </td> + <td> + <div>Name of vCenter or ESXi server.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostnames</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">["config.name + \"_\" + config.uuid"]</div> + </td> + <td> + </td> + <td> + <div>A list of templates in order of precedence to compose inventory_hostname.</div> + <div>Ignores template if resulted in an empty string or None value.</div> + <div>You can use property specified in <em>properties</em> as variables in the template.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>keyed_groups</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[{"key": "config.guestId", "separator": ""}, {"key": "summary.runtime.powerState", "separator": ""}]</div> + </td> + <td> + </td> + <td> + <div>Add hosts to group based on the values of a variable.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>default_value</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.12</div> + </td> + <td> + </td> + <td> + </td> + <td> + <div>The default value when the host variable's value is an empty string.</div> + <div>This option is mutually exclusive with <code>trailing_separator</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>key</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + </td> + <td> + <div>The key from input dictionary used to generate groups</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>parent_group</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + </td> + <td> + <div>parent group for keyed group</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>prefix</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">""</div> + </td> + <td> + </td> + <td> + <div>A keyed group name will start with this prefix</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>separator</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"_"</div> + </td> + <td> + </td> + <td> + <div>separator used to build the keyed group name</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>trailing_separator</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.12</div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + </td> + <td> + <div>Set this option to <em>False</em> to omit the <code>separator</code> after the host variable when the value is an empty string.</div> + <div>This option is mutually exclusive with <code>default_value</code>.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>leading_separator</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.11</div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">"yes"</div> + </td> + <td> + </td> + <td> + <div>Use in conjunction with keyed_groups.</div> + <div>By default, a keyed group that does not have a prefix or a separator provided will have a name that starts with an underscore.</div> + <div>This is because the default prefix is "" and the default separator is "_".</div> + <div>Set this option to False to omit the leading underscore (or other separator) if no prefix is given.</div> + <div>If the group name is derived from a mapping the separator is still used to concatenate the items.</div> + <div>To not use a separator in the group name at all, set the separator for the keyed group to an empty string instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">-</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>env:VMWARE_PASSWORD</div> + </td> + <td> + <div>Password of vSphere user.</div> + <div>Accepts vault encrypted variable.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>env:VMWARE_PORT</div> + </td> + <td> + <div>Port number used to connect to vCenter or ESXi Server.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>properties</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">["name", "config.cpuHotAddEnabled", "config.cpuHotRemoveEnabled", "config.instanceUuid", "config.hardware.numCPU", "config.template", "config.name", "config.uuid", "guest.hostName", "guest.ipAddress", "guest.guestId", "guest.guestState", "runtime.maxMemoryUsage", "customValue", "summary.runtime.powerState", "config.guestId"]</div> + </td> + <td> + </td> + <td> + <div>Specify the list of VMware schema properties associated with the VM.</div> + <div>These properties will be populated in hostvars of the given VM.</div> + <div>Each value in the list can be a path to a specific property in VM object or a path to a collection of VM objects.</div> + <div><code>config.name</code>, <code>config.uuid</code> are required properties if <code>hostnames</code> is set to default.</div> + <div><code>config.guestId</code>, <code>summary.runtime.powerState</code> are required if <code>keyed_groups</code> is set to default.</div> + <div>Please make sure that all the properties that are used in other parameters are included in this options.</div> + <div>In addition to VM properties, the following are special values</div> + <div>Use <code>customValue</code> to populate virtual machine's custom attributes. <code>customValue</code> is only supported by vCenter and not by ESXi.</div> + <div>Use <code>all</code> to populate all the properties of the virtual machine. The value <code>all</code> is time consuming operation, do not use unless required absolutely.</div> + <div>Please refer more VMware guest attributes which can be used as properties <a href='https://github.com/ansible/ansible/blob/devel/docs/docsite/rst/scenario_guides/vmware_scenarios/vmware_inventory_vm_attributes.rst'>https://github.com/ansible/ansible/blob/devel/docs/docsite/rst/scenario_guides/vmware_scenarios/vmware_inventory_vm_attributes.rst</a></div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>env:VMWARE_PROXY_HOST</div> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>This feature depends on a version of pyvmomi>=v6.7.1.2018.12.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>env:VMWARE_PROXY_PORT</div> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>resources</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + </td> + <td> + <div>A list of resources to limit search scope.</div> + <div>Each resource item is represented by exactly one <code>'vim_type_snake_case</code>:<code>list of resource names</code> pair and optional nested <em>resources</em></div> + <div>Key name is based on snake case of a vim type name; e.g <code>host_system</code> correspond to <code>vim.HostSystem</code></div> + <div>See <a href='https://pubs.vmware.com/vi-sdk/visdk250/ReferenceGuide/index-mo_types.html'>VIM Types</a></div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>strict</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + </td> + <td> + <div>If <code>yes</code> make invalid entries a fatal error, otherwise skip and continue.</div> + <div>Since it is possible to use facts in the expressions they might not always be available and we ignore those errors by default.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_extra_vars</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.11</div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div> ini entries: + <p>[inventory_plugins]<br>use_extra_vars = no</p> + </div> + <div>env:ANSIBLE_INVENTORY_USE_EXTRA_VARS</div> + </td> + <td> + <div>Merge extra vars into the available variables for composition (highest precedence).</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">-</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>env:VMWARE_USER</div> + <div>env:VMWARE_USERNAME</div> + </td> + <td> + <div>Name of vSphere user.</div> + <div>Accepts vault encrypted variable.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>env:VMWARE_VALIDATE_CERTS</div> + </td> + <td> + <div>Allows connection when SSL certificates are not valid.</div> + <div>Set to <code>false</code> when certificates are not trusted.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>with_nested_properties</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + </td> + <td> + <div>This option transform flatten properties name to nested dictionary.</div> + <div>From 1.10.0 and onwards, default value is set to <code>True</code>.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>with_path</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + </td> + <td> + <div>Include virtual machines path.</div> + <div>Set this option to a string value to replace root name from <em>'Datacenters'</em>.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>with_sanitized_property_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + </td> + <td> + <div>This option allows property name sanitization to create safe property names for use in Ansible.</div> + <div>Also, transforms property name to snake case.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>with_tags</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + </td> + <td> + <div>Include tags and associated virtual machines.</div> + <div>Requires 'vSphere Automation SDK' library to be installed on the given controller machine.</div> + <div>Please refer following URLs for installation steps</div> + <div><a href='https://code.vmware.com/web/sdk/7.0/vsphere-automation-python'>https://code.vmware.com/web/sdk/7.0/vsphere-automation-python</a></div> + </td> + </tr> + </table> + <br/> + + + + +Examples +-------- + +.. code-block:: yaml + + # Sample configuration file for VMware Guest dynamic inventory + plugin: community.vmware.vmware_vm_inventory + strict: False + hostname: 10.65.223.31 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + with_tags: True + + # Gather minimum set of properties for VMware guest + plugin: community.vmware.vmware_vm_inventory + strict: False + hostname: 10.65.223.31 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + properties: + - 'name' + - 'guest.ipAddress' + - 'config.name' + - 'config.uuid' + + # Create Groups based upon VMware Tools status + plugin: community.vmware.vmware_vm_inventory + strict: False + hostname: 10.65.223.31 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + properties: + - 'name' + - 'config.name' + - 'guest.toolsStatus' + - 'guest.toolsRunningStatus' + hostnames: + - config.name + keyed_groups: + - key: guest.toolsStatus + separator: '' + - key: guest.toolsRunningStatus + separator: '' + + # Filter VMs based upon condition + plugin: community.vmware.vmware_vm_inventory + strict: False + hostname: 10.65.223.31 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + properties: + - 'runtime.powerState' + - 'config.name' + filters: + - runtime.powerState == "poweredOn" + hostnames: + - config.name + + # Filter VM's based on OR conditions + plugin: community.vmware.vmware_vm_inventory + strict: False + hostname: 10.65.223.31 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + properties: + - 'name' + - 'config.name' + - 'guest.ipAddress' + - 'guest.toolsStatus' + - 'guest.toolsRunningStatus' + - 'config.guestFullName' + - 'config.guestId' + hostnames: + - 'config.name' + filters: + - config.guestId == "rhel7_64Guest" or config.name == "rhel_20_04_empty" + + # Filter VM's based on regex conditions + plugin: community.vmware.vmware_vm_inventory + strict: False + hostname: 10.65.223.31 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + properties: + - 'config.name' + - 'config.guestId' + - 'guest.ipAddress' + - 'summary.runtime.powerState' + filters: + - guest.ipAddress is defined and (guest.ipAddress is match('192.168.*') or guest.ipAddress is match('192.169.*')) + + # Using compose and groups + plugin: community.vmware.vmware_vm_inventory + strict: False + hostname: 10.65.223.31 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + properties: + - 'name' + - 'config.name' + - 'guest.ipAddress' + compose: + # This will populate the IP address of virtual machine if available + # and will be used while communicating to the given virtual machine + ansible_host: 'guest.ipAddress' + composed_var: 'config.name' + # This will populate a host variable with a string value + ansible_user: "'admin'" + ansible_connection: "'ssh'" + groups: + VMs: True + hostnames: + - config.name + + # Use Datacenter, Cluster and Folder value to list VMs + plugin: community.vmware.vmware_vm_inventory + strict: False + hostname: 10.65.200.241 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + with_tags: True + resources: + - datacenter: + - Asia-Datacenter1 + - Asia-Datacenter2 + resources: + - compute_resource: + - Asia-Cluster1 + resources: + - host_system: + - Asia-ESXI4 + - folder: + - dev + - prod + + # Use Category and it's relation with Tag + plugin: community.vmware.vmware_vm_inventory + strict: False + hostname: 10.65.201.128 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + hostnames: + - 'config.name' + properties: + - 'config.name' + - 'config.guestId' + - 'guest.ipAddress' + - 'summary.runtime.powerState' + with_tags: True + keyed_groups: + - key: tag_category.OS + prefix: "vmware_tag_os_category_" + separator: "" + with_nested_properties: True + filters: + - "tag_category.OS is defined and 'Linux' in tag_category.OS" + + # customizing hostnames based on VM's FQDN. The second hostnames template acts as a fallback mechanism. + plugin: community.vmware.vmware_vm_inventory + strict: False + hostname: 10.65.223.31 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + hostnames: + - 'config.name+"."+guest.ipStack.0.dnsConfig.domainName' + - 'config.name' + properties: + - 'config.name' + - 'config.guestId' + - 'guest.hostName' + - 'guest.ipAddress' + - 'guest.guestFamily' + - 'guest.ipStack' + + # Select a specific IP address for use by ansible when multiple NICs are present on the VM + plugin: community.vmware.vmware_vm_inventory + strict: False + hostname: 10.65.223.31 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + compose: + # Set the IP address used by ansible to one that starts by 10.42. or 10.43. + ansible_host: >- + guest.net + | selectattr('ipAddress') + | map(attribute='ipAddress') + | flatten + | select('match', '^10.42.*|^10.43.*') + | list + | first + properties: + - guest.net + + # Group hosts using Jinja2 conditionals + plugin: community.vmware.vmware_vm_inventory + strict: False + hostname: 10.65.13.37 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + hostnames: + - config.name + properties: + - 'name' + - 'config.name' + - 'config.datastoreUrl' + groups: + slow_storage: "'Nas01' in config.datastoreUrl[0].name" + fast_storage: "'SSD' in config.datastoreUrl[0].name" + + + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) + + +.. hint:: + Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up. diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_shell_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_shell_module.rst new file mode 100644 index 00000000..a07d6dba --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_shell_module.rst @@ -0,0 +1,516 @@ +.. _community.vmware.vmware_vm_shell_module: + + +******************************** +community.vmware.vmware_vm_shell +******************************** + +**Run commands in a VMware guest operating system** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Module allows user to run common system administration commands in the guest operating system. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The cluster hosting the virtual machine.</div> + <div>If set, it will help to speed up virtual machine search.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The datacenter hosting the virtual machine.</div> + <div>If set, it will help to speed up virtual machine search.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>folder</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination folder, absolute or relative path to find an existing guest or create the new guest.</div> + <div>The folder should include the datacenter. ESX's datacenter is ha-datacenter.</div> + <div>Examples:</div> + <div>folder: /ha-datacenter/vm</div> + <div>folder: ha-datacenter/vm</div> + <div>folder: /datacenter1/vm</div> + <div>folder: datacenter1/vm</div> + <div>folder: /datacenter1/vm/folder1</div> + <div>folder: datacenter1/vm/folder1</div> + <div>folder: /folder1/datacenter1/vm</div> + <div>folder: folder1/datacenter1/vm</div> + <div>folder: /folder1/datacenter1/vm/folder2</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">3600</div> + </td> + <td> + <div>Timeout in seconds.</div> + <div>If set to positive integers, then <code>wait_for_process</code> will honor this parameter and will exit after this timeout.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_id</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine to work with.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_id_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>uuid</li> + <li>instance_uuid</li> + <li>dns_name</li> + <li>inventory_path</li> + <li><div style="color: blue"><b>vm_name</b> ←</div></li> + </ul> + </td> + <td> + <div>The VMware identification method by which the virtual machine will be identified.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The password used to login-in to the virtual machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_shell</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The absolute path to the program to start.</div> + <div>On Linux, shell is executed via bash.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_shell_args</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">" "</div> + </td> + <td> + <div>The argument to the program.</div> + <div>The characters which must be escaped to the shell also be escaped on the command line provided.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_shell_cwd</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The current working directory of the application from which it will be run.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_shell_env</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>Comma separated list of environment variable, specified in the guest OS notation.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The user to login-in to the virtual machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>wait_for_process</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>If set to <code>True</code>, module will wait for process to complete in the given virtual machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - Only the first match against vm_id is used, even if there are multiple matches. + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Run command inside a virtual machine + community.vmware.vmware_vm_shell: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter }}" + folder: "/{{datacenter}}/vm" + vm_id: "{{ vm_name }}" + vm_username: root + vm_password: superSecret + vm_shell: /bin/echo + vm_shell_args: " $var >> myFile " + vm_shell_env: + - "PATH=/bin" + - "VAR=test" + vm_shell_cwd: "/tmp" + delegate_to: localhost + register: shell_command_output + + - name: Run command inside a virtual machine with wait and timeout + community.vmware.vmware_vm_shell: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter }}" + folder: "/{{datacenter}}/vm" + vm_id: NameOfVM + vm_username: root + vm_password: superSecret + vm_shell: /bin/sleep + vm_shell_args: 100 + wait_for_process: True + timeout: 2000 + delegate_to: localhost + register: shell_command_with_wait_timeout + + - name: Change user password in the guest machine + community.vmware.vmware_vm_shell: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter }}" + folder: "/{{datacenter}}/vm" + vm_id: "{{ vm_name }}" + vm_username: sample + vm_password: old_password + vm_shell: "/bin/echo" + vm_shell_args: "-e 'old_password\nnew_password\nnew_password' | passwd sample > /tmp/$$.txt 2>&1" + delegate_to: localhost + + - name: Change hostname of guest machine + community.vmware.vmware_vm_shell: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + datacenter: "{{ datacenter }}" + folder: "/{{datacenter}}/vm" + vm_id: "{{ vm_name }}" + vm_username: testUser + vm_password: SuperSecretPassword + vm_shell: "/usr/bin/hostnamectl" + vm_shell_args: "set-hostname new_hostname > /tmp/$$.txt 2>&1" + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>results</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>on success</td> + <td> + <div>metadata about the new process after completion with wait_for_process</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'cmd_line': '"/bin/sleep" 1', 'end_time': '2018-04-26T05:03:21+00:00', 'exit_code': 0, 'name': 'sleep', 'owner': 'dev1', 'start_time': '2018-04-26T05:03:19+00:00', 'uuid': '564db1e2-a3ff-3b0e-8b77-49c25570bb66'}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Ritesh Khadgaray (@ritzk) +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_storage_policy_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_storage_policy_info_module.rst new file mode 100644 index 00000000..1eed0f71 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_storage_policy_info_module.rst @@ -0,0 +1,230 @@ +.. _community.vmware.vmware_vm_storage_policy_info_module: + + +********************************************** +community.vmware.vmware_vm_storage_policy_info +********************************************** + +**Gather information about vSphere storage profile defined storage policy information.** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Returns basic information on vSphere storage profiles. +- A vSphere storage profile defines storage policy information that describes storage requirements for virtual machines and storage capabilities of storage providers. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Get SPBM info + community.vmware.vmware_vm_storage_policy_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + delegate_to: localhost + register: profiles + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>spbm_profiles</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + </div> + </td> + <td>success</td> + <td> + <div>list of dictionary of SPBM info</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">[{'constraints_sub_profiles': [{'rule_set_info': [{'id': 'hostFailuresToTolerate', 'value': 1}, {'id': 'stripeWidth', 'value': 1}, {'id': 'forceProvisioning', 'value': False}, {'id': 'proportionalCapacity', 'value': 0}, {'id': 'cacheReservation', 'value': 0}], 'rule_set_name': 'VSAN sub-profile'}], 'description': 'Storage policy used as default for vSAN datastores', 'id': 'aa6d5a82-1c88-45da-85d3-3d74b91a5bad', 'name': 'vSAN Default Storage Policy'}]</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_storage_policy_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_storage_policy_module.rst new file mode 100644 index 00000000..70bf3137 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_storage_policy_module.rst @@ -0,0 +1,352 @@ +.. _community.vmware.vmware_vm_storage_policy_module: + + +***************************************** +community.vmware.vmware_vm_storage_policy +***************************************** + +**Create vSphere storage policies** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- A vSphere storage policy defines metadata that describes storage requirements for virtual machines and storage capabilities of storage providers. +- Currently, only tag-based storage policy creation is supported. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>description</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Description of the storage policy to create or update.</div> + <div>This parameter is ignored when <code>state=absent</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the storage policy to create, update, or delete.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>absent</li> + <li><div style="color: blue"><b>present</b> ←</div></li> + </ul> + </td> + <td> + <div>State of storage policy.</div> + <div>If set to <code>present</code>, the storage policy is created.</div> + <div>If set to <code>absent</code>, the storage policy is deleted.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>tag_affinity</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>If set to <code>true</code>, the storage policy enforces that virtual machines require the existence of a tag for datastore placement.</div> + <div>If set to <code>false</code>, the storage policy enforces that virtual machines require the absence of a tag for datastore placement.</div> + <div>This parameter is ignored when <code>state=absent</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>tag_category</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the pre-existing tag category to assign to the storage policy.</div> + <div>This parameter is ignored when <code>state=absent</code>.</div> + <div>This parameter is required when <code>state=present</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>tag_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the pre-existing tag to assign to the storage policy.</div> + <div>This parameter is ignored when <code>state=absent</code>.</div> + <div>This parameter is required when <code>state=present</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Create or update a vSphere tag-based storage policy + community.vmware.vmware_vm_storage_policy: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + name: "vSphere storage policy" + description: "vSphere storage performance policy" + tag_category: "performance_tier" + tag_name: "gold" + tag_affinity: true + state: "present" + delegate_to: localhost + + - name: Remove a vSphere tag-based storage policy + community.vmware.vmware_vm_storage_policy: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + name: "vSphere storage policy" + state: "absent" + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>vmware_vm_storage_policy</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>success</td> + <td> + <div>dictionary of information for the storage policy</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'vmware_vm_storage_policy': {'description': 'Storage policy for gold-tier storage', 'id': 'aa6d5a82-1c88-45da-85d3-3d74b91a5bad', 'name': 'gold'}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Dustin Scott (@scottd018) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_vm_drs_rule_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_vm_drs_rule_module.rst new file mode 100644 index 00000000..299c33ca --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_vm_drs_rule_module.rst @@ -0,0 +1,392 @@ +.. _community.vmware.vmware_vm_vm_drs_rule_module: + + +************************************** +community.vmware.vmware_vm_vm_drs_rule +************************************** + +**Configure VMware DRS Affinity rule for virtual machines in the given cluster** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to configure VMware DRS Affinity rule for virtual machines in the given cluster. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>affinity_rule</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>If set to <code>True</code>, the DRS rule will be an Affinity rule.</div> + <div>If set to <code>False</code>, the DRS rule will be an Anti-Affinity rule.</div> + <div>Effective only if <code>state</code> is set to <code>present</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Desired cluster name where virtual machines are present for the DRS rule.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>drs_rule_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the DRS rule to manage.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>If set to <code>True</code>, the DRS rule will be enabled.</div> + <div>Effective only if <code>state</code> is set to <code>present</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mandatory</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>If set to <code>True</code>, the DRS rule will be mandatory.</div> + <div>Effective only if <code>state</code> is set to <code>present</code>.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>If set to <code>present</code>, then the DRS rule is created if not present.</div> + <div>If set to <code>present</code>, then the DRS rule is already present, it updates to the given configurations.</div> + <div>If set to <code>absent</code>, then the DRS rule is deleted if present.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vms</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>List of virtual machines name for which DRS rule needs to be applied.</div> + <div>Required if <code>state</code> is set to <code>present</code>.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Create DRS Affinity Rule for VM-VM + community.vmware.vmware_vm_vm_drs_rule: + hostname: "{{ esxi_server }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + cluster_name: "{{ cluster_name }}" + vms: + - vm1 + - vm2 + drs_rule_name: vm1-vm2-affinity-rule-001 + enabled: True + mandatory: True + affinity_rule: True + delegate_to: localhost + + - name: Create DRS Anti-Affinity Rule for VM-VM + community.vmware.vmware_vm_vm_drs_rule: + hostname: "{{ esxi_server }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + cluster_name: "{{ cluster_name }}" + enabled: True + vms: + - vm1 + - vm2 + drs_rule_name: vm1-vm2-affinity-rule-001 + mandatory: True + affinity_rule: False + delegate_to: localhost + + - name: Delete DRS Affinity Rule for VM-VM + community.vmware.vmware_vm_vm_drs_rule: + hostname: "{{ esxi_server }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + cluster_name: "{{ cluster_name }}" + drs_rule_name: vm1-vm2-affinity-rule-001 + state: absent + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>when state is present</td> + <td> + <div>metadata about DRS VM and VM rule</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'rule_enabled': False, 'rule_key': 20, 'rule_mandatory': True, 'rule_name': 'drs_rule_0014', 'rule_uuid': '525f3bc0-253f-825a-418e-2ec93bffc9ae', 'rule_vms': ['VM_65', 'VM_146']}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_vss_dvs_migrate_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_vss_dvs_migrate_module.rst new file mode 100644 index 00000000..965b530d --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vm_vss_dvs_migrate_module.rst @@ -0,0 +1,230 @@ +.. _community.vmware.vmware_vm_vss_dvs_migrate_module: + + +****************************************** +community.vmware.vmware_vm_vss_dvs_migrate +****************************************** + +**Migrates a virtual machine from a standard vswitch to distributed** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Migrates a virtual machine from a standard vswitch to distributed + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>dvportgroup_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the portgroup to migrate to the virtual machine to</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the virtual machine to migrate to a dvSwitch</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Migrate VCSA to vDS + community.vmware.vmware_vm_vss_dvs_migrate: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + vm_name: '{{ vm_name }}' + dvportgroup_name: '{{ distributed_portgroup_name }}' + delegate_to: localhost + + + + +Status +------ + + +Authors +~~~~~~~ + +- Joseph Callen (@jcpowermac) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vmkernel_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vmkernel_info_module.rst new file mode 100644 index 00000000..39b14355 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vmkernel_info_module.rst @@ -0,0 +1,273 @@ +.. _community.vmware.vmware_vmkernel_info_module: + + +************************************* +community.vmware.vmware_vmkernel_info +************************************* + +**Gathers VMKernel info about an ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather VMKernel information about an ESXi host from given ESXi hostname or cluster name. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster.</div> + <div>VMKernel information about each ESXi server will be returned for the given cluster.</div> + <div>If <code>esxi_hostname</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname.</div> + <div>VMKernel information about this ESXi server will be returned.</div> + <div>If <code>cluster_name</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather VMKernel info about all ESXi Host in given Cluster + community.vmware.vmware_vmkernel_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: cluster_name + delegate_to: localhost + register: cluster_host_vmks + + - name: Gather VMKernel info about ESXi Host + community.vmware.vmware_vmkernel_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + delegate_to: localhost + register: host_vmks + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>host_vmk_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>success</td> + <td> + <div>metadata about VMKernel present on given host system</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'10.76.33.208': [{'device': 'vmk0', 'dhcp': True, 'enable_ft': False, 'enable_management': True, 'enable_vmotion': False, 'enable_vsan': False, 'ipv4_address': '10.76.33.28', 'ipv4_subnet_mask': '255.255.255.0', 'key': 'key-vim.host.VirtualNic-vmk0', 'mac': '52:54:00:12:50:ce', 'mtu': 1500, 'portgroup': 'Management Network', 'stack': 'defaultTcpipStack'}]}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vmkernel_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vmkernel_module.rst new file mode 100644 index 00000000..ee761aab --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vmkernel_module.rst @@ -0,0 +1,692 @@ +.. _community.vmware.vmware_vmkernel_module: + + +******************************** +community.vmware.vmware_vmkernel +******************************** + +**Manages a VMware VMkernel Adapter of an ESXi host.** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to manage the VMKernel adapters / VMKernel network interfaces of an ESXi host. +- The module assumes that the host is already configured with the Port Group in case of a vSphere Standard Switch (vSS). +- The module assumes that the host is already configured with the Distributed Port Group in case of a vSphere Distributed Switch (vDS). +- The module automatically migrates the VMKernel adapter from vSS to vDS or vice versa if present. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>device</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Search VMkernel adapter by device name.</div> + <div>The parameter is required only in case of <code>type</code> is set to <code>dhcp</code>.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>dvswitch_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the vSphere Distributed Switch (vDS) where to add the VMKernel interface.</div> + <div>Required parameter only if <code>state</code> is set to <code>present</code>.</div> + <div>Optional parameter from version 2.8 and onwards.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: dvswitch</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enable_ft</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enable Fault Tolerance traffic on the VMKernel adapter.</div> + <div>This option is only allowed if the default TCP/IP stack is used.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enable_mgmt</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enable Management traffic on the VMKernel adapter.</div> + <div>This option is only allowed if the default TCP/IP stack is used.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enable_provisioning</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enable Provisioning traffic on the VMKernel adapter.</div> + <div>This option is only allowed if the default TCP/IP stack is used.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enable_replication</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enable vSphere Replication traffic on the VMKernel adapter.</div> + <div>This option is only allowed if the default TCP/IP stack is used.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enable_replication_nfc</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enable vSphere Replication NFC traffic on the VMKernel adapter.</div> + <div>This option is only allowed if the default TCP/IP stack is used.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enable_vmotion</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enable vMotion traffic on the VMKernel adapter.</div> + <div>This option is only allowed if the default TCP/IP stack is used.</div> + <div>You cannot enable vMotion on an additional adapter if you already have an adapter with the vMotion TCP/IP stack configured.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enable_vsan</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Enable VSAN traffic on the VMKernel adapter.</div> + <div>This option is only allowed if the default TCP/IP stack is used.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of ESXi host to which VMKernel is to be managed.</div> + <div>From version 2.5 onwards, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mtu</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">1500</div> + </td> + <td> + <div>The MTU for the VMKernel interface.</div> + <div>The default value of 1500 is valid from version 2.5 and onwards.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>network</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">{"tcpip_stack": "default", "type": "static"}</div> + </td> + <td> + <div>A dictionary of network details.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>default_gateway</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Default gateway (Override default gateway for this adapter).</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>ip_address</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Static IP address.</div> + <div>Required if <code>type</code> is set to <code>static</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>subnet_mask</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Static netmask required.</div> + <div>Required if <code>type</code> is set to <code>static</code>.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>tcpip_stack</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>default</b> ←</div></li> + <li>provisioning</li> + <li>vmotion</li> + <li>vxlan</li> + </ul> + </td> + <td> + <div>The TCP/IP stack for the VMKernel interface.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>static</b> ←</div></li> + <li>dhcp</li> + </ul> + </td> + <td> + <div>Type of IP assignment.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>portgroup_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the port group for the VMKernel interface.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: portgroup</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>present</b> ←</div></li> + <li>absent</li> + </ul> + </td> + <td> + <div>If set to <code>present</code>, the VMKernel adapter will be created with the given specifications.</div> + <div>If set to <code>absent</code>, the VMKernel adapter will be removed.</div> + <div>If set to <code>present</code> and VMKernel adapter exists, the configurations will be updated.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vswitch_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the vSwitch where to add the VMKernel interface.</div> + <div>Required parameter only if <code>state</code> is set to <code>present</code>.</div> + <div>Optional parameter from version 2.5 and onwards.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: vswitch</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - The option ``device`` need to be used with DHCP because otherwise it's not possible to check if a VMkernel device is already present + - You can only change from DHCP to static, and vSS to vDS, or vice versa, in one step, without creating a new device, with ``device`` specified. + - You can only create the VMKernel adapter on a vDS if authenticated to vCenter and not if authenticated to ESXi. + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add Management vmkernel port using static network type + community.vmware.vmware_vmkernel: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + esxi_hostname: '{{ esxi_hostname }}' + vswitch_name: vSwitch0 + portgroup_name: PG_0001 + network: + type: 'static' + ip_address: 192.168.127.10 + subnet_mask: 255.255.255.0 + state: present + enable_mgmt: True + delegate_to: localhost + + - name: Add Management vmkernel port using DHCP network type + community.vmware.vmware_vmkernel: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + esxi_hostname: '{{ esxi_hostname }}' + vswitch_name: vSwitch0 + portgroup_name: PG_0002 + state: present + network: + type: 'dhcp' + enable_mgmt: True + delegate_to: localhost + + - name: Change IP allocation from static to dhcp + community.vmware.vmware_vmkernel: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + esxi_hostname: '{{ esxi_hostname }}' + vswitch_name: vSwitch0 + portgroup_name: PG_0002 + state: present + device: vmk1 + network: + type: 'dhcp' + enable_mgmt: True + delegate_to: localhost + + - name: Delete VMkernel port + community.vmware.vmware_vmkernel: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + esxi_hostname: '{{ esxi_hostname }}' + vswitch_name: vSwitch0 + portgroup_name: PG_0002 + state: absent + delegate_to: localhost + + - name: Add Management vmkernel port to Distributed Switch + community.vmware.vmware_vmkernel: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + dvswitch_name: dvSwitch1 + portgroup_name: dvPG_0001 + network: + type: 'static' + ip_address: 192.168.127.10 + subnet_mask: 255.255.255.0 + state: present + enable_mgmt: True + delegate_to: localhost + + - name: Add vMotion vmkernel port with vMotion TCP/IP stack + community.vmware.vmware_vmkernel: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + dvswitch_name: dvSwitch1 + portgroup_name: dvPG_0001 + network: + type: 'static' + ip_address: 192.168.127.10 + subnet_mask: 255.255.255.0 + tcpip_stack: vmotion + state: present + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>always</td> + <td> + <div>metadata about VMKernel name</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'changed': False, 'msg': 'VMkernel Adapter already configured properly', 'device': 'vmk1', 'ipv4': 'static', 'ipv4_gw': 'No override', 'ipv4_ip': '192.168.1.15', 'ipv4_sm': '255.255.255.0', 'mtu': 9000, 'services': 'vMotion', 'switch': 'vDS'}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Joseph Callen (@jcpowermac) +- Russell Teague (@mtnbikenc) +- Abhijeet Kasurde (@Akasurde) +- Christian Kotte (@ckotte) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vmotion_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vmotion_module.rst new file mode 100644 index 00000000..3b012683 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vmotion_module.rst @@ -0,0 +1,485 @@ +.. _community.vmware.vmware_vmotion_module: + + +******************************* +community.vmware.vmware_vmotion +******************************* + +**Move a virtual machine using vMotion, and/or its vmdks using storage vMotion.** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Using VMware vCenter, move a virtual machine using vMotion to a different host, and/or its vmdks to another datastore using storage vMotion. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destination_cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.5.0</div> + </td> + <td> + </td> + <td> + <div>Name of the destination cluster the virtual machine should be running on.</div> + <div>Only works if drs is enabled for this cluster.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destination_datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the destination datacenter the datastore is located on.</div> + <div>Optional, required only when datastores are shared across datacenters.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destination_datastore</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the destination datastore the virtual machine's vmdk should be moved on.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datastore</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destination_datastore_cluster</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.5.0</div> + </td> + <td> + </td> + <td> + <div>Name of the destination datastore cluster (storage pod) the virtual machine's vmdk should be moved on.</div> + <div>Only works if drs is enabled for the cluster the vm is running / should run.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destination_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the destination host the virtual machine should be running on.</div> + <div>Version 2.6 onwards, this parameter is not a required parameter, unlike the previous versions.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: destination</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destination_resourcepool</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the destination resource pool where the virtual machine should be running.</div> + <div>Resource pool is required if vmotion is done between hosts which are part of different clusters or datacenters.</div> + <div>if not passed, resource_pool object will be retrived from host_obj parent.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: resource_pool</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>moid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance.</div> + <div>This is required if <code>vm_name</code> or <code>vm_uuid</code> is not supplied.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">3600</div> + </td> + <td> + <div>The timeout in seconds. When the timeout is reached, the module will fail.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>use_instance_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to use the VMware instance UUID rather than the BIOS UUID.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the VM to perform a vMotion on.</div> + <div>This is required parameter, if <code>vm_uuid</code> is not set.</div> + <div>Version 2.6 onwards, this parameter is not a required parameter, unlike the previous versions.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: vm</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>vm_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>UUID of the virtual machine to perform a vMotion operation on.</div> + <div>This is a required parameter, if <code>vm_name</code> or <code>moid</code> is not set.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: uuid</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Perform vMotion of virtual machine + community.vmware.vmware_vmotion: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + vm_name: 'vm_name_as_per_vcenter' + destination_host: 'destination_host_as_per_vcenter' + delegate_to: localhost + + - name: Perform vMotion of virtual machine + community.vmware.vmware_vmotion: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + moid: vm-42 + destination_host: 'destination_host_as_per_vcenter' + delegate_to: localhost + + - name: Perform vMotion of virtual machine to resource_pool + community.vmware.vmware_vmotion: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + moid: vm-42 + destination_host: 'destination_host_as_per_vcenter' + destination_resourcepool: 'destination_resourcepool_as_per_vcenter' + delegate_to: localhost + + - name: Perform storage vMotion of virtual machine + community.vmware.vmware_vmotion: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + vm_name: 'vm_name_as_per_vcenter' + destination_datastore: 'destination_datastore_as_per_vcenter' + delegate_to: localhost + + - name: Perform storage vMotion and host vMotion of virtual machine + community.vmware.vmware_vmotion: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + vm_name: 'vm_name_as_per_vcenter' + destination_host: 'destination_host_as_per_vcenter' + destination_datastore: 'destination_datastore_as_per_vcenter' + delegate_to: localhost + + - name: Perform storage vMotion to a Storage Cluster and vMotion to a Cluster of virtual machine + community.vmware.vmware_vmotion: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + vm_name: 'vm_name_as_per_vcenter' + destination_cluster: 'destination_cluster_as_per_vcenter' + destination_datastore_cluster: 'destination_datastore_cluster_as_per_vcenter' + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>datastore</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>changed or success</td> + <td> + <div>List the datastore the virtual machine is on.</div> + <div>Only returned if there is asked for a Storage vMotion (Datastore or Datastore Cluster).</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">datastore1</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>running_host</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>changed or success</td> + <td> + <div>List the host the virtual machine is registered to.</div> + <div>Only returned if there is asked for a vMotion (Cluster or Host).</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">host1.example.com</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Bede Carroll (@bedecarroll) +- Olivier Boukili (@oboukili) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vsan_cluster_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vsan_cluster_module.rst new file mode 100644 index 00000000..bc326354 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vsan_cluster_module.rst @@ -0,0 +1,226 @@ +.. _community.vmware.vmware_vsan_cluster_module: + + +************************************ +community.vmware.vmware_vsan_cluster +************************************ + +**Configure VSAN clustering on an ESXi host** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to configure VSAN clustering on an ESXi host + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_uuid</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Desired cluster UUID</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Configure VMware VSAN Cluster + hosts: deploy_node + tags: + - vsan + tasks: + - name: Configure VSAN on first host + community.vmware.vmware_vsan_cluster: + hostname: "{{ groups['esxi'][0] }}" + username: "{{ esxi_username }}" + password: "{{ site_password }}" + delegate_to: localhost + register: vsan_cluster + + - name: Configure VSAN on remaining hosts + community.vmware.vmware_vsan_cluster: + hostname: "{{ item }}" + username: "{{ esxi_username }}" + password: "{{ site_password }}" + cluster_uuid: "{{ vsan_cluster.cluster_uuid }}" + delegate_to: localhost + loop: "{{ groups['esxi'][1:] }}" + + + + +Status +------ + + +Authors +~~~~~~~ + +- Russell Teague (@mtnbikenc) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vsan_health_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vsan_health_info_module.rst new file mode 100644 index 00000000..1450e1ab --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vsan_health_info_module.rst @@ -0,0 +1,295 @@ +.. _community.vmware.vmware_vsan_health_info_module: + + +**************************************** +community.vmware.vmware_vsan_health_info +**************************************** + +**Gather information about a VMware vSAN cluster's health** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Gather information about a VMware vSAN cluster's health. + + + +Requirements +------------ +The below requirements are needed on the host that executes this module. + +- VMware vSAN Python's SDK + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the vSAN cluster.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the Datacenter.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: datacenter_name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>fetch_from_cache</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div><code>True</code> to return the result from cache directly instead of running the full health check.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather health info from a vSAN's cluster + community.vmware.vmware_vsan_health_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + cluster_name: 'vSAN01' + fetch_from_cache: False + + - name: Gather health info from a vSAN's cluster with datacenter + community.vmware.vmware_vsan_health_info: + hostname: "{{ vcenter_hostname }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + cluster_name: 'vSAN01' + datacenter: 'Datacenter_01' + fetch_from_cache: True + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>vsan_health_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>on success</td> + <td> + <div>vSAN cluster health info</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'_vimtype': 'vim.cluster.VsanClusterHealthSummary', 'burnInTest': None, 'clusterStatus': {'_vimtype': 'vim.cluster.VsanClusterHealthSystemStatusResult', 'goalState': 'installed', 'status': 'green', 'trackedHostsStatus': [{'_vimtype': 'vim.host.VsanHostHealthSystemStatusResult', 'hostname': 'esxi01.example.com', 'issues': [], 'status': 'green'}, {'_vimtype': 'vim.host.VsanHostHealthSystemStatusResult', 'hostname': 'esxi04.example.com', 'issues': [], 'status': 'green'}, {'_vimtype': 'vim.host.VsanHostHealthSystemStatusResult', 'hostname': 'esxi02.example.com', 'issues': [], 'status': 'green'}, {'_vimtype': 'vim.host.VsanHostHealthSystemStatusResult', 'hostname': 'esxi03.example.com', 'issues': [], 'status': 'green'}], 'untrackedHosts': []}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Erwan Quelin (@equelin) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vspan_session_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vspan_session_module.rst new file mode 100644 index 00000000..b90ae103 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vspan_session_module.rst @@ -0,0 +1,622 @@ +.. _community.vmware.vmware_vspan_session_module: + + +************************************* +community.vmware.vmware_vspan_session +************************************* + +**Create or remove a Port Mirroring session.** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to create, delete or edit different kind of port mirroring sessions. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>description</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The description for the session.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destination_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Destination port that received the mirrored packets.</div> + <div>Also any port designated in the value of this property can not match the source port in any of the Distributed Port Mirroring session.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>destination_vm</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>With this parameter it is possible, to add a NIC of a VM to a port mirroring session.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the VM.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>nic_label</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Label of the network interface card to use.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Whether the session is enabled.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>encapsulation_vlan_id</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>VLAN ID used to encapsulate the mirrored traffic.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mirrored_packet_length</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>An integer that describes how much of each frame to mirror.</div> + <div>If unset, all of the frame would be mirrored.</div> + <div>Setting this property to a smaller value is useful when the consumer will look only at the headers.</div> + <div>The value cannot be less than 60.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the session.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>normal_traffic_allowed</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether or not destination ports can send and receive "normal" traffic.</div> + <div>Setting this to false will make mirror ports be used solely for mirroring and not double as normal access ports.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>sampling_rate</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Sampling rate of the session.</div> + <div>If its value is n, one of every n packets is mirrored.</div> + <div>Valid values are between 1 to 65535.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>session_type</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>encapsulatedRemoteMirrorSource</li> + <li>remoteMirrorDest</li> + <li>remoteMirrorSource</li> + <li><div style="color: blue"><b>dvPortMirror</b> ←</div></li> + </ul> + </td> + <td> + <div>Select the mirroring type.</div> + <div>In <code>encapsulatedRemoteMirrorSource</code> session, Distributed Ports can be used as source entities, and IP address can be used as destination entities.</div> + <div>In <code>remoteMirrorDest</code> session, VLAN IDs can be used as source entities, and Distributed Ports can be used as destination entities.</div> + <div>In <code>remoteMirrorSource</code> session, Distributed Ports can be used as source entities, and uplink ports name can be used as destination entities.</div> + <div>In <code>dvPortMirror</code> session, Distributed Ports can be used as both source and destination entities.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>source_port_received</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Source port for which received packets are mirrored.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>source_port_transmitted</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Source port for which transmitted packets are mirrored.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>source_vm_received</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>With this parameter it is possible, to add a NIC of a VM to a port mirroring session.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the VM.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>nic_label</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Label of the network interface card to use.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>source_vm_transmitted</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td> + </td> + <td> + <div>With this parameter it is possible, to add a NIC of a VM to a port mirroring session.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the VM.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>nic_label</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Label of the network interface card to use.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>present</li> + <li>absent</li> + </ul> + </td> + <td> + <div>Create or remove the session.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>strip_original_vlan</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Whether to strip the original VLAN tag.</div> + <div>If false, the original VLAN tag will be preserved on the mirrored traffic.</div> + <div>If <code>encapsulationVlanId</code> has been set and this property is false, the frames will be double tagged with the original VLAN ID as the inner tag.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>switch</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The name of the distributed vSwitch on which to add or remove the mirroring session.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: switch_name</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Create distributed mirroring session. + community.vmware.vmware_vspan_session: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + switch_name: dvSwitch + state: present + name: Basic Session + enabled: True + description: "Example description" + source_port_transmitted: 817 + source_port_received: 817 + destination_port: 815 + delegate_to: localhost + + - name: Create remote destination mirroring session. + community.vmware.vmware_vspan_session: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + switch_name: dvSwitch + state: present + name: Remote Session + enabled: True + description: "Example description" + source_port_received: 105 + destination_port: 815 + session_type: "remoteMirrorDest" + delegate_to: localhost + + - name: Delete remote destination mirroring session. + community.vmware.vmware_vspan_session: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + switch_name: dvSwitch + state: absent + name: Remote Session + delegate_to: localhost + + + + +Status +------ + + +Authors +~~~~~~~ + +- Peter Gyorgy (@gyorgypeter) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vswitch_info_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vswitch_info_module.rst new file mode 100644 index 00000000..9864dd4f --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vswitch_info_module.rst @@ -0,0 +1,296 @@ +.. _community.vmware.vmware_vswitch_info_module: + + +************************************ +community.vmware.vmware_vswitch_info +************************************ + +**Gathers info about an ESXi host's vswitch configurations** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to gather information about an ESXi host's vswitch configurations when ESXi hostname or Cluster name is given. +- The vSphere Client shows the value for the number of ports as elastic from vSphere 5.5 and above. +- Other tools like esxcli might show the number of ports as 1536 or 5632. +- See https://kb.vmware.com/s/article/2064511 for more details. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>cluster_name</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Name of the cluster.</div> + <div>Info about vswitch belonging to every ESXi host systems under this cluster will be returned.</div> + <div>If <code>esxi_hostname</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>ESXi hostname to gather information from.</div> + <div>If <code>cluster_name</code> is not given, this parameter is required.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>policies</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.4.0</div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li><div style="color: blue"><b>no</b> ←</div></li> + <li>yes</li> + </ul> + </td> + <td> + <div>Gather information about Security, Traffic Shaping, as well as Teaming and failover.</div> + <div>The property <code>ts</code> stands for Traffic Shaping and <code>lb</code> for Load Balancing.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Gather vswitch info about all ESXi Host in given Cluster + community.vmware.vmware_vswitch_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + cluster_name: '{{ cluster_name }}' + delegate_to: localhost + register: all_hosts_vswitch_info + + - name: Gather vswitch info about ESXi Host + community.vmware.vmware_vswitch_info: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + esxi_hostname: '{{ esxi_hostname }}' + delegate_to: localhost + register: all_vswitch_info + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>hosts_vswitch_info</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + </td> + <td>on success</td> + <td> + <div>metadata about host's vswitch configuration</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">{'10.76.33.218': {'vSwitch0': {'mtu': 1500, 'num_ports': 128, 'pnics': ['vmnic0'], 'failback': True, 'failover_active': ['vmnic0'], 'failover_standby': [], 'failure_detection': 'link_status_only', 'lb': 'loadbalance_srcid', 'notify': True, 'security': [False, False, False], 'ts': False}, 'vSwitch_0011': {'mtu': 1500, 'num_ports': 128, 'pnics': ['vmnic2', 'vmnic1'], 'failback': True, 'failover_active': ['vmnic1'], 'failover_standby': ['vmnic2'], 'failure_detection': 'link_status_only', 'lb': 'loadbalance_srcid', 'notify': True, 'security': [False, False, False], 'ts': False}}}</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Abhijeet Kasurde (@Akasurde) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vmware_vswitch_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vmware_vswitch_module.rst new file mode 100644 index 00000000..12a5a4f4 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vmware_vswitch_module.rst @@ -0,0 +1,728 @@ +.. _community.vmware.vmware_vswitch_module: + + +******************************* +community.vmware.vmware_vswitch +******************************* + +**Manage a VMware Standard Switch to an ESXi host.** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module can be used to add, remove and update a VMware Standard Switch to an ESXi host. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="2">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>esxi_hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Manage the vSwitch using this ESXi host system.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: host</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mtu</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">1500</div> + </td> + <td> + <div>MTU to configure on vSwitch.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>nics</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">[]</div> + </td> + <td> + <div>A list of vmnic names or vmnic name to attach to vSwitch.</div> + <div>Alias <code>nics</code> is added in version 2.4.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: nic_name</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>number_of_ports</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">128</div> + </td> + <td> + <div>Number of port to configure on vSwitch.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>security</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.4.0</div> + </td> + <td> + </td> + <td> + <div>Network policy specifies layer 2 security settings for a portgroup such as promiscuous mode, where guest adapter listens to all the packets, MAC address changes and forged transmits.</div> + <div>Dict which configures the different security values for portgroup.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: security_policy, network_policy</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>forged_transmits</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates whether forged transmits are allowed.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>mac_changes</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates whether mac changes are allowed.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>promiscuous_mode</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicates whether promiscuous mode is allowed.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>absent</li> + <li><div style="color: blue"><b>present</b> ←</div></li> + </ul> + </td> + <td> + <div>Add or remove the switch.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>switch</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>vSwitch name to add.</div> + <div>Alias <code>switch</code> is added in version 2.4.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: switch_name</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>teaming</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.4.0</div> + </td> + <td> + </td> + <td> + <div>Dictionary which configures the different teaming values for portgroup.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: teaming_policy</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>active_adapters</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>List of active adapters used for load balancing.</div> + <div>All vmnics are used as active adapters if <code>active_adapters</code> and <code>standby_adapters</code> are not defined.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>failback</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicate whether or not to use a failback when restoring links.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>load_balancing</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>loadbalance_ip</li> + <li>loadbalance_srcmac</li> + <li>loadbalance_srcid</li> + <li>failover_explicit</li> + <li>None</li> + </ul> + </td> + <td> + <div>Network adapter teaming policy.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: load_balance_policy</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>network_failure_detection</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>link_status_only</li> + <li>beacon_probing</li> + </ul> + </td> + <td> + <div>Network failure detection.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>notify_switches</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Indicate whether or not to notify the physical switch if a link fails.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>standby_adapters</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">list</span> + / <span style="color: purple">elements=string</span> + </div> + </td> + <td> + </td> + <td> + <div>List of standby adapters used for failover.</div> + <div>All vmnics are used as active adapters if <code>active_adapters</code> and <code>standby_adapters</code> are not defined.</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>traffic_shaping</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">dictionary</span> + </div> + <div style="font-style: italic; font-size: small; color: darkgreen">added in 2.4.0</div> + </td> + <td> + </td> + <td> + <div>Dictionary which configures traffic shaping for the switch.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>average_bandwidth</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Average bandwidth (kbit/s).</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>burst_size</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Burst size (KB).</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>enabled</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li>yes</li> + </ul> + </td> + <td> + <div>Status of Traffic Shaping Policy.</div> + </td> + </tr> + <tr> + <td class="elbow-placeholder"></td> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>peak_bandwidth</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Peak bandwidth (kbit/s).</div> + </td> + </tr> + + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Add a VMware vSwitch + community.vmware.vmware_vswitch: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + switch: vswitch_name + nics: vmnic_name + mtu: 9000 + delegate_to: localhost + + - name: Add a VMware vSwitch without any physical NIC attached + community.vmware.vmware_vswitch: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + switch: vswitch_0001 + mtu: 9000 + delegate_to: localhost + + - name: Add a VMware vSwitch with multiple NICs + community.vmware.vmware_vswitch: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + switch: vmware_vswitch_0004 + nics: + - vmnic1 + - vmnic2 + mtu: 9000 + delegate_to: localhost + + - name: Add a VMware vSwitch to a specific host system + community.vmware.vmware_vswitch: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + esxi_hostname: DC0_H0 + switch_name: vswitch_001 + nic_name: vmnic0 + mtu: 9000 + delegate_to: localhost + + - name: Add a VMware vSwitch to a specific host system with Promiscuous Mode Enabled + community.vmware.vmware_vswitch: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + esxi_hostname: DC0_H0 + switch_name: vswitch_001 + nic_name: vmnic0 + mtu: 9000 + security: + promiscuous_mode: True + delegate_to: localhost + + - name: Add a VMware vSwitch to a specific host system with active/standby teaming + community.vmware.vmware_vswitch: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + esxi_hostname: DC0_H0 + switch_name: vswitch_001 + nic_name: + - vmnic0 + - vmnic1 + teaming: + active_adapters: + - vmnic0 + standby_adapters: + - vmnic1 + delegate_to: localhost + + - name: Add a VMware vSwitch to a specific host system with traffic shaping + community.vmware.vmware_vswitch: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + esxi_hostname: DC0_H0 + switch_name: vswitch_001 + nic_name: + - vmnic0 + - vmnic1 + traffic_shaping: + enabled: True + average_bandwidth: 100000 + peak_bandwidth: 100000 + burst_size: 102400 + delegate_to: localhost + + - name: Delete a VMware vSwitch in a specific host system + community.vmware.vmware_vswitch: + hostname: '{{ esxi_hostname }}' + username: '{{ esxi_username }}' + password: '{{ esxi_password }}' + esxi_hostname: DC0_H0 + switch_name: vswitch_001 + state: absent + delegate_to: localhost + + + +Return Values +------------- +Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Key</th> + <th>Returned</th> + <th width="100%">Description</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="return-"></div> + <b>result</b> + <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td>always</td> + <td> + <div>information about performed operation</div> + <br/> + <div style="font-size: smaller"><b>Sample:</b></div> + <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">vSwitch 'vSwitch_1002' is created successfully</div> + </td> + </tr> + </table> + <br/><br/> + + +Status +------ + + +Authors +~~~~~~~ + +- Joseph Callen (@jcpowermac) +- Russell Teague (@mtnbikenc) +- Abhijeet Kasurde (@Akasurde) <akasurde@redhat.com> diff --git a/ansible_collections/community/vmware/docs/community.vmware.vsphere_copy_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vsphere_copy_module.rst new file mode 100644 index 00000000..8df8c2e2 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vsphere_copy_module.rst @@ -0,0 +1,304 @@ +.. _community.vmware.vsphere_copy_module: + + +***************************** +community.vmware.vsphere_copy +***************************** + +**Copy a file to a VMware datastore** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Upload files to a VMware datastore through a vCenter REST API. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The datacenter on the vCenter server that holds the datastore.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The datastore to push files to.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>hostname</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The hostname or IP address of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_HOST</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The password of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PASSWORD</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: pass, pwd</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>path</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The file to push to the datastore.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: dest</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">443</div> + </td> + <td> + <div>The port number of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PORT</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>Address of a proxy that will receive all HTTPS requests and relay them.</div> + <div>The format is a hostname or a IP.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_HOST</code> will be used instead.</div> + <div>This feature depends on a version of pyvmomi greater than v6.7.1.2018.12</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>proxy_port</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + </td> + <td> + <div>Port of the HTTP proxy that will receive all HTTPS requests and relay them.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_PROXY_PORT</code> will be used instead.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>src</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The file to push to vCenter.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: name</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">10</div> + </td> + <td> + <div>The timeout in seconds for the upload to the datastore.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + </td> + <td> + <div>The username of the vSphere vCenter or ESXi server.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_USER</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: admin, user</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>Allows connection when SSL certificates are not valid. Set to <code>false</code> when certificates are not trusted.</div> + <div>If the value is not specified in the task, the value of environment variable <code>VMWARE_VALIDATE_CERTS</code> will be used instead.</div> + <div>Environment variable support added in Ansible 2.6.</div> + <div>If set to <code>true</code>, please make sure Python >= 2.7.9 is installed on the given machine.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - This module ought to be run from a system that can access the vCenter or the ESXi directly and has the file to transfer. It can be the normal remote target or you can change it either by using ``transport: local`` or using ``delegate_to``. + - All modules requires API write access and hence is not supported on a free ESXi license. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Copy file to datastore using delegate_to + community.vmware.vsphere_copy: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + src: /some/local/file + datacenter: DC1 Someplace + datastore: datastore1 + path: some/remote/file + delegate_to: localhost + + - name: Copy file to datastore when datacenter is inside folder called devel + community.vmware.vsphere_copy: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + src: /some/local/file + datacenter: devel/DC1 + datastore: datastore1 + path: some/remote/file + delegate_to: localhost + + - name: Copy file to datastore using other_system + community.vmware.vsphere_copy: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + src: /other/local/file + datacenter: DC2 Someplace + datastore: datastore2 + path: other/remote/file + delegate_to: other_system + + + + +Status +------ + + +Authors +~~~~~~~ + +- Dag Wieers (@dagwieers) diff --git a/ansible_collections/community/vmware/docs/community.vmware.vsphere_file_module.rst b/ansible_collections/community/vmware/docs/community.vmware.vsphere_file_module.rst new file mode 100644 index 00000000..b27448c9 --- /dev/null +++ b/ansible_collections/community/vmware/docs/community.vmware.vsphere_file_module.rst @@ -0,0 +1,265 @@ +.. _community.vmware.vsphere_file_module: + + +***************************** +community.vmware.vsphere_file +***************************** + +**Manage files on a vCenter datastore** + + + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- Manage files on a vCenter datastore. + + + + +Parameters +---------- + +.. raw:: html + + <table border=0 cellpadding=0 class="documentation-table"> + <tr> + <th colspan="1">Parameter</th> + <th>Choices/<font color="blue">Defaults</font></th> + <th width="100%">Comments</th> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datacenter</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The datacenter on the vCenter server that holds the datastore.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>datastore</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The datastore on the vCenter server to push files to.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>host</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The vCenter server on which the datastore is available.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: hostname</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>password</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The password to authenticate on the vCenter server.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>path</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The file or directory on the datastore on the vCenter server.</div> + <div style="font-size: small; color: darkgreen"><br/>aliases: dest</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>state</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>absent</li> + <li>directory</li> + <li><div style="color: blue"><b>file</b> ←</div></li> + <li>touch</li> + </ul> + </td> + <td> + <div>The state of or the action on the provided path.</div> + <div>If <code>absent</code>, the file will be removed.</div> + <div>If <code>directory</code>, the directory will be created.</div> + <div>If <code>file</code>, more information of the (existing) file will be returned.</div> + <div>If <code>touch</code>, an empty file will be created if the path does not exist.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>timeout</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">integer</span> + </div> + </td> + <td> + <b>Default:</b><br/><div style="color: blue">10</div> + </td> + <td> + <div>The timeout in seconds for the upload to the datastore.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>username</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">string</span> + / <span style="color: red">required</span> + </div> + </td> + <td> + </td> + <td> + <div>The user name to authenticate on the vCenter server.</div> + </td> + </tr> + <tr> + <td colspan="1"> + <div class="ansibleOptionAnchor" id="parameter-"></div> + <b>validate_certs</b> + <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> + <div style="font-size: small"> + <span style="color: purple">boolean</span> + </div> + </td> + <td> + <ul style="margin: 0; padding: 0"><b>Choices:</b> + <li>no</li> + <li><div style="color: blue"><b>yes</b> ←</div></li> + </ul> + </td> + <td> + <div>If <code>false</code>, SSL certificates will not be validated. This should only be set to <code>false</code> when no other option exists.</div> + </td> + </tr> + </table> + <br/> + + +Notes +----- + +.. note:: + - The vSphere folder API does not allow to remove directory objects. + + + +Examples +-------- + +.. code-block:: yaml + + - name: Create an empty file on a datastore + community.vmware.vsphere_file: + host: '{{ vhost }}' + username: '{{ vuser }}' + password: '{{ vpass }}' + datacenter: DC1 Someplace + datastore: datastore1 + path: some/remote/file + state: touch + delegate_to: localhost + + - name: Create a directory on a datastore + community.vmware.vsphere_file: + host: '{{ vhost }}' + username: '{{ vuser }}' + password: '{{ vpass }}' + datacenter: DC2 Someplace + datastore: datastore2 + path: other/remote/file + state: directory + delegate_to: localhost + + - name: Query a file on a datastore + community.vmware.vsphere_file: + host: '{{ vhost }}' + username: '{{ vuser }}' + password: '{{ vpass }}' + datacenter: DC1 Someplace + datastore: datastore1 + path: some/remote/file + state: file + delegate_to: localhost + ignore_errors: true + + - name: Delete a file on a datastore + community.vmware.vsphere_file: + host: '{{ vhost }}' + username: '{{ vuser }}' + password: '{{ vpass }}' + datacenter: DC2 Someplace + datastore: datastore2 + path: other/remote/file + state: absent + delegate_to: localhost + + + + +Status +------ + + +Authors +~~~~~~~ + +- Dag Wieers (@dagwieers) diff --git a/ansible_collections/community/vmware/docs/docsite/extra-docs.yml b/ansible_collections/community/vmware/docs/docsite/extra-docs.yml new file mode 100644 index 00000000..9acde7f2 --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/extra-docs.yml @@ -0,0 +1,8 @@ +--- +sections: + - title: Scenario Guide + toctree: + - scenario_guide + - title: Developer Guide + toctree: + - dev_guide diff --git a/ansible_collections/community/vmware/docs/docsite/rst/dev_guide.rst b/ansible_collections/community/vmware/docs/docsite/rst/dev_guide.rst new file mode 100644 index 00000000..5a74c9fe --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/dev_guide.rst @@ -0,0 +1,239 @@ +.. _ansible_collections.community.vmware.docsite.vmware_ansible_devguide: + +**************************************** +Guidelines for VMware module development +**************************************** + +The Ansible VMware collection (on `Galaxy <https://galaxy.ansible.com/community/vmware>`_, source code `repository <https://github.com/ansible-collections/community.vmware>`_) is maintained by the VMware Working Group. For more information see the `team community page <https://github.com/ansible/community/wiki/VMware>`_. + +.. contents:: + :local: + +Testing with your own infrastructure +==================================== + +You can target a regular VMware environment. This paragraph explains step by step how you can run the test-suite yourself. + +Requirements +------------ + +- 2 ESXi hosts (6.5 or 6.7) + - with 2 NIC, the second ones should be available for the test +- a VCSA host +- a NFS server +- Python dependencies: + - `pyvmomi <https://github.com/vmware/pyvmomi/tree/master/pyVmomi>`_ + - `requests <https://2.python-requests.org/en/master/>`_ + +If you want to deploy your test environment in a hypervisor, both `VMware or Libvirt <https://github.com/goneri/vmware-on-libvirt>`_ work well. + +NFS server configuration +^^^^^^^^^^^^^^^^^^^^^^^^ + +Your NFS server must expose the following directory structure: + +.. code-block:: shell + + $ tree /srv/share/ + /srv/share/ + ├── isos + │ ├── base.iso + │ ├── centos.iso + │ └── fedora.iso + └── vms + 2 directories, 3 files + +On a Linux system, you can expose the directory over NFS with the following export file: + +.. code-block:: shell + + $ cat /etc/exports + /srv/share 192.168.122.0/255.255.255.0(rw,anonuid=1000,anongid=1000) + +.. note:: + + With this configuration all the new files will be owned by the user with the UID and GID 1000/1000. + Adjust the configuration to match your user's UID/GID. + +The service can be enabled with: + +.. code-block:: shell + + $ sudo systemctl enable --now nfs-server + + +Configure your installation +--------------------------- + +Prepare a configuration file that describes your set-up. The file +should be called `test/integration/cloud-config-vcenter.ini` and based on +`test/lib/ansible_test/config/cloud-config-vcenter.ini.template`. For instance, if you have deployed your lab with +`vmware-on-libvirt <https://github.com/goneri/vmware-on-libvirt>`_: + +.. code-block:: ini + + [DEFAULT] + vcenter_username: administrator@vsphere.local + vcenter_password: !234AaAa56 + vcenter_hostname: vcenter.test + vmware_validate_certs: false + esxi1_hostname: esxi1.test + esxi1_username: root + esxi1_password: root + esxi2_hostname: test2.test + esxi2_username: root + esxi2_password: root + +Using an HTTP proxy +------------------- +Hosting test infrastructure behind an HTTP proxy is supported. You can specify the location of the proxy server with the two extra keys: + +.. code-block:: ini + + vmware_proxy_host: esxi1-gw.ws.testing.ansible.com + vmware_proxy_port: 11153 + +In addition, you may need to adjust the variables of the following `var files <https://github.com/ansible-collections/community.vmware/tree/main/tests/integration/targets/prepare_vmware_tests/vars>`_ to match the configuration of your lab. If you use vmware-on-libvirt to prepare your lab, you do not have anything to change. + +Run the test-suite +------------------ + +Once your configuration is ready, you can trigger a run with the following command: + +.. code-block:: shell + + source hacking/env-setup + VMWARE_TEST_PLATFORM=static ansible-test integration --python 3.7 vmware_host_firewall_manager + +``vmware_host_firewall_manager`` is the name of the module to test. + +``vmware_guest`` is much larger than any other test role and is rather slow. You can enable or disable some of its test playbooks in `main.yml <https://github.com/ansible-collections/community.vmware/tree/main/tests/integration/targets/vmware_guest/defaults/main.yml>`_. + + +Unit-test +========= + +The VMware modules have limited unit-test coverage. You can run the test suite with the +following commands: + +.. code-block:: shell + + source hacking/env-setup + ansible-test units --venv --python 3.7 '.*vmware.*' + +Code style and best practice +============================ + +datacenter argument with ESXi +----------------------------- + +The ``datacenter`` parameter should not use ``ha-datacenter`` by default. This is because the user may +not realize that Ansible silently targets the wrong data center. + +esxi_hostname should not be mandatory +------------------------------------- + +Depending upon the functionality provided by ESXi or vCenter, some modules can seamlessly work with both. In this case, +``esxi_hostname`` parameter should be optional. + +.. code-block:: python + + if self.is_vcenter(): + esxi_hostname = module.params.get('esxi_hostname') + if not esxi_hostname: + self.module.fail_json("esxi_hostname parameter is mandatory") + self.host = self.get_all_host_objs(cluster_name=cluster_name, esxi_host_name=esxi_hostname)[0] + else: + self.host = find_obj(self.content, [vim.HostSystem], None) + if self.host is None: + self.module.fail_json(msg="Failed to find host system.") + +Example should use the fully qualified collection name (FQCN) +------------------------------------------------------------- + +Use FQCN for examples within module documentation. For instance, you should use ``community.vmware.vmware_guest`` instead of just +``vmware_guest``. + +This way, the examples do not depend on the ``collections`` directive of the +playbook. + +Functional tests +---------------- + +Writing new tests +^^^^^^^^^^^^^^^^^ + +If you are writing a new collection of integration tests, there are a few VMware-specific things to note beyond +the standard Ansible :ref:`integration testing<testing_integration>` process. + +The test-suite uses a set of common, pre-defined vars located `in prepare_vmware_tests <https://github.com/ansible-collections/community.vmware/tree/main/tests/integration/targets/test/integration/targets/prepare_vmware_tests/>`_ role. +The resources defined there are automatically created by importing that role at the start of your test: + +.. code-block:: yaml + + - import_role: + name: prepare_vmware_tests + vars: + setup_datacenter: true + +This will give you a ready to use cluster, datacenter, datastores, folder, switch, dvswitch, ESXi hosts, and VMs. + +No need to create too much resources +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Most of the time, it's not necessary to use ``with_items`` to create multiple resources. By avoiding it, +you speed up the test execution and you simplify the clean up afterwards. + +VM names should be predictable +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +If you need to create a new VM during your test, you can use ``test_vm1``, ``test_vm2`` or ``test_vm3``. This +way it will be automatically clean up for you. + +Avoid the common boiler plate code in your test playbook +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +From Ansible 2.10, the test suite uses `modules_defaults`. This module +allow us to preinitialize the following default keys of the VMware modules: + +- hostname +- username +- password +- validate_certs + +For example, the following block: + +.. code-block:: yaml + + - name: Add a VMware vSwitch + community.vmware.vmware_vswitch: + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + validate_certs: 'no' + esxi_hostname: 'esxi1' + switch_name: "boby" + state: present + +should be simplified to just: + +.. code-block:: yaml + + - name: Add a VMware vSwitch + community.vmware.vmware_vswitch: + esxi_hostname: 'esxi1' + switch_name: "boby" + state: present + + +Typographic convention +====================== + +Nomenclature +------------ + +We try to enforce the following rules in our documentation: + +- VMware, not VMWare or vmware +- ESXi, not esxi or ESXI +- vCenter, not vcenter or VCenter diff --git a/ansible_collections/community/vmware/docs/docsite/rst/scenario_guide.rst b/ansible_collections/community/vmware/docs/docsite/rst/scenario_guide.rst new file mode 100644 index 00000000..270af08c --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/scenario_guide.rst @@ -0,0 +1,33 @@ +.. _ansible_collections.community.vmware.docsite.vmware_ansible: + +************ +VMware Guide +************ + +Welcome to the Ansible for VMware Guide! + +The purpose of this guide is to teach you everything you need to know about using Ansible with VMware. + +To get started, please select one of the following topics. + +.. toctree:: + :maxdepth: 1 + + vmware_scenarios/vmware_intro + vmware_scenarios/vmware_concepts + vmware_scenarios/vmware_requirements + vmware_scenarios/vmware_inventory + vmware_scenarios/vmware_inventory_vm_attributes + vmware_scenarios/vmware_inventory_hostnames + vmware_scenarios/vmware_inventory_filters + vmware_scenarios/vmware_scenarios + vmware_scenarios/vmware_troubleshooting + vmware_scenarios/vmware_external_doc_links + vmware_scenarios/faq +.. comments look like this - start with two dots +.. getting_started content not ready +.. vmware_scenarios/vmware_getting_started +.. module index page not ready +.. vmware_scenarios/vmware_module_reference +.. always exclude the template file +.. vmware_scenarios/vmware_scenario_1 diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/faq.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/faq.rst new file mode 100644 index 00000000..52f4f729 --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/faq.rst @@ -0,0 +1,26 @@ +.. _ansible_collections.community.vmware.docsite.vmware_faq: + +****************** +Ansible VMware FAQ +****************** + +vmware_guest +============ + +Can I deploy a virtual machine on a standalone ESXi server ? +------------------------------------------------------------ + +Yes. ``vmware_guest`` can deploy a virtual machine with required settings on a standalone ESXi server. +However, you must have a paid license to deploy virtual machines this way. If you are using the free version, the API is read-only. + +Is ``/vm`` required for ``vmware_guest`` module ? +------------------------------------------------- + +Prior to Ansible version 2.5, ``folder`` was an optional parameter with a default value of ``/vm``. + +The folder parameter was used to discover information about virtual machines in the given infrastructure. + +Starting with Ansible version 2.5, ``folder`` is still an optional parameter with no default value. +This parameter will be now used to identify a user's virtual machine, if multiple virtual machines or virtual +machine templates are found with same name. VMware does not restrict the system administrator from creating virtual +machines with same name. diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/scenario_clone_template.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/scenario_clone_template.rst new file mode 100644 index 00000000..1139a252 --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/scenario_clone_template.rst @@ -0,0 +1,223 @@ +.. _ansible_collections.community.vmware.docsite.vmware_guest_from_template: + +**************************************** +Deploy a virtual machine from a template +**************************************** + +.. contents:: + :local: + +Introduction +============ + +This guide will show you how to utilize Ansible to clone a virtual machine from already existing VMware template or existing VMware guest. + +Scenario requirements +===================== + +* Software + + * Ansible 2.5 or later must be installed + + * The Python module ``Pyvmomi`` must be installed on the Ansible (or Target host if not executing against localhost) + + * Installing the latest ``Pyvmomi`` via ``pip`` is recommended [as the OS provided packages are usually out of date and incompatible] + +* Hardware + + * vCenter Server with at least one ESXi server + +* Access / Credentials + + * Ansible (or the target server) must have network access to the either vCenter server or the ESXi server you will be deploying to + + * Username and Password + + * Administrator user with following privileges + + - ``Datastore.AllocateSpace`` on the destination datastore or datastore folder + - ``Network.Assign`` on the network to which the virtual machine will be assigned + - ``Resource.AssignVMToPool`` on the destination host, cluster, or resource pool + - ``VirtualMachine.Config.AddNewDisk`` on the datacenter or virtual machine folder + - ``VirtualMachine.Config.AddRemoveDevice`` on the datacenter or virtual machine folder + - ``VirtualMachine.Interact.PowerOn`` on the datacenter or virtual machine folder + - ``VirtualMachine.Inventory.CreateFromExisting`` on the datacenter or virtual machine folder + - ``VirtualMachine.Provisioning.Clone`` on the virtual machine you are cloning + - ``VirtualMachine.Provisioning.Customize`` on the virtual machine or virtual machine folder if you are customizing the guest operating system + - ``VirtualMachine.Provisioning.DeployTemplate`` on the template you are using + - ``VirtualMachine.Provisioning.ReadCustSpecs`` on the root vCenter Server if you are customizing the guest operating system + + Depending on your requirements, you could also need one or more of the following privileges: + + - ``VirtualMachine.Config.CPUCount`` on the datacenter or virtual machine folder + - ``VirtualMachine.Config.Memory`` on the datacenter or virtual machine folder + - ``VirtualMachine.Config.DiskExtend`` on the datacenter or virtual machine folder + - ``VirtualMachine.Config.Annotation`` on the datacenter or virtual machine folder + - ``VirtualMachine.Config.AdvancedConfig`` on the datacenter or virtual machine folder + - ``VirtualMachine.Config.EditDevice`` on the datacenter or virtual machine folder + - ``VirtualMachine.Config.Resource`` on the datacenter or virtual machine folder + - ``VirtualMachine.Config.Settings`` on the datacenter or virtual machine folder + - ``VirtualMachine.Config.UpgradeVirtualHardware`` on the datacenter or virtual machine folder + - ``VirtualMachine.Interact.SetCDMedia`` on the datacenter or virtual machine folder + - ``VirtualMachine.Interact.SetFloppyMedia`` on the datacenter or virtual machine folder + - ``VirtualMachine.Interact.DeviceConnection`` on the datacenter or virtual machine folder + +Assumptions +=========== + +- All variable names and VMware object names are case sensitive. +- VMware allows creation of virtual machine and templates with same name across datacenters and within datacenters. +- You need to use Python 2.7.9 version in order to use ``validate_certs`` option, as this version is capable of changing the SSL verification behaviours. + +Caveats +======= + +- Hosts in the ESXi cluster must have access to the datastore that the template resides on. +- Multiple templates with the same name will cause module failures. +- In order to utilize Guest Customization, VMware Tools must be installed on the template. For Linux, the ``open-vm-tools`` package is recommended, and it requires that ``Perl`` be installed. + + +Example description +=================== + +In this use case / example, we will be selecting a virtual machine template and cloning it into a specific folder in our Datacenter / Cluster. The following Ansible playbook showcases the basic parameters that are needed for this. + +.. code-block:: yaml + + --- + - name: Create a VM from a template + hosts: localhost + gather_facts: no + tasks: + - name: Clone the template + vmware_guest: + hostname: "{{ vcenter_ip }}" + username: "{{ vcenter_username }}" + password: "{{ vcenter_password }}" + validate_certs: False + name: testvm_2 + template: template_el7 + datacenter: "{{ datacenter_name }}" + folder: /DC1/vm + state: poweredon + cluster: "{{ cluster_name }}" + wait_for_ip_address: yes + + +Since Ansible utilizes the VMware API to perform actions, in this use case we will be connecting directly to the API from our localhost. This means that our playbooks will not be running from the vCenter or ESXi Server. We do not necessarily need to collect facts about our localhost, so the ``gather_facts`` parameter will be disabled. You can run these modules against another server that would then connect to the API if your localhost does not have access to vCenter. If so, the required Python modules will need to be installed on that target server. + +To begin, there are a few bits of information we will need. First and foremost is the hostname of the ESXi server or vCenter server. After this, you will need the username and password for this server. For now, you will be entering these directly, but in a more advanced playbook this can be abstracted out and stored in a more secure fashion using :ref:`ansible-vault` or using `Ansible Tower credentials <https://docs.ansible.com/ansible-tower/latest/html/userguide/credentials.html>`_. If your vCenter or ESXi server is not setup with proper CA certificates that can be verified from the Ansible server, then it is necessary to disable validation of these certificates by using the ``validate_certs`` parameter. To do this you need to set ``validate_certs=False`` in your playbook. + +Now you need to supply the information about the virtual machine which will be created. Give your virtual machine a name, one that conforms to all VMware requirements for naming conventions. Next, select the display name of the template from which you want to clone new virtual machine. This must match what's displayed in VMware Web UI exactly. Then you can specify a folder to place this new virtual machine in. This path can either be a relative path or a full path to the folder including the Datacenter. You may need to specify a state for the virtual machine. This simply tells the module which action you want to take, in this case you will be ensure that the virtual machine exists and is powered on. An optional parameter is ``wait_for_ip_address``, this will tell Ansible to wait for the virtual machine to fully boot up and VMware Tools is running before completing this task. + + +What to expect +-------------- + +- You will see a bit of JSON output after this playbook completes. This output shows various parameters that are returned from the module and from vCenter about the newly created VM. + +.. code-block:: yaml + + { + "changed": true, + "instance": { + "annotation": "", + "current_snapshot": null, + "customvalues": {}, + "guest_consolidation_needed": false, + "guest_question": null, + "guest_tools_status": "guestToolsNotRunning", + "guest_tools_version": "0", + "hw_cores_per_socket": 1, + "hw_datastores": [ + "ds_215" + ], + "hw_esxi_host": "192.0.2.44", + "hw_eth0": { + "addresstype": "assigned", + "ipaddresses": null, + "label": "Network adapter 1", + "macaddress": "00:50:56:8c:19:f4", + "macaddress_dash": "00-50-56-8c-19-f4", + "portgroup_key": "dvportgroup-17", + "portgroup_portkey": "0", + "summary": "DVSwitch: 50 0c 5b 22 b6 68 ab 89-fc 0b 59 a4 08 6e 80 fa" + }, + "hw_files": [ + "[ds_215] testvm_2/testvm_2.vmx", + "[ds_215] testvm_2/testvm_2.vmsd", + "[ds_215] testvm_2/testvm_2.vmdk" + ], + "hw_folder": "/DC1/vm", + "hw_guest_full_name": null, + "hw_guest_ha_state": null, + "hw_guest_id": null, + "hw_interfaces": [ + "eth0" + ], + "hw_is_template": false, + "hw_memtotal_mb": 512, + "hw_name": "testvm_2", + "hw_power_status": "poweredOff", + "hw_processor_count": 2, + "hw_product_uuid": "420cb25b-81e8-8d3b-dd2d-a439ee54fcc5", + "hw_version": "vmx-13", + "instance_uuid": "500cd53b-ed57-d74e-2da8-0dc0eddf54d5", + "ipv4": null, + "ipv6": null, + "module_hw": true, + "snapshots": [] + }, + "invocation": { + "module_args": { + "annotation": null, + "cdrom": {}, + "cluster": "DC1_C1", + "customization": {}, + "customization_spec": null, + "customvalues": [], + "datacenter": "DC1", + "disk": [], + "esxi_hostname": null, + "folder": "/DC1/vm", + "force": false, + "guest_id": null, + "hardware": {}, + "hostname": "192.0.2.44", + "is_template": false, + "linked_clone": false, + "name": "testvm_2", + "name_match": "first", + "networks": [], + "password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", + "port": 443, + "resource_pool": null, + "snapshot_src": null, + "state": "present", + "state_change_timeout": 0, + "template": "template_el7", + "username": "administrator@vsphere.local", + "uuid": null, + "validate_certs": false, + "vapp_properties": [], + "wait_for_ip_address": true + } + } + } + +- State is changed to ``True`` which notifies that the virtual machine is built using given template. The module will not complete until the clone task in VMware is finished. This can take some time depending on your environment. + +- If you utilize the ``wait_for_ip_address`` parameter, then it will also increase the clone time as it will wait until virtual machine boots into the OS and an IP Address has been assigned to the given NIC. + + + +Troubleshooting +--------------- + +Things to inspect: + +- Check if the values provided for username and password are correct. +- Check if the datacenter you provided is available. +- Check if the template specified exists and you have permissions to access the datastore. +- Ensure the full folder path you specified already exists. It will not create folders automatically for you. + diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/scenario_find_vm_folder.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/scenario_find_vm_folder.rst new file mode 100644 index 00000000..fccd47e2 --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/scenario_find_vm_folder.rst @@ -0,0 +1,121 @@ +.. _ansible_collections.community.vmware.docsite.vmware_guest_find_folder: + +****************************************************** +Find folder path of an existing VMware virtual machine +****************************************************** + +.. contents:: + :local: + +Introduction +============ + +This guide will show you how to utilize Ansible to find folder path of an existing VMware virtual machine. + +Scenario requirements +===================== + +* Software + + * Ansible 2.5 or later must be installed. + + * The Python module ``Pyvmomi`` must be installed on the Ansible control node (or Target host if not executing against localhost). + + * We recommend installing the latest version with pip: ``pip install Pyvmomi`` (as the OS packages are usually out of date and incompatible). + +* Hardware + + * At least one standalone ESXi server or + + * vCenter Server with at least one ESXi server + +* Access / Credentials + + * Ansible (or the target server) must have network access to the either vCenter server or the ESXi server + + * Username and Password for vCenter or ESXi server + +Caveats +======= + +- All variable names and VMware object names are case sensitive. +- You need to use Python 2.7.9 version in order to use ``validate_certs`` option, as this version is capable of changing the SSL verification behaviours. + + +Example description +=================== + +With the following Ansible playbook you can find the folder path of an existing virtual machine using name. + +.. code-block:: yaml + + --- + - name: Find folder path of an existing virtual machine + hosts: localhost + gather_facts: False + vars_files: + - vcenter_vars.yml + vars: + ansible_python_interpreter: "/usr/bin/env python3" + tasks: + - set_fact: + vm_name: "DC0_H0_VM0" + + - name: "Find folder for VM - {{ vm_name }}" + vmware_guest_find: + hostname: "{{ vcenter_server }}" + username: "{{ vcenter_user }}" + password: "{{ vcenter_pass }}" + validate_certs: False + name: "{{ vm_name }}" + delegate_to: localhost + register: vm_facts + + +Since Ansible utilizes the VMware API to perform actions, in this use case it will be connecting directly to the API from localhost. + +This means that playbooks will not be running from the vCenter or ESXi Server. + +Note that this play disables the ``gather_facts`` parameter, since you don't want to collect facts about localhost. + +You can run these modules against another server that would then connect to the API if localhost does not have access to vCenter. If so, the required Python modules will need to be installed on that target server. We recommend installing the latest version with pip: ``pip install Pyvmomi`` (as the OS packages are usually out of date and incompatible). + +Before you begin, make sure you have: + +- Hostname of the ESXi server or vCenter server +- Username and password for the ESXi or vCenter server +- Name of the existing Virtual Machine for which you want to collect folder path + +For now, you will be entering these directly, but in a more advanced playbook this can be abstracted out and stored in a more secure fashion using :ref:`ansible-vault` or using `Ansible Tower credentials <https://docs.ansible.com/ansible-tower/latest/html/userguide/credentials.html>`_. + +If your vCenter or ESXi server is not setup with proper CA certificates that can be verified from the Ansible server, then it is necessary to disable validation of these certificates by using the ``validate_certs`` parameter. To do this you need to set ``validate_certs=False`` in your playbook. + +The name of existing virtual machine will be used as input for ``vmware_guest_find`` module via ``name`` parameter. + + +What to expect +-------------- + +Running this playbook can take some time, depending on your environment and network connectivity. When the run is complete you will see + +.. code-block:: yaml + + "vm_facts": { + "changed": false, + "failed": false, + ... + "folders": [ + "/F0/DC0/vm/F0" + ] + } + + +Troubleshooting +--------------- + +If your playbook fails: + +- Check if the values provided for username and password are correct. +- Check if the datacenter you provided is available. +- Check if the virtual machine specified exists and you have respective permissions to access VMware object. +- Ensure the full folder path you specified already exists. diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/scenario_remove_vm.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/scenario_remove_vm.rst new file mode 100644 index 00000000..59b2bf97 --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/scenario_remove_vm.rst @@ -0,0 +1,127 @@ +.. _ansible_collections.community.vmware.docsite.vmware_guest_remove_virtual_machine: + +***************************************** +Remove an existing VMware virtual machine +***************************************** + +.. contents:: + :local: + +Introduction +============ + +This guide will show you how to utilize Ansible to remove an existing VMware virtual machine. + +Scenario requirements +===================== + +* Software + + * Ansible 2.5 or later must be installed. + + * The Python module ``Pyvmomi`` must be installed on the Ansible control node (or Target host if not executing against localhost). + + * We recommend installing the latest version with pip: ``pip install Pyvmomi`` (as the OS packages are usually out of date and incompatible). + +* Hardware + + * At least one standalone ESXi server or + + * vCenter Server with at least one ESXi server + +* Access / Credentials + + * Ansible (or the target server) must have network access to the either vCenter server or the ESXi server + + * Username and Password for vCenter or ESXi server + + * Hosts in the ESXi cluster must have access to the datastore that the template resides on. + +Caveats +======= + +- All variable names and VMware object names are case sensitive. +- You need to use Python 2.7.9 version in order to use ``validate_certs`` option, as this version is capable of changing the SSL verification behaviours. +- ``vmware_guest`` module tries to mimic VMware Web UI and workflow, so the virtual machine must be in powered off state in order to remove it from the VMware inventory. + +.. warning:: + + The removal VMware virtual machine using ``vmware_guest`` module is destructive operation and can not be reverted, so it is strongly recommended to take the backup of virtual machine and related files (vmx and vmdk files) before proceeding. + +Example description +=================== + +In this use case / example, user will be removing a virtual machine using name. The following Ansible playbook showcases the basic parameters that are needed for this. + +.. code-block:: yaml + + --- + - name: Remove virtual machine + gather_facts: no + vars_files: + - vcenter_vars.yml + vars: + ansible_python_interpreter: "/usr/bin/env python3" + hosts: localhost + tasks: + - set_fact: + vm_name: "VM_0003" + datacenter: "DC1" + + - name: Remove "{{ vm_name }}" + vmware_guest: + hostname: "{{ vcenter_server }}" + username: "{{ vcenter_user }}" + password: "{{ vcenter_pass }}" + validate_certs: no + cluster: "DC1_C1" + name: "{{ vm_name }}" + state: absent + delegate_to: localhost + register: facts + + +Since Ansible utilizes the VMware API to perform actions, in this use case it will be connecting directly to the API from localhost. + +This means that playbooks will not be running from the vCenter or ESXi Server. + +Note that this play disables the ``gather_facts`` parameter, since you don't want to collect facts about localhost. + +You can run these modules against another server that would then connect to the API if localhost does not have access to vCenter. If so, the required Python modules will need to be installed on that target server. We recommend installing the latest version with pip: ``pip install Pyvmomi`` (as the OS packages are usually out of date and incompatible). + +Before you begin, make sure you have: + +- Hostname of the ESXi server or vCenter server +- Username and password for the ESXi or vCenter server +- Name of the existing Virtual Machine you want to remove + +For now, you will be entering these directly, but in a more advanced playbook this can be abstracted out and stored in a more secure fashion using :ref:`ansible-vault` or using `Ansible Tower credentials <https://docs.ansible.com/ansible-tower/latest/html/userguide/credentials.html>`_. + +If your vCenter or ESXi server is not setup with proper CA certificates that can be verified from the Ansible server, then it is necessary to disable validation of these certificates by using the ``validate_certs`` parameter. To do this you need to set ``validate_certs=False`` in your playbook. + +The name of existing virtual machine will be used as input for ``vmware_guest`` module via ``name`` parameter. + + +What to expect +-------------- + +- You will not see any JSON output after this playbook completes as compared to other operations performed using ``vmware_guest`` module. + +.. code-block:: yaml + + { + "changed": true + } + +- State is changed to ``True`` which notifies that the virtual machine is removed from the VMware inventory. This can take some time depending upon your environment and network connectivity. + + +Troubleshooting +--------------- + +If your playbook fails: + +- Check if the values provided for username and password are correct. +- Check if the datacenter you provided is available. +- Check if the virtual machine specified exists and you have permissions to access the datastore. +- Ensure the full folder path you specified already exists. It will not create folders automatically for you. diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/scenario_rename_vm.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/scenario_rename_vm.rst new file mode 100644 index 00000000..5d72d6ae --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/scenario_rename_vm.rst @@ -0,0 +1,174 @@ +.. _ansible_collections.community.vmware.docsite.vmware_guest_rename_virtual_machine: + +********************************** +Rename an existing virtual machine +********************************** + +.. contents:: + :local: + +Introduction +============ + +This guide will show you how to utilize Ansible to rename an existing virtual machine. + +Scenario requirements +===================== + +* Software + + * Ansible 2.5 or later must be installed. + + * The Python module ``Pyvmomi`` must be installed on the Ansible control node (or Target host if not executing against localhost). + + * We recommend installing the latest version with pip: ``pip install Pyvmomi`` (as the OS packages are usually out of date and incompatible). + +* Hardware + + * At least one standalone ESXi server or + + * vCenter Server with at least one ESXi server + +* Access / Credentials + + * Ansible (or the target server) must have network access to the either vCenter server or the ESXi server + + * Username and Password for vCenter or ESXi server + + * Hosts in the ESXi cluster must have access to the datastore that the template resides on. + +Caveats +======= + +- All variable names and VMware object names are case sensitive. +- You need to use Python 2.7.9 version in order to use ``validate_certs`` option, as this version is capable of changing the SSL verification behaviours. + + +Example description +=================== + +With the following Ansible playbook you can rename an existing virtual machine by changing the UUID. + +.. code-block:: yaml + + --- + - name: Rename virtual machine from old name to new name using UUID + gather_facts: no + vars_files: + - vcenter_vars.yml + vars: + ansible_python_interpreter: "/usr/bin/env python3" + hosts: localhost + tasks: + - set_fact: + vm_name: "old_vm_name" + new_vm_name: "new_vm_name" + datacenter: "DC1" + cluster_name: "DC1_C1" + + - name: Get VM "{{ vm_name }}" uuid + vmware_guest_facts: + hostname: "{{ vcenter_server }}" + username: "{{ vcenter_user }}" + password: "{{ vcenter_pass }}" + validate_certs: False + datacenter: "{{ datacenter }}" + folder: "/{{datacenter}}/vm" + name: "{{ vm_name }}" + register: vm_facts + + - name: Rename "{{ vm_name }}" to "{{ new_vm_name }}" + vmware_guest: + hostname: "{{ vcenter_server }}" + username: "{{ vcenter_user }}" + password: "{{ vcenter_pass }}" + validate_certs: False + cluster: "{{ cluster_name }}" + uuid: "{{ vm_facts.instance.hw_product_uuid }}" + name: "{{ new_vm_name }}" + +Since Ansible utilizes the VMware API to perform actions, in this use case it will be connecting directly to the API from localhost. + +This means that playbooks will not be running from the vCenter or ESXi Server. + +Note that this play disables the ``gather_facts`` parameter, since you don't want to collect facts about localhost. + +You can run these modules against another server that would then connect to the API if localhost does not have access to vCenter. If so, the required Python modules will need to be installed on that target server. We recommend installing the latest version with pip: ``pip install Pyvmomi`` (as the OS packages are usually out of date and incompatible). + +Before you begin, make sure you have: + +- Hostname of the ESXi server or vCenter server +- Username and password for the ESXi or vCenter server +- The UUID of the existing Virtual Machine you want to rename + +For now, you will be entering these directly, but in a more advanced playbook this can be abstracted out and stored in a more secure fashion using :ref:`ansible-vault` or using `Ansible Tower credentials <https://docs.ansible.com/ansible-tower/latest/html/userguide/credentials.html>`_. + +If your vCenter or ESXi server is not setup with proper CA certificates that can be verified from the Ansible server, then it is necessary to disable validation of these certificates by using the ``validate_certs`` parameter. To do this you need to set ``validate_certs=False`` in your playbook. + +Now you need to supply the information about the existing virtual machine which will be renamed. For renaming virtual machine, ``vmware_guest`` module uses VMware UUID, which is unique across vCenter environment. This value is autogenerated and can not be changed. You will use ``vmware_guest_facts`` module to find virtual machine and get information about VMware UUID of the virtual machine. + +This value will be used input for ``vmware_guest`` module. Specify new name to virtual machine which conforms to all VMware requirements for naming conventions as ``name`` parameter. Also, provide ``uuid`` as the value of VMware UUID. + +What to expect +-------------- + +Running this playbook can take some time, depending on your environment and network connectivity. When the run is complete you will see + +.. code-block:: yaml + + { + "changed": true, + "instance": { + "annotation": "", + "current_snapshot": null, + "customvalues": {}, + "guest_consolidation_needed": false, + "guest_question": null, + "guest_tools_status": "guestToolsNotRunning", + "guest_tools_version": "10247", + "hw_cores_per_socket": 1, + "hw_datastores": ["ds_204_2"], + "hw_esxi_host": "10.x.x.x", + "hw_eth0": { + "addresstype": "assigned", + "ipaddresses": [], + "label": "Network adapter 1", + "macaddress": "00:50:56:8c:b8:42", + "macaddress_dash": "00-50-56-8c-b8-42", + "portgroup_key": "dvportgroup-31", + "portgroup_portkey": "15", + "summary": "DVSwitch: 50 0c 3a 69 df 78 2c 7b-6e 08 0a 89 e3 a6 31 17" + }, + "hw_files": ["[ds_204_2] old_vm_name/old_vm_name.vmx", "[ds_204_2] old_vm_name/old_vm_name.nvram", "[ds_204_2] old_vm_name/old_vm_name.vmsd", "[ds_204_2] old_vm_name/vmware.log", "[ds_204_2] old_vm_name/old_vm_name.vmdk"], + "hw_folder": "/DC1/vm", + "hw_guest_full_name": null, + "hw_guest_ha_state": null, + "hw_guest_id": null, + "hw_interfaces": ["eth0"], + "hw_is_template": false, + "hw_memtotal_mb": 1024, + "hw_name": "new_vm_name", + "hw_power_status": "poweredOff", + "hw_processor_count": 1, + "hw_product_uuid": "420cbebb-835b-980b-7050-8aea9b7b0a6d", + "hw_version": "vmx-13", + "instance_uuid": "500c60a6-b7b4-8ae5-970f-054905246a6f", + "ipv4": null, + "ipv6": null, + "module_hw": true, + "snapshots": [] + } + } + +confirming that you've renamed the virtual machine. + + +Troubleshooting +--------------- + +If your playbook fails: + +- Check if the values provided for username and password are correct. +- Check if the datacenter you provided is available. +- Check if the virtual machine specified exists and you have permissions to access the datastore. +- Ensure the full folder path you specified already exists. diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/scenario_vmware_http.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/scenario_vmware_http.rst new file mode 100644 index 00000000..a831114d --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/scenario_vmware_http.rst @@ -0,0 +1,162 @@ +.. _ansible_collections.community.vmware.docsite.vmware_http_api_usage: + +*********************************** +Using VMware HTTP API using Ansible +*********************************** + +.. contents:: + :local: + +Introduction +============ + +This guide will show you how to utilize Ansible to use VMware HTTP APIs to automate various tasks. + +Scenario requirements +===================== + +* Software + + * Ansible 2.5 or later must be installed. + + * We recommend installing the latest version with pip: ``pip install Pyvmomi`` on the Ansible control node + (as the OS packages are usually out of date and incompatible) if you are planning to use any existing VMware modules. + +* Hardware + + * vCenter Server 6.5 and above with at least one ESXi server + +* Access / Credentials + + * Ansible (or the target server) must have network access to either the vCenter server or the ESXi server + + * Username and Password for vCenter + +Caveats +======= + +- All variable names and VMware object names are case sensitive. +- You need to use Python 2.7.9 version in order to use ``validate_certs`` option, as this version is capable of changing the SSL verification behaviours. +- VMware HTTP APIs are introduced in vSphere 6.5 and above so minimum level required in 6.5. +- There are very limited number of APIs exposed, so you may need to rely on XMLRPC based VMware modules. + + +Example description +=================== + +With the following Ansible playbook you can find the VMware ESXi host system(s) and can perform various tasks depending on the list of host systems. +This is a generic example to show how Ansible can be utilized to consume VMware HTTP APIs. + +.. code-block:: yaml + + --- + - name: Example showing VMware HTTP API utilization + hosts: localhost + gather_facts: no + vars_files: + - vcenter_vars.yml + vars: + ansible_python_interpreter: "/usr/bin/env python3" + tasks: + - name: Login into vCenter and get cookies + uri: + url: https://{{ vcenter_server }}/rest/com/vmware/cis/session + force_basic_auth: yes + validate_certs: no + method: POST + user: "{{ vcenter_user }}" + password: "{{ vcenter_pass }}" + register: login + + - name: Get all hosts from vCenter using cookies from last task + uri: + url: https://{{ vcenter_server }}/rest/vcenter/host + force_basic_auth: yes + validate_certs: no + headers: + Cookie: "{{ login.set_cookie }}" + register: vchosts + + - name: Change Log level configuration of the given hostsystem + vmware_host_config_manager: + hostname: "{{ vcenter_server }}" + username: "{{ vcenter_user }}" + password: "{{ vcenter_pass }}" + esxi_hostname: "{{ item.name }}" + options: + 'Config.HostAgent.log.level': 'error' + validate_certs: no + loop: "{{ vchosts.json.value }}" + register: host_config_results + + +Since Ansible utilizes the VMware HTTP API using the ``uri`` module to perform actions, in this use case it will be connecting directly to the VMware HTTP API from localhost. + +This means that playbooks will not be running from the vCenter or ESXi Server. + +Note that this play disables the ``gather_facts`` parameter, since you don't want to collect facts about localhost. + +Before you begin, make sure you have: + +- Hostname of the vCenter server +- Username and password for the vCenter server +- Version of vCenter is at least 6.5 + +For now, you will be entering these directly, but in a more advanced playbook this can be abstracted out and stored in a more secure fashion using :ref:`ansible-vault` or using `Ansible Tower credentials <https://docs.ansible.com/ansible-tower/latest/html/userguide/credentials.html>`_. + +If your vCenter server is not setup with proper CA certificates that can be verified from the Ansible server, then it is necessary to disable validation of these certificates by using the ``validate_certs`` parameter. To do this you need to set ``validate_certs=False`` in your playbook. + +As you can see, we are using the ``uri`` module in first task to login into the vCenter server and storing result in the ``login`` variable using register. In the second task, using cookies from the first task we are gathering information about the ESXi host system. + +Using this information, we are changing the ESXi host system's advance configuration. + +What to expect +-------------- + +Running this playbook can take some time, depending on your environment and network connectivity. When the run is complete you will see + +.. code-block:: yaml + + "results": [ + { + ... + "invocation": { + "module_args": { + "cluster_name": null, + "esxi_hostname": "10.76.33.226", + "hostname": "10.65.223.114", + "options": { + "Config.HostAgent.log.level": "error" + }, + "password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", + "port": 443, + "username": "administrator@vsphere.local", + "validate_certs": false + } + }, + "item": { + "connection_state": "CONNECTED", + "host": "host-21", + "name": "10.76.33.226", + "power_state": "POWERED_ON" + }, + "msg": "Config.HostAgent.log.level changed." + ... + } + ] + + +Troubleshooting +--------------- + +If your playbook fails: + +- Check if the values provided for username and password are correct. +- Check if you are using vCenter 6.5 and onwards to use this HTTP APIs. + +.. seealso:: + + `VMware vSphere and Ansible From Zero to Useful by @arielsanchezmor <https://www.youtube.com/watch?v=0_qwOKlBlo8>`_ + vBrownBag session video related to VMware HTTP APIs + `Sample Playbooks for using VMware HTTP APIs <https://github.com/Akasurde/ansible-vmware-http>`_ + GitHub repo for examples of Ansible playbook to manage VMware using HTTP APIs diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/scenario_vmware_tools_connection.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/scenario_vmware_tools_connection.rst new file mode 100644 index 00000000..08a4df11 --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/scenario_vmware_tools_connection.rst @@ -0,0 +1,120 @@ +.. _ansible_collections.community.vmware.docsite.vmware_tools_connection: + +************************************ +Using vmware_tools connection plugin +************************************ + +.. contents:: + :local: + +Introduction +============ + +This guide will show you how to utilize VMware Connection plugin to communicate and automate various tasks on VMware guest machines. + +Scenario requirements +===================== + +* Software + + * Ansible 2.9 or later must be installed. + + * We recommend installing the latest version with pip: ``pip install Pyvmomi`` on the Ansible control node + (as the OS packages are usually out of date and incompatible) if you are planning to use any existing VMware modules. + +* Hardware + + * vCenter Server 6.5 and above + +* Access / Credentials + + * Ansible (or the target server) must have network access to either the vCenter server + + * Username and Password for vCenter with required permissions + + * VMware tools or openvm-tools with required dependencies like Perl installed on the given virtual machine + +Caveats +======= + +- All variable names and VMware object names are case sensitive. +- You need to use Python 2.7.9 version in order to use ``validate_certs`` option, as this version is capable of changing the SSL verification behaviors. + + +Example description +=================== + +User can run playbooks against VMware virtual machines using ``vmware_tools`` connection plugin. + +In order work with ``vmware_tools`` connection plugin, you will need to specify hostvars for the given virtual machine. + +For example, if you want to run a playbook on a virtual machine called ``centos_7`` located at ``/Asia-Datacenter1/prod/centos_7`` in the given vCenter, you will need to specify hostvars as follows: + +.. code-block:: ini + + [centos7] + host1 + + [centos7:vars] + # vmware_tools related variables + ansible_connection=vmware_tools + ansible_vmware_host=10.65.201.128 + ansible_vmware_user=administrator@vsphere.local + ansible_vmware_password=Esxi@123$% + ansible_vmware_validate_certs=no + + # Location of the virtual machine + ansible_vmware_guest_path=Asia-Datacenter1/vm/prod/centos_7 + + # Credentials + ansible_vmware_tools_user=root + ansible_vmware_tools_password=Secret123 + +Here, we are providing vCenter details and credentials for the given virtual machine to run the playbook on. +If your virtual machine path is ``Asia-Datacenter1/prod/centos_7``, you specify ``ansible_vmware_guest_path`` as ``Asia-Datacenter1/vm/prod/centos_7``. Please take a note that ``/vm`` is added in the virtual machine path, since this is a logical folder structure in the VMware inventory. + +Let us now run following playbook, + +.. code-block:: yaml + + --- + - name: Example showing VMware Connection plugin + hosts: centos7 + tasks: + - name: Gather information about temporary directory inside VM + shell: ls /tmp + + +Since Ansible utilizes the ``vmware-tools`` or ``openvm-tools`` service capabilities running in the virtual machine to perform actions, in this use case it will be connecting directly to the guest machine. + + +For now, you will be entering credentials in plain text, but in a more advanced playbook this can be abstracted out and stored in a more secure fashion using :ref:`ansible-vault` or using `Ansible Tower credentials <https://docs.ansible.com/ansible-tower/latest/html/userguide/credentials.html>`_. + + +What to expect +-------------- + +Running this playbook can take some time, depending on your environment and network connectivity. When the run is complete you will see: + +.. code-block:: yaml + + { + "changed": true, + "cmd": "ls /tmp", + "delta": "0:00:00.005440", + "end": "2020-10-01 07:30:56.940813", + "rc": 0, + "start": "2020-10-01 07:30:56.935373", + "stderr": "", + "stderr_lines": [], + "stdout": "ansible_command_payload_JzWiL9\niso", + "stdout_lines": ["ansible_command_payload_JzWiL9", "iso", "vmware-root"] + } + +Troubleshooting +--------------- + +If your playbook fails: + +- Check if the values provided for username and password are correct. +- Check if the path of virtual machine is correct. Please mind that ``/vm/`` needs to be provided while specifying virtual machine location. diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_concepts.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_concepts.rst new file mode 100644 index 00000000..2829624a --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_concepts.rst @@ -0,0 +1,45 @@ +.. _ansible_collections.community.vmware.docsite.vmware_concepts: + +*************************** +Ansible for VMware Concepts +*************************** + +Some of these concepts are common to all uses of Ansible, including VMware automation; some are specific to VMware. You need to understand them to use Ansible for VMware automation. This introduction provides the background you need to follow the :ref:`scenarios<vmware_scenarios>` in this guide. + +.. contents:: + :local: + +Control Node +============ + +Any machine with Ansible installed. You can run commands and playbooks, invoking ``/usr/bin/ansible`` or ``/usr/bin/ansible-playbook``, from any control node. You can use any computer that has Python installed on it as a control node - laptops, shared desktops, and servers can all run Ansible. However, you cannot use a Windows machine as a control node. You can have multiple control nodes. + +Delegation +========== + +Delegation allows you to select the system that executes a given task. If you do not have ``pyVmomi`` installed on your control node, use the ``delegate_to`` keyword on VMware-specific tasks to execute them on any host where you have ``pyVmomi`` installed. + +Modules +======= + +The units of code Ansible executes. Each module has a particular use, from creating virtual machines on vCenter to managing distributed virtual switches in the vCenter environment. You can invoke a single module with a task, or invoke several different modules in a playbook. + +Playbooks +========= + +Ordered lists of tasks, saved so you can run those tasks in that order repeatedly. Playbooks can include variables as well as tasks. Playbooks are written in YAML and are easy to read, write, share and understand. + +pyVmomi +======= + +Ansible VMware modules are written on top of `pyVmomi <https://github.com/vmware/pyvmomi>`_. ``pyVmomi`` is the official Python SDK for the VMware vSphere API that allows user to manage ESX, ESXi, and vCenter infrastructure. + +You need to install this Python SDK on host from where you want to invoke VMware automation. For example, if you are using control node then ``pyVmomi`` must be installed on control node. + +If you are using any ``delegate_to`` host which is different from your control node then you need to install ``pyVmomi`` on that ``delegate_to`` node. + +You can install pyVmomi using pip: + +.. code-block:: bash + + $ pip install pyvmomi diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_external_doc_links.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_external_doc_links.rst new file mode 100644 index 00000000..afd2275e --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_external_doc_links.rst @@ -0,0 +1,10 @@ +.. _ansible_collections.community.vmware.docsite.vmware_external_doc_links: + +***************************** +Other useful VMware resources +***************************** + +* `VMware API and SDK Documentation <https://www.vmware.com/support/pubs/sdk_pubs.html>`_ +* `Ansible VMware community wiki page <https://github.com/ansible/community/wiki/VMware>`_ +* `VMware's official Guest Operating system customization matrix <https://partnerweb.vmware.com/programs/guestOS/guest-os-customization-matrix.pdf>`_ +* `VMware Compatibility Guide <https://www.vmware.com/resources/compatibility/search.php>`_ diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_getting_started.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_getting_started.rst new file mode 100644 index 00000000..1b2d34a8 --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_getting_started.rst @@ -0,0 +1,9 @@ +:orphan: + +.. _ansible_collections.community.vmware.docsite.vmware_ansible_getting_started: + +*************************************** +Getting Started with Ansible for VMware +*************************************** + +This will have a basic "hello world" scenario/walkthrough that gets the user introduced to the basics. diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_intro.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_intro.rst new file mode 100644 index 00000000..ddc1433c --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_intro.rst @@ -0,0 +1,54 @@ +.. _ansible_collections.community.vmware.docsite.vmware_ansible_intro: + +********************************** +Introduction to Ansible for VMware +********************************** + +.. contents:: + :local: + +Introduction +============ + +Ansible provides various modules to manage VMware infrastructure, which includes datacenter, cluster, +host system and virtual machine. + +Requirements +============ + +Ansible VMware modules are written on top of `pyVmomi <https://github.com/vmware/pyvmomi>`_. +pyVmomi is the Python SDK for the VMware vSphere API that allows user to manage ESX, ESXi, +and vCenter infrastructure. You can install pyVmomi using pip (you may need to use pip3, depending on your OS/distro): + +.. code-block:: bash + + $ pip install pyvmomi + +Ansible VMware modules leveraging latest vSphere(6.0+) features are using `vSphere Automation Python SDK <https://github.com/vmware/vsphere-automation-sdk-python>`_. The vSphere Automation Python SDK also has client libraries, documentation, and sample code for VMware Cloud on AWS Console APIs, NSX VMware Cloud on AWS integration APIs, VMware Cloud on AWS site recovery APIs, NSX-T APIs. + +You can install vSphere Automation Python SDK using pip: + +.. code-block:: bash + + $ pip install --upgrade git+https://github.com/vmware/vsphere-automation-sdk-python.git + +Note: + Installing vSphere Automation Python SDK also installs ``pyvmomi``. A separate installation of ``pyvmomi`` is not required. + +vmware_guest module +=================== + +The :ref:`vmware_guest<ansible_collections.community.vmware.vmware_guest_module>` module manages various operations related to virtual machines in the given ESXi or vCenter server. + + +.. seealso:: + + `pyVmomi <https://github.com/vmware/pyvmomi>`_ + The GitHub Page of pyVmomi + `pyVmomi Issue Tracker <https://github.com/vmware/pyvmomi/issues>`_ + The issue tracker for the pyVmomi project + `govc <https://github.com/vmware/govmomi/tree/master/govc>`_ + govc is a vSphere CLI built on top of govmomi + :ref:`working_with_playbooks` + An introduction to playbooks + diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_inventory.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_inventory.rst new file mode 100644 index 00000000..becd718a --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_inventory.rst @@ -0,0 +1,91 @@ +.. _ansible_collections.community.vmware.docsite.vmware_ansible_inventory: + +************************************* +Using VMware dynamic inventory plugin +************************************* + +.. contents:: + :local: + +VMware Dynamic Inventory Plugin +=============================== + + +The best way to interact with your hosts is to use the VMware dynamic inventory plugin, which dynamically queries VMware APIs and +tells Ansible what nodes can be managed. + +Requirements +------------ + +To use the VMware dynamic inventory plugins, you must install `pyVmomi <https://github.com/vmware/pyvmomi>`_ +on your control node (the host running Ansible). + +To include tag-related information for the virtual machines in your dynamic inventory, you also need the `vSphere Automation SDK <https://code.vmware.com/web/sdk/65/vsphere-automation-python>`_, which supports REST API features like tagging and content libraries, on your control node. +You can install the ``vSphere Automation SDK`` following `these instructions <https://github.com/vmware/vsphere-automation-sdk-python#installing-required-python-packages>`_. + +.. code-block:: bash + + $ pip install pyvmomi + +To use this VMware dynamic inventory plugin, you need to enable it first by specifying the following in the ``ansible.cfg`` file: + +.. code-block:: ini + + [inventory] + enable_plugins = vmware_vm_inventory + +Then, create a file that ends in ``.vmware.yml`` or ``.vmware.yaml`` in your working directory. + +The ``vmware_vm_inventory`` script takes in the same authentication information as any VMware module. + +Here's an example of a valid inventory file: + +.. code-block:: yaml + + plugin: vmware_vm_inventory + strict: False + hostname: 10.65.223.31 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + with_tags: True + + +Executing ``ansible-inventory --list -i <filename>.vmware.yml`` will create a list of VMware instances that are ready to be configured using Ansible. + +Using vaulted configuration files +================================= + +Since the inventory configuration file contains vCenter password in plain text, a security risk, you may want to +encrypt your entire inventory configuration file. + +You can encrypt a valid inventory configuration file as follows: + +.. code-block:: bash + + $ ansible-vault encrypt <filename>.vmware.yml + New Vault password: + Confirm New Vault password: + Encryption successful + +And you can use this vaulted inventory configuration file using: + +.. code-block:: bash + + $ ansible-inventory -i filename.vmware.yml --list --vault-password-file=/path/to/vault_password_file + + +.. seealso:: + + `pyVmomi <https://github.com/vmware/pyvmomi>`_ + The GitHub Page of pyVmomi + `pyVmomi Issue Tracker <https://github.com/vmware/pyvmomi/issues>`_ + The issue tracker for the pyVmomi project + `vSphere Automation SDK GitHub Page <https://github.com/vmware/vsphere-automation-sdk-python>`_ + The GitHub Page of vSphere Automation SDK for Python + `vSphere Automation SDK Issue Tracker <https://github.com/vmware/vsphere-automation-sdk-python/issues>`_ + The issue tracker for vSphere Automation SDK for Python + :ref:`working_with_playbooks` + An introduction to playbooks + :ref:`playbooks_vault` + Using Vault in playbooks diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_inventory_filters.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_inventory_filters.rst new file mode 100644 index 00000000..eb309cf0 --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_inventory_filters.rst @@ -0,0 +1,216 @@ +.. _ansible_collections.community.vmware.docsite.vmware_ansible_inventory_using_filters: + +*********************************************** +Using VMware dynamic inventory plugin - Filters +*********************************************** + +.. contents:: + :local: + +VMware dynamic inventory plugin - filtering VMware guests +========================================================= + + +VMware inventory plugin allows you to filter VMware guests using the ``filters`` configuration parameter. + +This section shows how you configure ``filters`` for the given VMware guest in the inventory. + +Requirements +------------ + +To use the VMware dynamic inventory plugins, you must install `pyVmomi <https://github.com/vmware/pyvmomi>`_ +on your control node (the host running Ansible). + +To include tag-related information for the virtual machines in your dynamic inventory, you also need the `vSphere Automation SDK <https://code.vmware.com/web/sdk/65/vsphere-automation-python>`_, which supports REST API features such as tagging and content libraries, on your control node. +You can install the ``vSphere Automation SDK`` following `these instructions <https://github.com/vmware/vsphere-automation-sdk-python#installing-required-python-packages>`_. + +.. code-block:: bash + + $ pip install pyvmomi + +Starting in Ansible 2.10, the VMware dynamic inventory plugin is available in the ``community.vmware`` collection included Ansible. +Alternately, to install the latest ``community.vmware`` collection: + +.. code-block:: bash + + $ ansible-galaxy collection install community.vmware + +To use this VMware dynamic inventory plugin: + +1. Enable it first by specifying the following in the ``ansible.cfg`` file: + +.. code-block:: ini + + [inventory] + enable_plugins = community.vmware.vmware_vm_inventory + +2. Create a file that ends in ``vmware.yml`` or ``vmware.yaml`` in your working directory. + +The ``vmware_vm_inventory`` inventory plugin takes in the same authentication information as any other VMware modules does. + +Let us assume we want to list all RHEL7 VMs with the power state as "poweredOn". A valid inventory file with filters for the given VMware guest looks as follows: + +.. code-block:: yaml + + plugin: community.vmware.vmware_vm_inventory + strict: False + hostname: 10.65.223.31 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + with_tags: False + hostnames: + - config.name + filters: + - config.guestId == "rhel7_64Guest" + - summary.runtime.powerState == "poweredOn" + + +Here, we have configured two filters - + +* ``config.guestId`` is equal to ``rhel7_64Guest`` +* ``summary.runtime.powerState`` is equal to ``poweredOn`` + +This retrieves all the VMs which satisfy these two conditions and populates them in the inventory. +Notice that the conditions are combined using an ``and`` operation. + +Using ``or`` conditions in filters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Let us assume you want filter RHEL7 and Ubuntu VMs. You can use multiple filters using ``or`` condition in your inventory file. + +A valid filter in the VMware inventory file for this example is: + +.. code-block:: yaml + + plugin: community.vmware.vmware_vm_inventory + strict: False + hostname: 10.65.223.31 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + with_tags: False + hostnames: + - config.name + filters: + - config.guestId == "rhel7_64Guest" or config.guestId == "ubuntu64Guest" + + +You can check all allowed properties for filters for the given virtual machine at :ref:`ansible_collections.community.vmware.docsite.vmware_inventory_vm_attributes`. + +If you are using the ``properties`` parameter with custom VM properties, make sure that you include all the properties used by filters as well in your VM property list. + +For example, if we want all RHEL7 and Ubuntu VMs that are poweredOn, you can use inventory file: + +.. code-block:: yaml + + plugin: community.vmware.vmware_vm_inventory + strict: False + hostname: 10.65.223.31 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + with_tags: False + hostnames: + - 'config.name' + properties: + - 'config.name' + - 'config.guestId' + - 'guest.ipAddress' + - 'summary.runtime.powerState' + filters: + - config.guestId == "rhel7_64Guest" or config.guestId == "ubuntu64Guest" + - summary.runtime.powerState == "poweredOn" + +Here, we are using minimum VM properties, that is ``config.name``, ``config.guestId``, ``summary.runtime.powerState``, and ``guest.ipAddress``. + +* ``config.name`` is used by the ``hostnames`` parameter. +* ``config.guestId`` and ``summary.runtime.powerState`` are used by the ``filters`` parameter. +* ``guest.guestId`` is used by ``ansible_host`` internally by the inventory plugin. + +Using regular expression in filters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Let us assume you want filter VMs with specific IP range. You can use regular expression in ``filters`` in your inventory file. + +For example, if we want all RHEL7 and Ubuntu VMs that are poweredOn, you can use inventory file: + +.. code-block:: yaml + + plugin: community.vmware.vmware_vm_inventory + strict: False + hostname: 10.65.223.31 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + with_tags: False + hostnames: + - 'config.name' + properties: + - 'config.name' + - 'config.guestId' + - 'guest.ipAddress' + - 'summary.runtime.powerState' + filters: + - guest.ipAddress is defined and guest.ipAddress is match('192.168.*') + +Here, we are using ``guest.ipAddress`` VM property. This property is optional and depended upon VMware tools installed on VMs. +We are using ``match`` to validate the regular expression for the given IP range. + +Executing ``ansible-inventory --list -i <filename>.vmware.yml`` creates a list of the virtual machines that are ready to be configured using Ansible. + +What to expect +-------------- + +You will notice that the inventory hosts are filtered depending on your ``filters`` section. + + +.. code-block:: yaml + + { + "_meta": { + "hostvars": { + "template_001": { + "config.name": "template_001", + "config.guestId": "ubuntu64Guest", + ... + "guest.toolsStatus": "toolsNotInstalled", + "summary.runtime.powerState": "poweredOn", + }, + "vm_8046": { + "config.name": "vm_8046", + "config.guestId": "rhel7_64Guest", + ... + "guest.toolsStatus": "toolsNotInstalled", + "summary.runtime.powerState": "poweredOn", + }, + ... + } + +Troubleshooting filters +----------------------- + +If the custom property specified in ``filters`` fails: + +- Check if the values provided for username and password are correct. +- Make sure it is a valid property, see :ref:`ansible_collections.community.vmware.docsite.vmware_inventory_vm_attributes`. +- Use ``strict: True`` to get more information about the error. +- Please make sure that you are using latest version of the VMware collection. + + +.. seealso:: + + `pyVmomi <https://github.com/vmware/pyvmomi>`_ + The GitHub Page of pyVmomi + `pyVmomi Issue Tracker <https://github.com/vmware/pyvmomi/issues>`_ + The issue tracker for the pyVmomi project + `vSphere Automation SDK GitHub Page <https://github.com/vmware/vsphere-automation-sdk-python>`_ + The GitHub Page of vSphere Automation SDK for Python + `vSphere Automation SDK Issue Tracker <https://github.com/vmware/vsphere-automation-sdk-python/issues>`_ + The issue tracker for vSphere Automation SDK for Python + :ref:`ansible_collections.community.vmware.docsite.vmware_inventory_vm_attributes` + Using Virtual machine attributes in VMware dynamic inventory plugin + :ref:`working_with_playbooks` + An introduction to playbooks + :ref:`playbooks_vault` + Using Vault in playbooks diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_inventory_hostnames.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_inventory_hostnames.rst new file mode 100644 index 00000000..d8963950 --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_inventory_hostnames.rst @@ -0,0 +1,128 @@ +.. _ansible_collections.community.vmware.docsite.vmware_ansible_inventory_using_hostnames: + +************************************************* +Using VMware dynamic inventory plugin - Hostnames +************************************************* + +.. contents:: + :local: + +VMware dynamic inventory plugin - customizing hostnames +======================================================= + + +VMware inventory plugin allows you to configure hostnames using the ``hostnames`` configuration parameter. + +In this scenario guide we will see how you configure hostnames from the given VMware guest in the inventory. + +Requirements +------------ + +To use the VMware dynamic inventory plugins, you must install `pyVmomi <https://github.com/vmware/pyvmomi>`_ +on your control node (the host running Ansible). + +To include tag-related information for the virtual machines in your dynamic inventory, you also need the `vSphere Automation SDK <https://code.vmware.com/web/sdk/65/vsphere-automation-python>`_, which supports REST API features such as tagging and content libraries, on your control node. +You can install the ``vSphere Automation SDK`` following `these instructions <https://github.com/vmware/vsphere-automation-sdk-python#installing-required-python-packages>`_. + +.. code-block:: bash + + $ pip install pyvmomi + +Starting in Ansible 2.10, the VMware dynamic inventory plugin is available in the ``community.vmware`` collection included Ansible. +To install the latest ``community.vmware`` collection: + +.. code-block:: bash + + $ ansible-galaxy collection install community.vmware + +To use this VMware dynamic inventory plugin: + +1. Enable it first by specifying the following in the ``ansible.cfg`` file: + +.. code-block:: ini + + [inventory] + enable_plugins = community.vmware.vmware_vm_inventory + +2. Create a file that ends in ``vmware.yml`` or ``vmware.yaml`` in your working directory. + +The ``vmware_vm_inventory`` inventory plugin takes in the same authentication information as any other VMware modules does. + +Here's an example of a valid inventory file with custom hostname for the given VMware guest: + +.. code-block:: yaml + + plugin: community.vmware.vmware_vm_inventory + strict: False + hostname: 10.65.223.31 + username: administrator@vsphere.local + password: Esxi@123$% + validate_certs: False + with_tags: False + hostnames: + - config.name + + +Here, we have configured a custom hostname by setting the ``hostnames`` parameter to ``config.name``. This will retrieve +the ``config.name`` property from the virtual machine and populate it in the inventory. + +You can check all allowed properties for the given virtual machine at :ref:`ansible_collections.community.vmware.docsite.vmware_inventory_vm_attributes`. + +Executing ``ansible-inventory --list -i <filename>.vmware.yml`` creates a list of the virtual machines that are ready to be configured using Ansible. + +What to expect +-------------- + +You will notice that instead of default behavior of representing the hostname as ``config.name + _ + config.uuid``, +the inventory hosts show value as ``config.name``. + + +.. code-block:: yaml + + { + "_meta": { + "hostvars": { + "template_001": { + "config.name": "template_001", + "guest.toolsRunningStatus": "guestToolsNotRunning", + ... + "guest.toolsStatus": "toolsNotInstalled", + "name": "template_001" + }, + "vm_8046": { + "config.name": "vm_8046", + "guest.toolsRunningStatus": "guestToolsNotRunning", + ... + "guest.toolsStatus": "toolsNotInstalled", + "name": "vm_8046" + }, + ... + } + +Troubleshooting +--------------- + +If the custom property specified in ``hostnames`` fails: + +- Check if the values provided for username and password are correct. +- Make sure it is a valid property, see :ref:`ansible_collections.community.vmware.docsite.vmware_inventory_vm_attributes`. +- Use ``strict: True`` to get more information about the error. +- Please make sure that you are using latest version VMware collection. + + +.. seealso:: + + `pyVmomi <https://github.com/vmware/pyvmomi>`_ + The GitHub Page of pyVmomi + `pyVmomi Issue Tracker <https://github.com/vmware/pyvmomi/issues>`_ + The issue tracker for the pyVmomi project + `vSphere Automation SDK GitHub Page <https://github.com/vmware/vsphere-automation-sdk-python>`_ + The GitHub Page of vSphere Automation SDK for Python + `vSphere Automation SDK Issue Tracker <https://github.com/vmware/vsphere-automation-sdk-python/issues>`_ + The issue tracker for vSphere Automation SDK for Python + :ref:`ansible_collections.community.vmware.docsite.vmware_inventory_vm_attributes` + Using Virtual machine attributes in VMware dynamic inventory plugin + :ref:`working_with_playbooks` + An introduction to playbooks + :ref:`playbooks_vault` + Using Vault in playbooks diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_inventory_vm_attributes.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_inventory_vm_attributes.rst new file mode 100644 index 00000000..eda856ee --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_inventory_vm_attributes.rst @@ -0,0 +1,1184 @@ +.. _ansible_collections.community.vmware.docsite.vmware_inventory_vm_attributes: + +******************************************************************* +Using Virtual machine attributes in VMware dynamic inventory plugin +******************************************************************* + +.. contents:: + :local: + +Virtual machine attributes +========================== + +You can use virtual machine properties which can be used to populate ``hostvars`` for the given +virtual machine in a VMware dynamic inventory plugin. + +capability +---------- + +This section describes settings for the runtime capabilities of the virtual machine. + +snapshotOperationsSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether or not a virtual machine supports snapshot operations. + +multipleSnapshotsSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether or not a virtual machine supports multiple snapshots. + This value is not set when the virtual machine is unavailable, for instance, when it is being created or deleted. + +snapshotConfigSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether or not a virtual machine supports snapshot config. + +poweredOffSnapshotsSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether or not a virtual machine supports snapshot operations in ``poweredOff`` state. + +memorySnapshotsSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether or not a virtual machine supports memory snapshots. + +revertToSnapshotSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether or not a virtual machine supports reverting to a snapshot. + +quiescedSnapshotsSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether or not a virtual machine supports quiesced snapshots. + +disableSnapshotsSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether or not snapshots can be disabled. + +lockSnapshotsSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether or not the snapshot tree can be locked. + +consolePreferencesSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether console preferences can be set for the virtual machine. + +cpuFeatureMaskSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether CPU feature requirements masks can be set for the virtual machine. + +s1AcpiManagementSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether or not a virtual machine supports ACPI S1 settings management. + +settingScreenResolutionSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether or not the virtual machine supports setting the screen resolution of the console window. + +toolsAutoUpdateSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Supports tools auto-update. + +vmNpivWwnSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^ + + Supports virtual machine NPIV WWN. + +npivWwnOnNonRdmVmSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Supports assigning NPIV WWN to virtual machines that do not have RDM disks. + +vmNpivWwnDisableSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether the NPIV disabling operation is supported on the virtual machine. + +vmNpivWwnUpdateSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether the update of NPIV WWNs are supported on the virtual machine. + +swapPlacementSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Flag indicating whether the virtual machine has a configurable (swapfile placement policy). + +toolsSyncTimeSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether asking tools to sync time with the host is supported. + +virtualMmuUsageSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether or not the use of nested page table hardware support can be explicitly set. + +diskSharesSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether resource settings for disks can be applied to the virtual machine. + +bootOptionsSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether boot options can be configured for the virtual machine. + +bootRetryOptionsSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether automatic boot retry can be configured for the virtual machine. + +settingVideoRamSizeSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Flag indicating whether the video RAM size of the virtual machine can be configured. + +settingDisplayTopologySupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether or not the virtual machine supports setting the display topology of the console window. + +recordReplaySupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether record and replay functionality is supported on the virtual machine. + +changeTrackingSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates that change tracking is supported for virtual disks of the virtual machine. + However, even if change tracking is supported, it might not be available for all disks of the virtual machine. + For example, passthru raw disk mappings or disks backed by any Ver1BackingInfo cannot be tracked. + +multipleCoresPerSocketSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether multiple virtual cores per socket is supported on the virtual machine. + +hostBasedReplicationSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates that host based replication is supported on the virtual machine. + However, even if host based replication is supported, it might not be available for all disk types. + For example, passthru raw disk mappings can not be replicated. + +guestAutoLockSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether or not guest autolock is supported on the virtual machine. + +memoryReservationLockSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether :ref:`ansible_collections.community.vmware.docsite.memory_reservation_locked_to_max` may be set to true for the virtual machine. + +featureRequirementSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether the featureRequirement feature is supported. + +poweredOnMonitorTypeChangeSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether a monitor type change is supported while the virtual machine is in the ``poweredOn`` state. + +seSparseDiskSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether the virtual machine supports the Flex-SE (space-efficent, sparse) format for virtual disks. + +nestedHVSupported (bool) +^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether the virtual machine supports nested hardware-assisted virtualization. + +vPMCSupported (bool) +^^^^^^^^^^^^^^^^^^^^ + + Indicates whether the virtual machine supports virtualized CPU performance counters. + + +config +------ + +This section describes the configuration settings of the virtual machine, including the name and UUID. +This property is set when a virtual machine is created or when the ``reconfigVM`` method is called. +The virtual machine configuration is not guaranteed to be available. +For example, the configuration information would be unavailable if the server is unable to access the virtual machine files on disk, and is often also unavailable during the initial phases of virtual machine creation. + +changeVersion (str) +^^^^^^^^^^^^^^^^^^^ + + The changeVersion is a unique identifier for a given version of the configuration. + Each change to the configuration updates this value. This is typically implemented as an ever increasing count or a time-stamp. + However, a client should always treat this as an opaque string. + +modified (datetime) +^^^^^^^^^^^^^^^^^^^ + + Last time a virtual machine's configuration was modified. + +name (str) +^^^^^^^^^^ + + Display name of the virtual machine. Any / (slash), \ (backslash), character used in this name element is escaped. Similarly, any % (percent) character used in this name element is escaped, unless it is used to start an escape sequence. A slash is escaped as %2F or %2f. A backslash is escaped as %5C or %5c, and a percent is escaped as %25. + +.. _ansible_collections.community.vmware.docsite.guest_full_name: + +guestFullName (str) +^^^^^^^^^^^^^^^^^^^ + + This is the full name of the guest operating system for the virtual machine. For example: Windows 2000 Professional. See :ref:`ansible_collections.community.vmware.docsite.alternate_guest_name`. + +version (str) +^^^^^^^^^^^^^ + + The version string for the virtual machine. + +uuid (str) +^^^^^^^^^^ + + 128-bit SMBIOS UUID of a virtual machine represented as a hexadecimal string in "12345678-abcd-1234-cdef-123456789abc" format. + +instanceUuid (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + VirtualCenter-specific 128-bit UUID of a virtual machine, represented as a hexademical string. This identifier is used by VirtualCenter to uniquely identify all virtual machine instances, including those that may share the same SMBIOS UUID. + +npivNodeWorldWideName (long, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + A 64-bit node WWN (World Wide Name). + +npivPortWorldWideName (long, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + A 64-bit port WWN (World Wide Name). + +npivWorldWideNameType (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The source that provides/generates the assigned WWNs. + +npivDesiredNodeWwns (short, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The NPIV node WWNs to be extended from the original list of WWN numbers. + +npivDesiredPortWwns (short, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The NPIV port WWNs to be extended from the original list of WWN numbers. + +npivTemporaryDisabled (bool, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + This property is used to enable or disable the NPIV capability on a desired virtual machine on a temporary basis. + +npivOnNonRdmDisks (bool, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + This property is used to check whether the NPIV can be enabled on the Virtual machine with non-rdm disks in the configuration, so this is potentially not enabling npiv on vmfs disks. + Also this property is used to check whether RDM is required to generate WWNs for a virtual machine. + +locationId (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Hash incorporating the virtual machine's config file location and the UUID of the host assigned to run the virtual machine. + +template (bool) +^^^^^^^^^^^^^^^ + + Flag indicating whether or not a virtual machine is a template. + +guestId (str) +^^^^^^^^^^^^^ + + Guest operating system configured on a virtual machine. + +.. _ansible_collections.community.vmware.docsite.alternate_guest_name: + +alternateGuestName (str) +^^^^^^^^^^^^^^^^^^^^^^^^ + + Used as display name for the operating system if guestId isotherorother-64. See :ref:`ansible_collections.community.vmware.docsite.guest_full_name`. + +annotation (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Description for the virtual machine. + +files (vim.vm.FileInfo) +^^^^^^^^^^^^^^^^^^^^^^^ + + Information about the files associated with a virtual machine. + This information does not include files for specific virtual disks or snapshots. + +tools (vim.vm.ToolsConfigInfo, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Configuration of VMware Tools running in the guest operating system. + +flags (vim.vm.FlagInfo) +^^^^^^^^^^^^^^^^^^^^^^^ + + Additional flags for a virtual machine. + +consolePreferences (vim.vm.ConsolePreferences, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Legacy console viewer preferences when doing power operations. + +defaultPowerOps (vim.vm.DefaultPowerOpInfo) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Configuration of default power operations. + +hardware (vim.vm.VirtualHardware) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Processor, memory, and virtual devices for a virtual machine. + +cpuAllocation (vim.ResourceAllocationInfo, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Resource limits for CPU. + +memoryAllocation (vim.ResourceAllocationInfo, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Resource limits for memory. + +latencySensitivity (vim.LatencySensitivity, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The latency-sensitivity of the virtual machine. + +memoryHotAddEnabled (bool, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Whether memory can be added while the virtual machine is running. + +cpuHotAddEnabled (bool, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Whether virtual processors can be added while the virtual machine is running. + +cpuHotRemoveEnabled (bool, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Whether virtual processors can be removed while the virtual machine is running. + +hotPlugMemoryLimit (long, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The maximum amount of memory, in MB, than can be added to a running virtual machine. + +hotPlugMemoryIncrementSize (long, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Memory, in MB that can be added to a running virtual machine. + +cpuAffinity (vim.vm.AffinityInfo, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Affinity settings for CPU. + +memoryAffinity (vim.vm.AffinityInfo, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Affinity settings for memory. + +networkShaper (vim.vm.NetworkShaperInfo, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Resource limits for network. + +extraConfig (vim.option.OptionValue, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Additional configuration information for the virtual machine. + +cpuFeatureMask (vim.host.CpuIdInfo, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Specifies CPU feature compatibility masks that override the defaults from the ``GuestOsDescriptor`` of the virtual machine's guest OS. + +datastoreUrl (vim.vm.ConfigInfo.DatastoreUrlPair, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Enumerates the set of datastores that the virtual machine is stored on, as well as the URL identification for each of these. + +swapPlacement (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Virtual machine swapfile placement policy. + +bootOptions (vim.vm.BootOptions, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Configuration options for the boot behavior of the virtual machine. + +ftInfo (vim.vm.FaultToleranceConfigInfo, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Fault tolerance settings for the virtual machine. + +vAppConfig (vim.vApp.VmConfigInfo, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + vApp meta-data for the virtual machine. + +vAssertsEnabled (bool, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether user-configured virtual asserts will be triggered during virtual machine replay. + +changeTrackingEnabled (bool, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether changed block tracking for the virtual machine's disks is active. + +firmware (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^ + + Information about firmware type for the virtual machine. + +maxMksConnections (int, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates the maximum number of active remote display connections that the virtual machine will support. + +guestAutoLockEnabled (bool, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether the guest operating system will logout any active sessions whenever there are no remote display connections open to the virtual machine. + +managedBy (vim.ext.ManagedByInfo, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Specifies that the virtual machine is managed by a VC Extension. + +.. _ansible_collections.community.vmware.docsite.memory_reservation_locked_to_max: + +memoryReservationLockedToMax (bool, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + If set true, memory resource reservation for the virtual machine will always be equal to the virtual machine's memory size; increases in memory size will be rejected when a corresponding reservation increase is not possible. + +initialOverhead (vim.vm.ConfigInfo.OverheadInfo), optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Set of values to be used only to perform admission control when determining if a host has sufficient resources for the virtual machine to power on. + +nestedHVEnabled (bool, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether the virtual machine is configured to use nested hardware-assisted virtualization. + +vPMCEnabled (bool, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether the virtual machine have virtual CPU performance counters enabled. + +scheduledHardwareUpgradeInfo (vim.vm.ScheduledHardwareUpgradeInfo, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Configuration of scheduled hardware upgrades and result from last attempt to run scheduled hardware upgrade. + +vFlashCacheReservation (long, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Specifies the total vFlash resource reservation for the vFlash caches associated with the virtual machine's virtual disks, in bytes. + +layout +------ + +Detailed information about the files that comprise the virtual machine. + +configFile (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^ + + A list of files that makes up the configuration of the virtual machine (excluding the .vmx file, since that file is represented in the FileInfo). + These are relative paths from the configuration directory. + A slash is always used as a separator. + This list will typically include the NVRAM file, but could also include other meta-data files. + +logFile (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^ + + A list of files stored in the virtual machine's log directory. + These are relative paths from the ``logDirectory``. + A slash is always used as a separator. + +disk (vim.vm.FileLayout.DiskLayout, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Files making up each virtual disk. + +snapshot (vim.vm.FileLayout.SnapshotLayout, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Files of each snapshot. + +swapFile (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^ + + The swapfile specific to the virtual machine, if any. This is a complete datastore path, not a relative path. + + +layoutEx +-------- + +Detailed information about the files that comprise the virtual machine. + +file (vim.vm.FileLayoutEx.FileInfo, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Information about all the files that constitute the virtual machine including configuration files, disks, swap file, suspend file, log files, core files, memory file and so on. + +disk (vim.vm.FileLayoutEx.DiskLayout, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Layout of each virtual disk attached to the virtual machine. + For a virtual machine with snaphots, this property gives only those disks that are attached to it at the current point of running. + +snapshot (vim.vm.FileLayoutEx.SnapshotLayout, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Layout of each snapshot of the virtual machine. + +timestamp (datetime) +^^^^^^^^^^^^^^^^^^^^ + + Time when values in this structure were last updated. + +storage (vim.vm.StorageInfo) +---------------------------- + +Storage space used by the virtual machine, split by datastore. + +perDatastoreUsage (vim.vm.StorageInfo.UsageOnDatastore, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Storage space used by the virtual machine on all datastores that it is located on. + Total storage space committed to the virtual machine across all datastores is simply an aggregate of the property ``committed`` + +timestamp (datetime) +^^^^^^^^^^^^^^^^^^^^ + + Time when values in this structure were last updated. + +environmentBrowser (vim.EnvironmentBrowser) +------------------------------------------- + +The current virtual machine's environment browser object. +This contains information on all the configurations that can be used on the virtual machine. +This is identical to the environment browser on the ComputeResource to which the virtual machine belongs. + +datastoreBrowser (vim.host.DatastoreBrowser) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + DatastoreBrowser to browse datastores that are available on this entity. + +resourcePool (vim.ResourcePool) +------------------------------- + +The current resource pool that specifies resource allocation for the virtual machine. +This property is set when a virtual machine is created or associated with a different resource pool. +Returns null if the virtual machine is a template or the session has no access to the resource pool. + +summary (vim.ResourcePool.Summary) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Basic information about a resource pool. + +runtime (vim.ResourcePool.RuntimeInfo) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Runtime information about a resource pool. + +owner (vim.ComputeResource) +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The ComputeResource to which this set of one or more nested resource pools belong. + +resourcePool (vim.ResourcePool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The set of child resource pools. + +vm (vim.VirtualMachine) +^^^^^^^^^^^^^^^^^^^^^^^ + + The set of virtual machines associated with this resource pool. + +config (vim.ResourceConfigSpec) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Configuration of this resource pool. + +childConfiguration (vim.ResourceConfigSpec) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The resource configuration of all direct children (VirtualMachine and ResourcePool) of this resource group. + +parentVApp (vim.ManagedEntity) +------------------------------ + +Reference to the parent vApp. + +parent (vim.ManagedEntity) +^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Parent of this entity. + This value is null for the root object and for (VirtualMachine) objects that are part of a (VirtualApp). + +customValue (vim.CustomFieldsManager.Value) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Custom field values. + +overallStatus (vim.ManagedEntity.Status) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + General health of this managed entity. + +configStatus (vim.ManagedEntity.Status) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The configStatus indicates whether or not the system has detected a configuration issue involving this entity. + For example, it might have detected a duplicate IP address or MAC address, or a host in a cluster might be out of ``compliance.property``. + +configIssue (vim.event.Event) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Current configuration issues that have been detected for this entity. + +effectiveRole (int) +^^^^^^^^^^^^^^^^^^^ + + Access rights the current session has to this entity. + +permission (vim.AuthorizationManager.Permission) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + List of permissions defined for this entity. + +name (str) +^^^^^^^^^^ + + Name of this entity, unique relative to its parent. + Any / (slash), \ (backslash), character used in this name element will be escaped. + Similarly, any % (percent) character used in this name element will be escaped, unless it is used to start an escape sequence. + A slash is escaped as %2F or %2f. A backslash is escaped as %5C or %5c, and a percent is escaped as %25. + +disabledMethod (str) +^^^^^^^^^^^^^^^^^^^^ + + List of operations that are disabled, given the current runtime state of the entity. + For example, a power-on operation always fails if a virtual machine is already powered on. + +recentTask (vim.Task) +^^^^^^^^^^^^^^^^^^^^^ + + The set of recent tasks operating on this managed entity. + A task in this list could be in one of the four states: pending, running, success or error. + +declaredAlarmState (vim.alarm.AlarmState) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + A set of alarm states for alarms that apply to this managed entity. + +triggeredAlarmState (vim.alarm.AlarmState) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + A set of alarm states for alarms triggered by this entity or by its descendants. + +alarmActionsEnabled (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Whether alarm actions are enabled for this entity. True if enabled; false otherwise. + +tag (vim.Tag) +^^^^^^^^^^^^^ + + The set of tags associated with this managed entity. Experimental. Subject to change. + +resourceConfig (vim.ResourceConfigSpec) +--------------------------------------- + + The resource configuration for a virtual machine. + +entity (vim.ManagedEntity, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Reference to the entity with this resource specification: either a VirtualMachine or a ResourcePool. + +changeVersion (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The changeVersion is a unique identifier for a given version of the configuration. Each change to the configuration will update this value. + This is typically implemented as an ever increasing count or a time-stamp. + + +lastModified (datetime, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Timestamp when the resources were last modified. This is ignored when the object is used to update a configuration. + +cpuAllocation (vim.ResourceAllocationInfo) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Resource allocation for CPU. + +memoryAllocation (vim.ResourceAllocationInfo) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Resource allocation for memory. + +runtime (vim.vm.RuntimeInfo) +---------------------------- + +Execution state and history for the virtual machine. + +device (vim.vm.DeviceRuntimeInfo, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Per-device runtime info. This array will be empty if the host software does not provide runtime info for any of the device types currently in use by the virtual machine. + +host (vim.HostSystem, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The host that is responsible for running a virtual machine. + This property is null if the virtual machine is not running and is not assigned to run on a particular host. + +connectionState (vim.VirtualMachine.ConnectionState) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Indicates whether or not the virtual machine is available for management. + +powerState (vim.VirtualMachine.PowerState) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The current power state of the virtual machine. + +faultToleranceState (vim.VirtualMachine.FaultToleranceState) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The fault tolerance state of the virtual machine. + +dasVmProtection (vim.vm.RuntimeInfo.DasProtectionState, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The vSphere HA protection state for a virtual machine. + Property is unset if vSphere HA is not enabled. + +toolsInstallerMounted (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Flag to indicate whether or not the VMware Tools installer is mounted as a CD-ROM. + +suspendTime (datetime, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The timestamp when the virtual machine was most recently suspended. + This property is updated every time the virtual machine is suspended. + +bootTime (datetime, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The timestamp when the virtual machine was most recently powered on. + This property is updated when the virtual machine is powered on from the poweredOff state, and is cleared when the virtual machine is powered off. + This property is not updated when a virtual machine is resumed from a suspended state. + +suspendInterval (long, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The total time the virtual machine has been suspended since it was initially powered on. + This time excludes the current period, if the virtual machine is currently suspended. + This property is updated when the virtual machine resumes, and is reset to zero when the virtual machine is powered off. + +question (vim.vm.QuestionInfo, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The current question, if any, that is blocking the virtual machine's execution. + +memoryOverhead (long, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The amount of memory resource (in bytes) that will be used by the virtual machine above its guest memory requirements. + This value is set if and only if the virtual machine is registered on a host that supports memory resource allocation features. + For powered off VMs, this is the minimum overhead required to power on the VM on the registered host. + For powered on VMs, this is the current overhead reservation, a value which is almost always larger than the minimum overhead, and which grows with time. + +maxCpuUsage (int, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Current upper-bound on CPU usage. + The upper-bound is based on the host the virtual machine is current running on, as well as limits configured on the virtual machine itself or any parent resource pool. + Valid while the virtual machine is running. + +maxMemoryUsage (int, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Current upper-bound on memory usage. + The upper-bound is based on memory configuration of the virtual machine, as well as limits configured on the virtual machine itself or any parent resource pool. + Valid while the virtual machine is running. + +numMksConnections (int) +^^^^^^^^^^^^^^^^^^^^^^^ + + Number of active MKS connections to the virtual machine. + +recordReplayState (vim.VirtualMachine.RecordReplayState) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Record / replay state of the virtual machine. + +cleanPowerOff (bool, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + For a powered off virtual machine, indicates whether the virtual machine's last shutdown was an orderly power off or not. + Unset if the virtual machine is running or suspended. + +needSecondaryReason (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + If set, indicates the reason the virtual machine needs a secondary. + +onlineStandby (bool) +^^^^^^^^^^^^^^^^^^^^ + + This property indicates whether the guest has gone into one of the s1, s2 or s3 standby modes. False indicates the guest is awake. + +minRequiredEVCModeKey (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + For a powered-on or suspended virtual machine in a cluster with Enhanced VMotion Compatibility (EVC) enabled, this identifies the least-featured EVC mode (among those for the appropriate CPU vendor) that could admit the virtual machine. + This property will be unset if the virtual machine is powered off or is not in an EVC cluster. + This property may be used as a general indicator of the CPU feature baseline currently in use by the virtual machine. + However, the virtual machine may be suppressing some of the features present in the CPU feature baseline of the indicated mode, either explicitly (in the virtual machine's configured ``cpuFeatureMask``) or implicitly (in the default masks for the ``GuestOsDescriptor`` appropriate for the virtual machine's configured guest OS). + +consolidationNeeded (bool) +^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Whether any disk of the virtual machine requires consolidation. + This can happen for example when a snapshot is deleted but its associated disk is not committed back to the base disk. + +offlineFeatureRequirement (vim.vm.FeatureRequirement, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + These requirements must have equivalent host capabilities ``featureCapability`` in order to power on. + +featureRequirement (vim.vm.FeatureRequirement, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + These requirements must have equivalent host capabilities ``featureCapability`` in order to power on, resume, or migrate to the host. + +featureMask (vim.host.FeatureMask, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + The masks applied to an individual virtual machine as a result of its configuration. + +vFlashCacheAllocation (long, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Specifies the total allocated vFlash resource for the vFlash caches associated with VM's VMDKs when VM is powered on, in bytes. + + +guest (vim.vm.GuestInfo) +------------------------ + +Information about VMware Tools and about the virtual machine from the perspective of VMware Tools. +Information about the guest operating system is available in VirtualCenter. +Guest operating system information reflects the last known state of the virtual machine. +For powered on machines, this is current information. +For powered off machines, this is the last recorded state before the virtual machine was powered off. + +toolsStatus (vim.vm.GuestInfo.ToolsStatus, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Current status of VMware Tools in the guest operating system, if known. + +toolsVersionStatus (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Current version status of VMware Tools in the guest operating system, if known. + +toolsVersionStatus2 (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Current version status of VMware Tools in the guest operating system, if known. + +toolsRunningStatus (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Current running status of VMware Tools in the guest operating system, if known. + +toolsVersion (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Current version of VMware Tools, if known. + +guestId (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^ + + Guest operating system identifier (short name), if known. + +guestFamily (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Guest operating system family, if known. + +guestFullName (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + See :ref:`ansible_collections.community.vmware.docsite.guest_full_name`. + +hostName (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^ + + Hostname of the guest operating system, if known. + +ipAddress (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^ + + Primary IP address assigned to the guest operating system, if known. + +net (vim.vm.GuestInfo.NicInfo, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Guest information about network adapters, if known. + +ipStack (vim.vm.GuestInfo.StackInfo, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Guest information about IP networking stack, if known. + +disk (vim.vm.GuestInfo.DiskInfo, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Guest information about disks. + You can obtain Linux guest disk information for the following file system types only: Ext2, Ext3, Ext4, ReiserFS, ZFS, NTFS, VFAT, UFS, PCFS, HFS, and MS-DOS. + +screen (vim.vm.GuestInfo.ScreenInfo, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Guest screen resolution info, if known. + +guestState (str) +^^^^^^^^^^^^^^^^ + + Operation mode of guest operating system. + +appHeartbeatStatus (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Application heartbeat status. + +appState (str, optional) +^^^^^^^^^^^^^^^^^^^^^^^^ + + Application state. + If vSphere HA is enabled and the vm is configured for Application Monitoring and this field's value is ``appStateNeedReset`` then HA will attempt immediately reset the virtual machine. + There are some system conditions which may delay the immediate reset. + The immediate reset will be performed as soon as allowed by vSphere HA and ESX. + If during these conditions the value is changed to ``appStateOk`` the reset will be cancelled. + +guestOperationsReady (bool, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Guest Operations availability. If true, the vitrual machine is ready to process guest operations. + +interactiveGuestOperationsReady (bool, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Interactive Guest Operations availability. If true, the virtual machine is ready to process guest operations as the user interacting with the guest desktop. + +generationInfo (vim.vm.GuestInfo.NamespaceGenerationInfo, privilege: VirtualMachine.Namespace.EventNotify, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + A list of namespaces and their corresponding generation numbers. Only namespaces with non-zero ``maxSizeEventsFromGuest`` are guaranteed to be present here. + + +summary (vim.vm.Summary) +------------------------ + + Basic information about the virtual machine. + +vm (vim.VirtualMachine, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Reference to the virtual machine managed object. + +runtime (vim.vm.RuntimeInfo) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Runtime and state information of a running virtual machine. + Most of this information is also available when a virtual machine is powered off. + In that case, it contains information from the last run, if available. + +guest (vim.vm.Summary.GuestSummary, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Guest operating system and VMware Tools information. + +config (vim.vm.Summary.ConfigSummary) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Basic configuration information about the virtual machine. + This information is not available when the virtual machine is unavailable, for instance, when it is being created or deleted. + +storage (vim.vm.Summary.StorageSummary, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Storage information of the virtual machine. + +quickStats (vim.vm.Summary.QuickStats) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + A set of statistics that are typically updated with near real-time regularity. + +overallStatus (vim.ManagedEntity.Status) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Overall alarm status on this node. + +customValue (vim.CustomFieldsManager.Value, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Custom field values. + + +datastore (vim.Datastore) +------------------------- + + A collection of references to the subset of datastore objects in the datacenter that is used by the virtual machine. + +info (vim.Datastore.Info) +^^^^^^^^^^^^^^^^^^^^^^^^^ + + Specific information about the datastore. + +summary (vim.Datastore.Summary) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Global properties of the datastore. + +host (vim.Datastore.HostMount) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Hosts attached to this datastore. + +vm (vim.VirtualMachine) +^^^^^^^^^^^^^^^^^^^^^^^ + + Virtual machines stored on this datastore. + +browser (vim.host.DatastoreBrowser) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + DatastoreBrowser used to browse this datastore. + +capability (vim.Datastore.Capability) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Capabilities of this datastore. + +iormConfiguration (vim.StorageResourceManager.IORMConfigInfo) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Configuration of storage I/O resource management for the datastore. + Currently VMware only support storage I/O resource management on VMFS volumes of a datastore. + This configuration may not be available if the datastore is not accessible from any host, or if the datastore does not have VMFS volume. + +network (vim.Network) +--------------------- + + A collection of references to the subset of network objects in the datacenter that is used by the virtual machine. + +name (str) +^^^^^^^^^^ + + Name of this network. + +summary (vim.Network.Summary) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Properties of a network. + +host (vim.HostSystem) +^^^^^^^^^^^^^^^^^^^^^ + + Hosts attached to this network. + +vm (vim.VirtualMachine) +^^^^^^^^^^^^^^^^^^^^^^^ + + Virtual machines using this network. + + +snapshot (vim.vm.SnapshotInfo) +------------------------------- + +Current snapshot and tree. +The property is valid if snapshots have been created for the virtual machine. + +currentSnapshot (vim.vm.Snapshot, optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Current snapshot of the virtual machineThis property is set by calling ``Snapshot.revert`` or ``VirtualMachine.createSnapshot``. + This property will be empty when the working snapshot is at the root of the snapshot tree. + +rootSnapshotList (vim.vm.SnapshotTree) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Data for the entire set of snapshots for one virtual machine. + +rootSnapshot (vim.vm.Snapshot) +------------------------------ + +The roots of all snapshot trees for the virtual machine. + +config (vim.vm.ConfigInfo) +^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Information about the configuration of the virtual machine when this snapshot was taken. + The datastore paths for the virtual machine disks point to the head of the disk chain that represents the disk at this given snapshot. + +childSnapshot (vim.vm.Snapshot) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + All snapshots for which this snapshot is the parent. + +guestHeartbeatStatus (vim.ManagedEntity.Status) +----------------------------------------------- + + The guest heartbeat. + +.. seealso:: + + `pyVmomi <https://github.com/vmware/pyvmomi>`_ + The GitHub Page of pyVmomi + `pyVmomi Issue Tracker <https://github.com/vmware/pyvmomi/issues>`_ + The issue tracker for the pyVmomi project + rst/scenario_guides/guide_vmware.rst + The GitHub Page of vSphere Automation SDK for Python + `vSphere Automation SDK Issue Tracker <https://github.com/vmware/vsphere-automation-sdk-python/issues>`_ + The issue tracker for vSphere Automation SDK for Python + :ref:`working_with_playbooks` + An introduction to playbooks + :ref:`playbooks_vault` + Using Vault in playbooks diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_module_reference.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_module_reference.rst new file mode 100644 index 00000000..9a9a36e9 --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_module_reference.rst @@ -0,0 +1,9 @@ +:orphan: + +.. _ansible_collections.community.vmware.docsite.vmware_ansible_module_index: + +*************************** +Ansible VMware Module Guide +*************************** + +This will be a listing similar to the module index in our core docs. diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_requirements.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_requirements.rst new file mode 100644 index 00000000..8244afe2 --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_requirements.rst @@ -0,0 +1,73 @@ +.. _ansible_collections.community.vmware.docsite.vmware_requirements: + +******************** +VMware Prerequisites +******************** + +.. contents:: + :local: + +ESXi License +============ + +Access to the vSphere API is governed by the various vSphere Editions which provides both read and write access to the API. +If you are using vSphere Hypervisor (free edition of ESXi), the vSphere API will only be available as read-only. +All modules requires API write access to perform various actions. Hence, a free ESXi license will not be supported. +Please check `this blog post <https://blogs.vmware.com/vsphere/2012/02/introduction-to-the-vsphere-api-part-1.html>`_ for more details. + + +Installing SSL Certificates +=========================== + +All vCenter and ESXi servers require SSL encryption on all connections to enforce secure communication. You must enable SSL encryption for Ansible by installing the server's SSL certificates on your Ansible control node or delegate node. + +If the SSL certificate of your vCenter or ESXi server is not correctly installed on your Ansible control node, you will see the following warning when using Ansible VMware modules: + +``Unable to connect to vCenter or ESXi API at xx.xx.xx.xx on TCP/443: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)`` + +To install the SSL certificate for your VMware server, and run your Ansible VMware modules in encrypted mode, please follow the instructions for the server you are running with VMware. + +Installing vCenter SSL certificates for Ansible +----------------------------------------------- + +* From any web browser, go to the base URL of the vCenter Server without port number like ``https://vcenter-domain.example.com`` + +* Click the "Download trusted root CA certificates" link at the bottom of the grey box on the right and download the file. + +* Change the extension of the file to .zip. The file is a ZIP file of all root certificates and all CRLs. + +* Extract the contents of the zip file. The extracted directory contains a ``.certs`` directory that contains two types of files. Files with a number as the extension (.0, .1, and so on) are root certificates. + +* Install the certificate files are trusted certificates by the process that is appropriate for your operating system. + + +Installing ESXi SSL certificates for Ansible +-------------------------------------------- + +* Enable SSH Service on ESXi either by using Ansible VMware module `vmware_host_service_manager <https://github.com/ansible-collections/vmware/blob/main/plugins/modules/vmware_host_config_manager.py>`_ or manually using vSphere Web interface. + +* SSH to ESXi server using administrative credentials, and navigate to directory ``/etc/vmware/ssl`` + +* Secure copy (SCP) ``rui.crt`` located in ``/etc/vmware/ssl`` directory to Ansible control node. + +* Install the certificate file by the process that is appropriate for your operating system. + +Using custom path for SSL certificates +-------------------------------------- + +If you need to use a custom path for SSL certificates, you can set the ``REQUESTS_CA_BUNDLE`` environment variable in your playbook. + +For example, if ``/var/vmware/certs/vcenter1.crt`` is the SSL certificate for your vCenter Server, you can use the :ref:`environment <playbooks_environment>` keyword to pass it to the modules: + +.. code-block:: yaml + + - name: Gather all tags from vCenter + community.vmware.vmware_tag_info: + validate_certs: True + hostname: '{{ vcenter_hostname }}' + username: '{{ vcenter_username }}' + password: '{{ vcenter_password }}' + environment: + REQUESTS_CA_BUNDLE: /var/vmware/certs/vcenter1.crt + +There is a `known issue <https://github.com/psf/requests/issues/3829>`_ in ``requests`` library (version 2) which you may want to consider when using this environment variable. Basically, setting ``REQUESTS_CA_BUNDLE`` environment variable on managed nodes overrides the ``validate_certs`` value. This may result in unexpected behavior while running the playbook. Please see `community.vmware issue 601 <https://github.com/ansible-collections/community.vmware/issues/601>`_ and `vmware issue 254 <https://github.com/vmware/vsphere-automation-sdk-python/issues/254>`_ for more information. diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_scenarios.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_scenarios.rst new file mode 100644 index 00000000..e34aa43d --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_scenarios.rst @@ -0,0 +1,17 @@ +.. _ansible_collections.community.vmware.docsite.vmware_scenarios: + +**************************** +Ansible for VMware Scenarios +**************************** + +These scenarios teach you how to accomplish common VMware tasks using Ansible. To get started, please select the task you want to accomplish. + +.. toctree:: + :maxdepth: 1 + + scenario_clone_template + scenario_rename_vm + scenario_remove_vm + scenario_find_vm_folder + scenario_vmware_http + scenario_vmware_tools_connection diff --git a/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_troubleshooting.rst b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_troubleshooting.rst new file mode 100644 index 00000000..b0243c28 --- /dev/null +++ b/ansible_collections/community/vmware/docs/docsite/rst/vmware_scenarios/vmware_troubleshooting.rst @@ -0,0 +1,103 @@ +.. _ansible_collections.community.vmware.docsite.vmware_troubleshooting: + +********************************** +Troubleshooting Ansible for VMware +********************************** + +.. contents:: + :local: + +This section lists things that can go wrong and possible ways to fix them. + +Debugging Ansible for VMware +============================ + +When debugging or creating a new issue, you will need information about your VMware infrastructure. You can get this information using +`govc <https://github.com/vmware/govmomi/tree/master/govc>`_, For example: + + +.. code-block:: bash + + $ export GOVC_USERNAME=ESXI_OR_VCENTER_USERNAME + $ export GOVC_PASSWORD=ESXI_OR_VCENTER_PASSWORD + $ export GOVC_URL=https://ESXI_OR_VCENTER_HOSTNAME:443 + $ govc find / + +Known issues with Ansible for VMware +==================================== + + +Network settings with vmware_guest in Ubuntu 18.04 +-------------------------------------------------- + +Setting the network with ``vmware_guest`` in Ubuntu 18.04 is known to be broken, due to missing support for ``netplan`` in the ``open-vm-tools``. +This issue is tracked via: + +* https://github.com/vmware/open-vm-tools/issues/240 +* https://github.com/ansible/ansible/issues/41133 + +Potential Workarounds +^^^^^^^^^^^^^^^^^^^^^ + +There are several workarounds for this issue. + +1) Modify the Ubuntu 18.04 images and installing ``ifupdown`` in them via ``sudo apt install ifupdown``. + If so you need to remove ``netplan`` via ``sudo apt remove netplan.io`` and you need stop ``systemd-networkd`` via ``sudo systemctl disable systemctl-networkd``. + +2) Generate the ``systemd-networkd`` files with a task in your VMware Ansible role: + +.. code-block:: yaml + + - name: make sure cache directory exists + file: path="{{ inventory_dir }}/cache" state=directory + delegate_to: localhost + + - name: generate network templates + template: src=network.j2 dest="{{ inventory_dir }}/cache/{{ inventory_hostname }}.network" + delegate_to: localhost + + - name: copy generated files to vm + vmware_guest_file_operation: + hostname: "{{ vmware_general.hostname }}" + username: "{{ vmware_username }}" + password: "{{ vmware_password }}" + datacenter: "{{ vmware_general.datacenter }}" + validate_certs: "{{ vmware_general.validate_certs }}" + vm_id: "{{ inventory_hostname }}" + vm_username: root + vm_password: "{{ template_password }}" + copy: + src: "{{ inventory_dir }}/cache/{{ inventory_hostname }}.network" + dest: "/etc/systemd/network/ens160.network" + overwrite: False + delegate_to: localhost + + - name: restart systemd-networkd + vmware_vm_shell: + hostname: "{{ vmware_general.hostname }}" + username: "{{ vmware_username }}" + password: "{{ vmware_password }}" + datacenter: "{{ vmware_general.datacenter }}" + folder: /vm + vm_id: "{{ inventory_hostname}}" + vm_username: root + vm_password: "{{ template_password }}" + vm_shell: /bin/systemctl + vm_shell_args: " restart systemd-networkd" + delegate_to: localhost + + - name: restart systemd-resolved + vmware_vm_shell: + hostname: "{{ vmware_general.hostname }}" + username: "{{ vmware_username }}" + password: "{{ vmware_password }}" + datacenter: "{{ vmware_general.datacenter }}" + folder: /vm + vm_id: "{{ inventory_hostname}}" + vm_username: root + vm_password: "{{ template_password }}" + vm_shell: /bin/systemctl + vm_shell_args: " restart systemd-resolved" + delegate_to: localhost + +3) Wait for ``netplan`` support in ``open-vm-tools`` |