├── .gitignore ├── LICENSE ├── README.md ├── docs ├── Bandwidth Throttling Change Module.md ├── Bandwidth Throttling Information Module.md ├── CVS Compliance Report Module.md ├── Callhome Disable Module.md ├── Callhome Enable Module.md ├── Callhome Information Module.md ├── Callhome Mode Change Module.md ├── Callhome Mode Information Module.md ├── Certificate CSR Module.md ├── Certificate Get All Information Module.md ├── Certificate Get Automated Renewal Configurations Module.md ├── Certificate Get Automated Renewal Status Module.md ├── Certificate Get Content module.md ├── Certificate Get Fingerprints module.md ├── Certificate Import Certs Into Truststore module.md ├── Certificate Removal module.md ├── Certificate Update Automated Renewal Configurations Module.md ├── Certificate Update Module.md ├── Certificate Validation Module.md ├── Chassis Module.md ├── Cluster Expansion Cancel Module.md ├── Cluster Expansion Module.md ├── Cluster Info Module.md ├── Cluster Layer3 Get Segment Health module.md ├── Cluster Layer3 Get Segments module.md ├── Cluster Layer3 New Segment module.md ├── Cluster Layer3 Segment Label change module.md ├── Cluster Layer3 Segment change module.md ├── Cluster Layer3 Segment remove module.md ├── Cluster Layer3 Specific Segment module.md ├── Cluster Shutdown Module.md ├── Configure Manager Address module.md ├── Customer Supplied Hosts Module.md ├── DNS Change Module.md ├── DNS Information Module.md ├── Day1 Auto Discovery Host Module.md ├── Day1 Initialization Module.md ├── Disks Information Module.md ├── Export CVS Compliance Report Module.md ├── Host Folder LCM.md ├── Host Shutdown Module.md ├── Hosts Module.md ├── Hosts Update Module.md ├── LCM Advisory Meta Bundle Module.md ├── LCM Advisory Report Module.md ├── LCM Module.md ├── LCM Precheck Module.md ├── LCM Retry Module.md ├── LCM Upload Customized Component.md ├── LCM VLCM Commit Draft Module.md ├── LCM VLCM Delete Draft Module.md ├── LCM VLCM Enable Module.md ├── LCM VLCM Generate Draft Module.md ├── LCM VLCM Image Info Module.md ├── LCM VLCM Info Module.md ├── NTP Change Module.md ├── NTP Information Module.md ├── Prechecks Report Module.md ├── Release Notes.md ├── Remove Host Module.md ├── Satellite Node Expansion Module.md ├── Satellite Node Remove Module.md ├── Sequential Reboot Cancel Module.md ├── Sequential Reboot Module.md ├── Sequential Reboot Retry Module.md ├── Stig Information Module.md ├── Support Account Module.md ├── System Available Hosts Module.md ├── System Cluster Hosts Module.md ├── System Cluster-Portgroups Module.md ├── System Disable Proxy Module.md ├── System Get Management Accounts Module.md ├── System Internet Mode Change Module.md ├── System Internet Mode Information Module.md ├── System Module.md ├── System Precheck Module.md ├── System Precheck Version Module.md ├── System Prechecks Profiles Module.md ├── System Proxy Information Module.md ├── System Set Proxy Module.md ├── System Update Credential Module.md ├── System Update Proxy Module.md ├── System Validate Credential Module.md ├── System Virtual Machines Module.md ├── Telemetry Tier Change Module.md ├── Telemetry Tier Information Module.md ├── VC Mode Change Module.md ├── VC Mode Information Module.md ├── iDRAC Add User Module.md ├── iDRAC Available User Slot ID Module.md ├── iDRAC Network Settings Module.md ├── iDRAC Update Network Settings Module.md ├── iDRAC Update User Account.md ├── iDRAC Users Module.md └── samples │ ├── add_satellite_node.yml │ ├── addnode.yml │ ├── bandwidth_throttling_change.yml │ ├── bandwidth_throttling_info.yml │ ├── callhome_mode.yml │ ├── callhome_mode_change.yml │ ├── callhomeinfo.yml │ ├── cancel_cluster_expansion.yml │ ├── certificate_generate_csr.yml │ ├── certificate_update_v2.yml │ ├── certificate_update_v3.yml │ ├── certificate_validation.yml │ ├── certificates_get_scep_config.yml │ ├── certificates_get_scep_status.yml │ ├── certificates_update_scep_config.yml │ ├── chassis_info.yml │ ├── cluster_portgroup_info.yml │ ├── cluster_shutdown.yml │ ├── clusterinfo.yml │ ├── customer_supplied_hosts.yml │ ├── cvs_compliance_report.yml │ ├── day1_auto_discovery_hosts.yml │ ├── day1_initialization.yml │ ├── disable_callhome.yml │ ├── disable_proxy.yml │ ├── disks_info.yml │ ├── dns_change.yml │ ├── enable_callhome_v1.yml │ ├── enable_callhome_v2.yml │ ├── export_cvs_compliance_report.yml │ ├── get_all_certcontent.yml │ ├── get_certcontent.yml │ ├── get_fingerprints.yml │ ├── host_shutdown.yml │ ├── hostsinfo.yml │ ├── idrac_add_user.yml │ ├── idrac_available_user_slot_ids.yml │ ├── idrac_update_network_settings.yml │ ├── idrac_update_user_account_v1.yml │ ├── idrac_update_user_account_v2.yml │ ├── idracnetwork.yml │ ├── idracusers.yml │ ├── internet_mode_change.yml │ ├── internet_mode_info.yml │ ├── layer3_add_segment.yml │ ├── layer3_del_segment.yml │ ├── layer3_get_segment_bylabel.yml │ ├── layer3_get_segment_health.yml │ ├── layer3_get_segments.yml │ ├── layer3_update_segment.yml │ ├── layer3_update_segment_label.yml │ ├── lcm_advisory_report.yml │ ├── lcm_precheck.yml │ ├── lcm_upgrade_retry.yml │ ├── lcm_upgrade_v1.yml │ ├── lcm_upgrade_v2.yml │ ├── lcm_upgrade_v3.yml │ ├── lcm_upgrade_v4.yml │ ├── lcm_upgrade_v5.yml │ ├── lcm_upgrade_v6.yml │ ├── lcm_upgrade_v7.yml │ ├── lcm_upgrade_v8.yml │ ├── lcm_upgrade_v9.yml │ ├── lcm_upgrade_vlcm_image.yml │ ├── lcm_vlcm_commit_draft.yml │ ├── lcm_vlcm_delete_draft.yml │ ├── lcm_vlcm_enable.yml │ ├── lcm_vlcm_generate_draft.yml │ ├── lcm_vlcm_get.yml │ ├── management_accounts_info.yml │ ├── manager_ip_change.yml │ ├── ntp_change.yml │ ├── precheck_profiles.yml │ ├── precheck_version_info.yml │ ├── prechecks_report.yml │ ├── proxy_info.yml │ ├── remove_certificate.yml │ ├── remove_node.yml │ ├── remove_satellite_node.yml │ ├── sequential_reboot.yml │ ├── sequential_reboot_cancel.yml │ ├── sequential_reboot_retry.yml │ ├── set_proxy.yml │ ├── stig_info.yml │ ├── support_account.yml │ ├── system_availablehosts_info.yml │ ├── system_clusterhosts_info.yml │ ├── system_get_dns.yml │ ├── system_get_ntp.yml │ ├── system_precheck.yml │ ├── system_update_credential.yml │ ├── system_validate_credential.yml │ ├── systeminfo.yml │ ├── telemetry_change.yml │ ├── telemetry_info.yml │ ├── truststore_certs_import.yml │ ├── update_host.yml │ ├── update_proxy.yml │ ├── upgrade_host_folder.yml │ ├── upload_advisory_meta_bundle.yml │ ├── upload_customized_component.yml │ ├── vc_get_mode_info.yml │ ├── vc_mode_change.yml │ └── vminfo.yml ├── galaxy.yml ├── meta └── runtime.yml ├── plugins ├── module_utils │ ├── __init__.py │ └── dellemc_vxrail_ansible_utils.py └── modules │ ├── __init__.py │ ├── dellemc_vxrail_auto_discovery_hosts.py │ ├── dellemc_vxrail_bandwidth_throttling_change.py │ ├── dellemc_vxrail_bandwidth_throttling_info.py │ ├── dellemc_vxrail_callhome_change_mode.py │ ├── dellemc_vxrail_callhome_disable.py │ ├── dellemc_vxrail_callhome_enable.py │ ├── dellemc_vxrail_callhome_getmode.py │ ├── dellemc_vxrail_callhome_info.py │ ├── dellemc_vxrail_certificate_generate_csr.py │ ├── dellemc_vxrail_certificate_update.py │ ├── dellemc_vxrail_certificate_validate.py │ ├── dellemc_vxrail_certificates_get_all_info.py │ ├── dellemc_vxrail_certificates_get_scep_config.py │ ├── dellemc_vxrail_certificates_get_scep_status.py │ ├── dellemc_vxrail_certificates_getcontent.py │ ├── dellemc_vxrail_certificates_getfingerprints.py │ ├── dellemc_vxrail_certificates_importcertsintotruststore.py │ ├── dellemc_vxrail_certificates_removecertificate.py │ ├── dellemc_vxrail_certificates_update_scep_config.py │ ├── dellemc_vxrail_chassis_get.py │ ├── dellemc_vxrail_cluster_expansion.py │ ├── dellemc_vxrail_cluster_expansion_cancel.py │ ├── dellemc_vxrail_cluster_getvm.py │ ├── dellemc_vxrail_cluster_layer3_add_segment.py │ ├── dellemc_vxrail_cluster_layer3_get_segment_bylabel.py │ ├── dellemc_vxrail_cluster_layer3_get_segment_health.py │ ├── dellemc_vxrail_cluster_layer3_get_segments.py │ ├── dellemc_vxrail_cluster_layer3_remove_segment.py │ ├── dellemc_vxrail_cluster_layer3_update_segment.py │ ├── dellemc_vxrail_cluster_layer3_update_segment_label.py │ ├── dellemc_vxrail_cluster_rmhost.py │ ├── dellemc_vxrail_cluster_shutdown.py │ ├── dellemc_vxrail_customer_supplied_hosts.py │ ├── dellemc_vxrail_cvs_compliance_report.py │ ├── dellemc_vxrail_day1.py │ ├── dellemc_vxrail_export_cvs_compliance_report.py │ ├── dellemc_vxrail_get_disks.py │ ├── dellemc_vxrail_get_telemetry_tier.py │ ├── dellemc_vxrail_getclusterinfo.py │ ├── dellemc_vxrail_getsysteminfo.py │ ├── dellemc_vxrail_host_folder_upgrade.py │ ├── dellemc_vxrail_host_shutdown.py │ ├── dellemc_vxrail_hosts_get.py │ ├── dellemc_vxrail_hosts_update.py │ ├── dellemc_vxrail_idrac_adduser.py │ ├── dellemc_vxrail_idrac_getavailableuserids.py │ ├── dellemc_vxrail_idrac_getnetwork.py │ ├── dellemc_vxrail_idrac_getusers.py │ ├── dellemc_vxrail_idrac_update_useraccount.py │ ├── dellemc_vxrail_idrac_updatenetwork.py │ ├── dellemc_vxrail_lcm.py │ ├── dellemc_vxrail_lcm_advisory_meta_bundle.py │ ├── dellemc_vxrail_lcm_advisory_report.py │ ├── dellemc_vxrail_lcm_customized_component.py │ ├── dellemc_vxrail_lcm_precheck.py │ ├── dellemc_vxrail_lcm_retry.py │ ├── dellemc_vxrail_lcm_vlcm_commit_draft.py │ ├── dellemc_vxrail_lcm_vlcm_delete_draft.py │ ├── dellemc_vxrail_lcm_vlcm_enable.py │ ├── dellemc_vxrail_lcm_vlcm_generate_draft.py │ ├── dellemc_vxrail_lcm_vlcm_get.py │ ├── dellemc_vxrail_lcm_vlcm_image.py │ ├── dellemc_vxrail_network_manager_configure.py │ ├── dellemc_vxrail_satellite_node_expansion.py │ ├── dellemc_vxrail_satellite_node_remove.py │ ├── dellemc_vxrail_sequential_reboot.py │ ├── dellemc_vxrail_sequential_reboot_cancel.py │ ├── dellemc_vxrail_sequential_reboot_retry.py │ ├── dellemc_vxrail_stig_get_info.py │ ├── dellemc_vxrail_support_getaccount.py │ ├── dellemc_vxrail_system_cluster_portgroups.py │ ├── dellemc_vxrail_system_disable_proxy.py │ ├── dellemc_vxrail_system_dns_change.py │ ├── dellemc_vxrail_system_get_dns.py │ ├── dellemc_vxrail_system_get_internet_mode.py │ ├── dellemc_vxrail_system_get_management_accounts.py │ ├── dellemc_vxrail_system_get_ntp.py │ ├── dellemc_vxrail_system_get_proxy.py │ ├── dellemc_vxrail_system_getavailablehosts.py │ ├── dellemc_vxrail_system_getclusterhosts.py │ ├── dellemc_vxrail_system_getprecheckprofiles.py │ ├── dellemc_vxrail_system_getprechecksreport.py │ ├── dellemc_vxrail_system_getprecheckversion.py │ ├── dellemc_vxrail_system_internet_mode_change.py │ ├── dellemc_vxrail_system_ntp_change.py │ ├── dellemc_vxrail_system_precheck.py │ ├── dellemc_vxrail_system_set_proxy.py │ ├── dellemc_vxrail_system_update_credential.py │ ├── dellemc_vxrail_system_update_proxy.py │ ├── dellemc_vxrail_system_validate_credential.py │ ├── dellemc_vxrail_telemetry_tier_change.py │ ├── dellemc_vxrail_vc_getmode.py │ └── dellemc_vxrail_vc_mode_change.py ├── renovate.json ├── requirements.txt ├── sanity-test-requirements.txt └── scripts ├── infoUpdate.sh ├── lint-ansible.sh ├── lint-python.sh └── sanity-test.sh /.gitignore: -------------------------------------------------------------------------------- 1 | # ignore github configuration 2 | .github/config.yml 3 | -------------------------------------------------------------------------------- /docs/LCM VLCM Commit Draft Module.md: -------------------------------------------------------------------------------- 1 | **LCM VLCM Information Module for Dell EMC VxRail** 2 | ========================================= 3 | ### Product Guide 4 | 5 | > © 2021 Dell Inc. or its subsidiaries. All rights reserved. Dell 6 | > EMC, and other trademarks are trademarks of Dell Inc. or its 7 | > subsidiaries. Other trademarks may be trademarks of their respective owners. 8 | 9 | Synopsis 10 | -------- 11 | This module will commit vLCM draft. 12 | 13 | Supported Endpoints 14 | -------- 15 | 16 | * POST /v1/lcm/vlcm/enablement/draft/commit 17 | 18 | Parameters 19 | ---------- 20 | 21 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 44 | 46 | 49 | 50 | 51 | 64 | 66 | 69 | 70 | 71 | 84 | 86 | 89 | 90 |
ParameterChoices/Defaults 27 | Comments
32 | 45 | 47 |
The IP address of the VxRail Manager System
48 |
52 | 65 | 67 |
Administrative account of the vCenter Server the VxRail Manager is registered to
68 |
72 | 85 | 87 |
The password for the administrator account provided in vcadmin
88 |
91 | 92 | 93 | Notes 94 | ----- 95 | - Make sure your VxRail environment supports the API that you use. 96 | - Details on execution of module dellemc_vxrail_lcm_vlcm_commit_draft.py can be checked in the logs /tmp/vxrail_ansible_lcm_vlcm_commit_draft.log 97 | 98 | 99 | 100 | Examples 101 | -------- 102 | 103 | ``` yaml+jinja 104 | - name: Start to commit vLCM draft 105 | dellemc_vxrail_lcm_vlcm_commit_draft: 106 | vxmip: "{{ vxmip }}" 107 | vcadmin: "{{ vcadmin }}" 108 | vcpasswd: "{{ vcpasswd }}" 109 | api_version_number: "{{ api_version_number | default(omit) }}" 110 | ``` 111 | 112 | 113 | Return Values 114 | ------------- 115 | 116 | The following are the fields unique to this module: 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 133 | 134 | 138 | 139 | 140 | 141 | 149 | 150 | 153 | 154 | 162 | 163 | 167 | 168 |
KeyReturnedDescription
126 |
127 | VLCM_COMMIT_DRAFT_API 128 | 129 |
130 | complex 131 |
132 |
135 |
The commit vLCM draft info from the cluster
136 |
137 |
  142 |
143 | result 144 | 145 |
146 | type=string 147 |
148 |
151 |
The result of committing vlcm draft
152 |
155 |
156 | msg 157 | 158 |
159 | type=string 160 |
161 |
164 |
End of committing vLCM draft. Please see the /tmp/vxrail_ansible_lcm_vlcm_commit_draft.log for more details
165 |
166 |
169 | 170 | Authors 171 | ------- 172 | 173 | - VxRail Development Team <> 174 | -------------------------------------------------------------------------------- /docs/LCM VLCM Info Module.md: -------------------------------------------------------------------------------- 1 | **LCM VLCM Information Module for Dell EMC VxRail** 2 | ========================================= 3 | ### Product Guide 4 | 5 | > © 2021 Dell Inc. or its subsidiaries. All rights reserved. Dell 6 | > EMC, and other trademarks are trademarks of Dell Inc. or its 7 | > subsidiaries. Other trademarks may be trademarks of their respective owners. 8 | 9 | Synopsis 10 | -------- 11 | This module will retrieve cluster vLCM information to check if vlcm enable or not. 12 | 13 | Supported Endpoints 14 | -------- 15 | 16 | * Get /v1/lcm/vlcm 17 | 18 | Parameters 19 | ---------- 20 | 21 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 44 | 46 | 49 | 50 | 51 | 64 | 66 | 69 | 70 | 71 | 84 | 86 | 89 | 90 |
ParameterChoices/Defaults 27 | Comments
32 | 45 | 47 |
The IP address of the VxRail Manager System
48 |
52 | 65 | 67 |
Administrative account of the vCenter Server the VxRail Manager is registered to
68 |
72 | 85 | 87 |
The password for the administrator account provided in vcadmin
88 |
91 | 92 | 93 | Notes 94 | ----- 95 | - Make sure your VxRail environment supports the API that you use. 96 | - Details on execution of module dellemc_vxrail_lcm_vlcm_get.py can be checked in the logs /tmp/vxrail_ansible_lcm_vlcm.log 97 | 98 | 99 | 100 | Examples 101 | -------- 102 | 103 | ``` yaml+jinja 104 | - name: Start to retrieve cluster vLCM information 105 | dellemc_vxrail_lcm_vlcm_get: 106 | vxmip: "{{ vxmip }}" 107 | vcadmin: "{{ vcadmin }}" 108 | vcpasswd: "{{ vcpasswd }}" 109 | timeout: "{{ timeout | default(omit) }}" 110 | api_version_number: "{{ api_version_number | default(omit) }}" 111 | ``` 112 | 113 | 114 | Return Values 115 | ------------- 116 | 117 | The following are the fields unique to this module: 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 134 | 135 | 139 | 140 | 141 | 142 | 150 | 151 | 154 | 155 | 163 | 164 | 167 | 175 | 176 | 180 | 181 |
KeyReturnedDescription
127 |
128 | VLCM_INFO 129 | 130 |
131 | complex 132 |
133 |
136 |
The vLCM info from the cluster
137 |
138 |
  143 |
144 | enable 145 | 146 |
147 | type=boolean 148 |
149 |
152 |
The vlcm enable status in the cluster
153 |
  156 |
157 | cluster_name 158 | 159 |
160 | type=string 161 |
162 |
165 |
The name of cluster
166 |
168 |
169 | msg 170 | 171 |
172 | type=string 173 |
174 |
177 |
Retrieve vLCM informations success. Please see the /tmp/vxrail_ansible_lcm_vlcm.log for more details
178 |
179 |
182 | 183 | Authors 184 | ------- 185 | 186 | - VxRail Development Team <> 187 | -------------------------------------------------------------------------------- /docs/Release Notes.md: -------------------------------------------------------------------------------- 1 | 2 | **Ansible Modules for Dell EMC VxRail** 3 | ========================================= 4 | ### Release Notes 5 | 6 | > © 2021 Dell Inc. or its subsidiaries. All rights reserved. Dell 7 | > EMC, and other trademarks are trademarks of Dell Inc. or its 8 | > subsidiaries. Other trademarks may be trademarks of their respective 9 | > owners. 10 | 11 | Contents 12 | -------- 13 | These release notes contain supplemental information about Ansible 14 | Modules for Dell EMC VxRail. 15 | 16 | - Revision History 17 | - Product Description 18 | - Known issues 19 | - Limitations 20 | - Distribution 21 | - Documentation 22 | 23 | Revision History 24 | ---------------- 25 | 26 | | **Date** | **Document revision** | **Description of changes** | 27 | |----------|-----------------------|----------------------------| 28 | | September 2021 | 01 | Ansible Modules for Dell EMC VxRail release 7.0.240 | 29 | 30 | Product Description 31 | ------------------- 32 | 33 | The Ansible Modules for Dell EMC VxRail are used for gathering system information and performing L2 Node Expansion. 34 | The modules use playbooks to list, show, create each of the entities. 35 | 36 | The Ansible Modules for Dell EMC VxRail supports the following 37 | features: 38 | 39 | - Perform day1 bringup and cluster expansion 40 | - Retrieve details of VxRail System information 41 | 42 | Known issues 43 | ------------ 44 | There are no known issues. 45 | 46 | Limitations 47 | ----------- 48 | There are no known limitations. 49 | 50 | Distribution 51 | ------------ 52 | The software package is available for download from the [Ansible Modules 53 | for VxRail GitHub](https://github.com/dell/ansible-vxrail) page. 54 | 55 | Documentation 56 | ------------- 57 | The documentation is available on [Ansible Modules for VxRail GitHub](https://github.com/dell/ansible-vxrail) 58 | page. It includes the following: 59 | 60 | - README 61 | - Release Notes (this document) 62 | - Product Guide 63 | -------------------------------------------------------------------------------- /docs/samples/add_satellite_node.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Add satellite nodes 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | vxm_version: "{{ vxm_version }}" 9 | folder_id: "{{ folder_id }}" 10 | mgt_ip: "{{ mgt_ip }}" 11 | network_ip: "{{ network_ip }}" 12 | current_root_password: "{{ current_root_password }}" 13 | hostname: "{{ hostname }}" 14 | domain_name: "{{ domain_name }}" 15 | root_account: "{{ root_account }}" 16 | root_passwd: "{{ root_passwd }}" 17 | mgt_account: "{{ mgt_account }}" 18 | mgt_passwd: "{{ mgt_passwd }}" 19 | mgt_vlan: "{{ mgt_vlan }}" 20 | mgt_netmask: "{{ mgt_netmask }}" 21 | mgt_gateway: "{{ mgt_gateway }}" 22 | dns_server: "{{ dns_server }}" 23 | ntp_server_var: "{{ ntp_server | default(omit) }}" 24 | syslog_server_var: "{{ syslog_server | default(omit) }}" 25 | rack_name_var: "{{ rack_name | default(omit) }}" 26 | order_number_var: "{{ order_number | default(omit) }}" 27 | 28 | tasks: 29 | - name: Start a satellite nodes expansion 30 | dellemc.vxrail.dellemc_vxrail_satellite_node_expansion: 31 | vxmip: "{{ vxmip }}" 32 | vcadmin: "{{ vcadmin }}" 33 | vcpasswd: "{{ vcpasswd }}" 34 | vxm_version: "{{ vxm_version }}" 35 | folder_id: "{{ folder_id }}" 36 | mgt_ip: "{{ mgt_ip }}" 37 | network_ip: "{{ network_ip }}" 38 | current_root_password: "{{ current_root_password }}" 39 | hostname: "{{ hostname }}" 40 | domain_name: "{{ domain_name }}" 41 | root_account: "{{ root_account }}" 42 | root_passwd: "{{ root_passwd }}" 43 | mgt_account: "{{ mgt_account }}" 44 | mgt_passwd: "{{ mgt_passwd }}" 45 | mgt_vlan: "{{ mgt_vlan }}" 46 | mgt_netmask: "{{ mgt_netmask }}" 47 | mgt_gateway: "{{ mgt_gateway }}" 48 | dns_server: "{{ dns_server }}" 49 | ntp_server: "{{ ntp_server_var }}" 50 | syslog_server: "{{ syslog_server_var }}" 51 | rack_name: "{{ rack_name_var }}" 52 | order_number: "{{ order_number_var }}" 53 | api_version_number: "{{ api_version_number | default(omit) }}" 54 | async: 1800 55 | poll: 0 56 | register: expansion_status 57 | 58 | - name: Check if satellite node expansion job is completed...The node addition is still ongoing. 59 | async_status: 60 | jid: "{{ expansion_status.ansible_job_id }}" 61 | register: job_result 62 | until: job_result.finished 63 | retries: 60 64 | delay: 30 65 | 66 | - name: Display added satellite node hostname 67 | debug: 68 | var: hostname 69 | 70 | - name: Get satellite node Expansion Result 71 | debug: 72 | msg: "{{job_result}}" 73 | -------------------------------------------------------------------------------- /docs/samples/addnode.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Add a node 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | vxm_version: "{{ vxm_version }}" 9 | host_psnt: "{{ host_psnt }}" 10 | hostname: "{{ hostname }}" 11 | mgt_account: "{{ mgt_account }}" 12 | mgt_passwd: "{{ mgt_passwd }}" 13 | root_passwd: "{{ root_passwd }}" 14 | mgt_ip: "{{ mgt_ip }}" 15 | vsan_ip: "{{ vsan_ip }}" 16 | vmotion_ip: "{{ vmotion_ip }}" 17 | mgt_ipv6: "{{ mgt_ipv6 }}" 18 | vsan_ipv6: "{{ vsan_ipv6 }}" 19 | vmotion_ipv6: "{{ vmotion_ipv6 }}" 20 | #Optional# 21 | rack_name_var: "{{ rack_name | default(omit) }}" 22 | order_number_var: "{{ order_number | default(omit) }}" 23 | 24 | tasks: 25 | - name: Start a cluster expansion 26 | dellemc.vxrail.dellemc_vxrail_cluster_expansion: 27 | vxmip: "{{ vxmip }}" 28 | vcadmin: "{{ vcadmin }}" 29 | vcpasswd: "{{ vcpasswd }}" 30 | vxm_version: "{{ vxm_version }}" 31 | host_psnt: "{{ host_psnt }}" 32 | hostname: "{{ hostname }}" 33 | mgt_account: "{{ mgt_account }}" 34 | mgt_passwd: "{{ mgt_passwd }}" 35 | root_passwd: "{{ root_passwd }}" 36 | mgt_ip: "{{ mgt_ip }}" 37 | vsan_ip: "{{ vsan_ip }}" 38 | vmotion_ip: "{{ vmotion_ip }}" 39 | mgt_ipv6: "{{ mgt_ipv6 }}" 40 | vsan_ipv6: "{{ vsan_ipv6 }}" 41 | vmotion_ipv6: "{{ vmotion_ipv6 }}" 42 | rack_name: "{{ rack_name_var }}" 43 | order_number: "{{ order_number_var }}" 44 | maintenance_mode: "{{ maintenance_mode | default(omit) }}" 45 | timeout: "{{ timeout | default(omit) }}" 46 | api_version_number: "{{ api_version_number | default(omit) }}" 47 | async: 1800 48 | poll: 0 49 | register: expansion_status 50 | - name: Check if cluster expansion job is completed...The node addition is still ongoing. 51 | async_status: 52 | jid: "{{ expansion_status.ansible_job_id }}" 53 | register: job_result 54 | until: job_result.finished 55 | retries: 100 56 | delay: 30 57 | 58 | - name: Display added node host_psnt 59 | debug: 60 | var: host_psnt 61 | - name: Get Cluster Expansion Result 62 | debug: 63 | msg: "{{job_result}}" -------------------------------------------------------------------------------- /docs/samples/bandwidth_throttling_change.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Change bandwidth throttling 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | level: "{{ level }}" 9 | 10 | tasks: 11 | - name: Change bandwidth throttling 12 | dellemc.vxrail.dellemc_vxrail_bandwidth_throttling_change: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | level: "{{ level }}" 18 | register: bandwidth_throttling_change 19 | 20 | - name: Display bandwidth throttling change 21 | debug: 22 | msg: "{{ bandwidth_throttling_change }}" 23 | -------------------------------------------------------------------------------- /docs/samples/bandwidth_throttling_info.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve bandwidth throttling Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get bandwidth throttling Information 11 | dellemc.vxrail.dellemc_vxrail_bandwidth_throttling_info: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | api_version_number: "{{ api_version_number | default(omit) }}" 16 | register: bandwidth_throttling_info 17 | 18 | - name: Display bandwidth throttling 19 | debug: 20 | msg: "{{ bandwidth_throttling_info }}" 21 | -------------------------------------------------------------------------------- /docs/samples/callhome_mode.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve Callhome Server Mode Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get Callhome Mode Information 11 | dellemc.vxrail.dellemc_vxrail_callhome_getmode: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | timeout: "{{ timeout | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | register: callhome_mode 18 | 19 | - name: Display Callhome Mode Information 20 | debug: 21 | msg: "{{callhome_mode}}" -------------------------------------------------------------------------------- /docs/samples/callhome_mode_change.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Change Call home Mode 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | is_muted: "{{ is_muted }}" 9 | 10 | tasks: 11 | - name: Change Call home Mode 12 | dellemc.vxrail.dellemc_vxrail_callhome_change_mode: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | is_muted: "{{ is_muted }}" 17 | timeout: "{{ timeout | default(omit) }}" 18 | api_version_number: "{{ api_version_number | default(omit) }}" 19 | register: callhome_mode 20 | 21 | - name: Display Callhome Mode Change Information 22 | debug: 23 | var: is_muted 24 | 25 | - name: Display Callhome Mode Change Result 26 | debug: 27 | msg: "{{callhome_mode}}" -------------------------------------------------------------------------------- /docs/samples/callhomeinfo.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve call home server information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get callhome Information 11 | dellemc.vxrail.dellemc_vxrail_callhome_info: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | timeout: "{{ timeout | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | register: callhome_info 18 | 19 | - name: Display Callhome Information 20 | debug: 21 | msg: "{{callhome_info}}" -------------------------------------------------------------------------------- /docs/samples/cancel_cluster_expansion.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Cancel a failed cluster expansion 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Cancel the failed cluster expansion 11 | dellemc.vxrail.dellemc_vxrail_cluster_expansion_cancel: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | api_version_number: "{{ api_version_number | default(omit) }}" 16 | timeout: "{{ timeout | default(omit) }}" 17 | register: expansion_cancel_result 18 | 19 | - name: Display Expansion Cancellation Result 20 | debug: 21 | msg: "{{ expansion_cancel_result }}" 22 | -------------------------------------------------------------------------------- /docs/samples/certificate_generate_csr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Generate a Certificate Signing Request 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | country: "{{ country }}" 9 | state: "{{ state }}" 10 | locality: "{{ locality }}" 11 | organization: "{{ organization }}" 12 | organization_unit: "{{ organization_unit }}" 13 | common_name: "{{ common_name }}" 14 | email_address: "{{ email_address }}" 15 | subject_alt_name: "{{ subject_alt_name }}" 16 | 17 | tasks: 18 | - name: Generate a Certificate Signing Request 19 | dellemc.vxrail.dellemc_vxrail_certificate_generate_csr: 20 | vxmip: "{{ vxmip }}" 21 | vcadmin: "{{ vcadmin }}" 22 | vcpasswd: "{{ vcpasswd }}" 23 | country: "{{ country }}" 24 | state: "{{ state }}" 25 | locality: "{{ locality }}" 26 | organization: "{{ organization }}" 27 | organization_unit: "{{ organization_unit }}" 28 | common_name: "{{ common_name }}" 29 | email_address: "{{ email_address }}" 30 | subject_alt_name: "{{ subject_alt_name }}" 31 | api_version_number: "{{ api_version_number | default(omit) }}" 32 | register: generate_csr 33 | 34 | - name: Display CSR information 35 | debug: 36 | msg: "{{ generate_csr }}" 37 | -------------------------------------------------------------------------------- /docs/samples/certificate_update_v2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Update the VxRail Manager certificate with v2/certificates/import-vxm API 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | cert: "{{ cert }}" 9 | root_cert_chain: "{{ root_cert_chain }}" 10 | private_key: "{{ private_key }}" 11 | password: "{{ password }}" 12 | 13 | tasks: 14 | - name: Update the VxRail Manager certificate 15 | dellemc.vxrail.dellemc_vxrail_certificate_update: 16 | vxmip: "{{ vxmip }}" 17 | vcadmin: "{{ vcadmin }}" 18 | vcpasswd: "{{ vcpasswd }}" 19 | cert: "{{ cert }}" 20 | root_cert_chain: "{{ root_cert_chain }}" 21 | private_key: "{{ private_key }}" 22 | password: "{{ password }}" 23 | api_version_number: 2 24 | async: 1800 25 | poll: 0 26 | register: certificate_update_status 27 | 28 | - name: Check if certificate update job is completed...The certificate update is still ongoing. 29 | async_status: 30 | jid: "{{ certificate_update_status.ansible_job_id }}" 31 | register: job_result 32 | until: job_result.finished 33 | retries: 100 34 | delay: 30 35 | 36 | - name: Get certificate update result 37 | debug: 38 | msg: "{{ job_result }}" 39 | -------------------------------------------------------------------------------- /docs/samples/certificate_update_v3.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Update the VxRail Manager certificate with v3/certificates/import-vxm API 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | cert: "{{ cert }}" 9 | root_cert_chain: "{{ root_cert_chain }}" 10 | private_key_var: "{{ private_key | default(omit) }}" 11 | password: "{{ password }}" 12 | vc_admin_account: "{{ vc_admin_account }}" 13 | vc_admin_password: "{{ vc_admin_password }}" 14 | 15 | tasks: 16 | - name: Update the VxRail Manager certificate 17 | dellemc.vxrail.dellemc_vxrail_certificate_update: 18 | vxmip: "{{ vxmip }}" 19 | vcadmin: "{{ vcadmin }}" 20 | vcpasswd: "{{ vcpasswd }}" 21 | cert: "{{ cert }}" 22 | root_cert_chain: "{{ root_cert_chain }}" 23 | private_key: "{{ private_key_var }}" 24 | password: "{{ password }}" 25 | vc_admin_account: "{{ vc_admin_account }}" 26 | vc_admin_password: "{{ vc_admin_password }}" 27 | api_version_number: 3 28 | async: 1800 29 | poll: 0 30 | register: certificate_update_status 31 | 32 | - name: Check if certificate update job is completed...The certificate update is still ongoing. 33 | async_status: 34 | jid: "{{ certificate_update_status.ansible_job_id }}" 35 | register: job_result 36 | until: job_result.finished 37 | retries: 100 38 | delay: 30 39 | 40 | - name: Get certificate update result 41 | debug: 42 | msg: "{{ job_result }}" 43 | -------------------------------------------------------------------------------- /docs/samples/certificate_validation.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Verify the VxRail Manager certificate 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | cert: "{{ cert }}" 9 | root_cert_chain: "{{ root_cert_chain }}" 10 | private_key: "{{ private_key }}" 11 | password: "{{ password }}" 12 | 13 | tasks: 14 | - name: Verify the VxRail Manager certificate 15 | dellemc.vxrail.dellemc_vxrail_certificate_validate: 16 | vxmip: "{{ vxmip }}" 17 | vcadmin: "{{ vcadmin }}" 18 | vcpasswd: "{{ vcpasswd }}" 19 | cert: "{{ cert }}" 20 | root_cert_chain: "{{ root_cert_chain }}" 21 | private_key: "{{ private_key }}" 22 | password: "{{ password }}" 23 | api_version_number: "{{ api_version_number | default(omit) }}" 24 | register: certificate_validate 25 | 26 | - name: Verify the VxRail Manager certificate 27 | debug: 28 | msg: "{{ certificate_validate }}" 29 | -------------------------------------------------------------------------------- /docs/samples/certificates_get_scep_config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Get automated renewal configurations of the certificate with /cluster/certificates/scep/config 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get automated renewal configurations 11 | dellemc.vxrail.dellemc_vxrail_certificates_get_scep_config: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | api_version_number: "{{ api_version_number | default(omit) }}" 16 | register: scep_config 17 | 18 | - name: Display automated renewal configurations 19 | debug: 20 | msg: "{{scep_config}}" -------------------------------------------------------------------------------- /docs/samples/certificates_get_scep_status.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Get automated renewal status of the certificate with /cluster/certificates/scep/status 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get automated renewal status 11 | dellemc.vxrail.dellemc_vxrail_certificates_get_scep_status: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | api_version_number: "{{ api_version_number | default(omit) }}" 16 | register: scep_status 17 | 18 | - name: Display automated renewal status 19 | debug: 20 | msg: "{{scep_status}}" -------------------------------------------------------------------------------- /docs/samples/certificates_update_scep_config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Update automated renewal configurations of the certificate with /cluster/certificates/scep/config 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | caserver_url: "{{ caserver_url }}" 9 | challenge_password: "{{ challenge_password }}" 10 | scep_on: "{{ scep_on }}" 11 | scep_renewal_interval_in_minutes: "{{ scep_renewal_interval_in_minutes }}" 12 | scep_days_before_expire: "{{ scep_days_before_expire }}" 13 | tasks: 14 | - name: Update automated renewal configurations 15 | dellemc.vxrail.dellemc_vxrail_certificates_update_scep_config: 16 | vxmip: "{{ vxmip }}" 17 | vcadmin: "{{ vcadmin }}" 18 | vcpasswd: "{{ vcpasswd }}" 19 | caserver_url: "{{ caserver_url }}" 20 | challenge_password: "{{ challenge_password }}" 21 | scep_on: "{{ scep_on }}" 22 | scep_renewal_interval_in_minutes: "{{ scep_renewal_interval_in_minutes }}" 23 | scep_days_before_expire: "{{ scep_days_before_expire }}" 24 | api_version_number: "{{ api_version_number | default(omit) }}" 25 | register: scep_config 26 | 27 | - name: Update automated renewal configurations 28 | debug: 29 | msg: "{{scep_config}}" 30 | -------------------------------------------------------------------------------- /docs/samples/chassis_info.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve VxRail Chassis Information with /chassis and /chassis/{id} APIs 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get Chassis Information 11 | dellemc.vxrail.dellemc_vxrail_chassis_get: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | chassis_id: "{{ chassis_id | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | register: chassis_info 18 | 19 | - name: Display Chassis Information 20 | debug: 21 | msg: "{{chassis_info}}" -------------------------------------------------------------------------------- /docs/samples/cluster_portgroup_info.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve Cluster Portgroup Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | node_fqdn: "{{ node_fqdn }}" 9 | 10 | tasks: 11 | - name: Get Node's Cluster Portgroup Information 12 | dellemc.vxrail.dellemc_vxrail_system_cluster_portgroups: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | node_fqdn: "{{ node_fqdn }}" 17 | timeout: "{{ timeout | default(omit) }}" 18 | api_version_number: "{{ api_version_number | default(omit) }}" 19 | register: cluster_portgroup_info 20 | 21 | - name: Display Cluster Portgroup Information 22 | debug: 23 | msg: "{{ cluster_portgroup_info }}" 24 | -------------------------------------------------------------------------------- /docs/samples/cluster_shutdown.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Cluster Shutdown 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | dryrun: "{{ dryrun }}" 9 | 10 | tasks: 11 | - name: Perform Cluster Shutdown 12 | dellemc.vxrail.dellemc_vxrail_cluster_shutdown: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | dryrun: "{{ dryrun | default(omit) }}" 17 | timeout: "{{ timeout | default(omit) }}" 18 | api_version_number: "{{ api_version_number | default(omit) }}" 19 | async: 1800 20 | poll: 0 21 | register: request_info 22 | 23 | - name: Check if cluster shutdown job is completed 24 | async_status: 25 | jid: "{{ request_info.ansible_job_id }}" 26 | register: job_result 27 | until: job_result.finished 28 | retries: 100 29 | delay: 30 30 | 31 | - name: Display Cluster Shutdown Information 32 | debug: 33 | msg: "{{ job_result }}" 34 | 35 | -------------------------------------------------------------------------------- /docs/samples/clusterinfo.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve VxRail Cluster Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get Cluster Information 11 | dellemc.vxrail.dellemc_vxrail_getclusterinfo: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | timeout: "{{ timeout | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | register: cluster_info 18 | 19 | - name: Display Cluster Information 20 | debug: 21 | msg: "{{cluster_info}}" 22 | -------------------------------------------------------------------------------- /docs/samples/customer_supplied_hosts.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Get Customer Supplied Host Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | hosts: "{{ hosts }}" 7 | 8 | tasks: 9 | - name: Return Nodes by Customer Supplied Management IP 10 | dellemc.vxrail.dellemc_vxrail_customer_supplied_hosts: 11 | vxmip: "{{ vxmip }}" 12 | hosts: "{{ hosts }}" 13 | api_version_number: "{{ api_version_number | default(omit) }}" 14 | timeout: "{{ timeout | default(omit) }}" 15 | register: customer_hosts_info 16 | 17 | - name: Display Customer Supplied Node Information 18 | debug: 19 | msg: "{{customer_hosts_info}}" 20 | -------------------------------------------------------------------------------- /docs/samples/cvs_compliance_report.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Generate cvs compliance report 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Start to generate cvs compliance report 11 | dellemc.vxrail.dellemc_vxrail_cvs_compliance_report: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | timeout: "{{ timeout | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | async: 1800 18 | poll: 0 19 | register: cvs_compliance_report 20 | - name: Check if cvs compliance report is generated...The generation is still ongoing. 21 | async_status: 22 | jid: "{{ cvs_compliance_report.ansible_job_id }}" 23 | register: job_result 24 | until: job_result.finished 25 | retries: 100 26 | delay: 30 27 | - name: Get cvs compliance report Result 28 | debug: 29 | msg: "{{job_result}}" -------------------------------------------------------------------------------- /docs/samples/day1_auto_discovery_hosts.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Get vxrail auto discovery hosts 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | 7 | 8 | tasks: 9 | - name: Get auto discovery hosts 10 | dellemc.vxrail.dellemc_vxrail_auto_discovery_hosts: 11 | vxmip: "{{ vxmip }}" 12 | api_version_number: "{{ api_version_number | default(omit) }}" 13 | register: hosts_info 14 | 15 | - name: Display auto discovery hosts 16 | debug: 17 | msg: "{{ hosts_info }}" -------------------------------------------------------------------------------- /docs/samples/day1_initialization.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Day1 initialization 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | day1json_file: "{{ day1json_file }}" 7 | tasks: 8 | - name: Configure and deploy a new VxRail cluster 9 | dellemc.vxrail.dellemc_vxrail_day1: 10 | vxmip: "{{ vxmip }}" 11 | day1json_file: "{{ day1json_file }}" 12 | api_version_number: "{{ api_version_number | default(omit) }}" 13 | async: 18000 14 | poll: 0 15 | register: installation_status 16 | - name: Check if Day1 initialization job is completed...The Day1 installation is still ongoing. 17 | async_status: 18 | jid: "{{ installation_status.ansible_job_id }}" 19 | register: job_result 20 | until: job_result.finished 21 | retries: 180 22 | delay: 60 23 | 24 | - name: Get Day1 initialization Result 25 | debug: 26 | msg: "{{job_result}}" -------------------------------------------------------------------------------- /docs/samples/disable_callhome.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Unregister call home servers 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Disable call home servers 11 | dellemc.vxrail.dellemc_vxrail_callhome_disable: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | timeout: "{{ timeout | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | register: callhome_disable 18 | 19 | - name: Display Callhome Disabled Result 20 | debug: 21 | msg: "{{callhome_disable}}" -------------------------------------------------------------------------------- /docs/samples/disable_proxy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Disable the VxRail System's Proxy Configuration 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Disable the VxRail System's Proxy Configuration 11 | dellemc.vxrail.dellemc_vxrail_system_disable_proxy: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | api_version_number: "{{ api_version_number | default(omit) }}" 16 | timeout: "{{ timeout | default(omit) }}" 17 | register: proxy_dis 18 | 19 | - name: Display Message of Successful Proxy Disable Operation 20 | debug: 21 | msg: "{{proxy_dis}}" 22 | -------------------------------------------------------------------------------- /docs/samples/disks_info.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve VxRail Disk Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get VxRail Disk Information 11 | dellemc.vxrail.dellemc_vxrail_get_disks: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | disk_sn: "{{ disk_sn | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | timeout: "{{ timeout | default(omit) }}" 18 | register: disks_info 19 | 20 | - name: Display VxRail Disk Information 21 | debug: 22 | msg: "{{disks_info}}" 23 | -------------------------------------------------------------------------------- /docs/samples/dns_change.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Change VxRail DNS Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Change DNS Settings 11 | dellemc.vxrail.dellemc_vxrail_system_dns_change: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | components: "{{ components | default(omit) }}" 16 | servers: "{{ servers | default(omit) }}" 17 | upstream_dns: "{{ upstream_dns | default(omit) }}" 18 | api_version_number: "{{ api_version_number | default(omit) }}" 19 | timeout: "{{ timeout | default(omit) }}" 20 | register: dns_change_info 21 | 22 | - name: Display DNS Change 23 | debug: 24 | msg: "{{dns_change_info}}" 25 | -------------------------------------------------------------------------------- /docs/samples/enable_callhome_v1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Enable call home functionality 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | serial_number: "{{ serial_number }}" 9 | connection_type: "{{ connection_type }}" 10 | #Optional, based on your enablement ways. 11 | pin_var: "{{ pin | default(omit) }}" 12 | access_key_var: "{{ access_key | default(omit) }}" 13 | proxy_type_var: "{{ proxy_type | default(omit) }}" 14 | proxy_address_var: "{{ proxy_address | default(omit) }}" 15 | proxy_protocol_var: "{{ proxy_protocol | default(omit) }}" 16 | proxy_port_var: "{{ proxy_port | default(omit) }}" 17 | gateways_host_var: "{{ gateways_host | default(omit) }}" 18 | gateways_port_var: "{{ gateways_port | default(omit) }}" 19 | customer_contact_order_var: "{{ customer_contact_order | default(omit) }}" 20 | 21 | tasks: 22 | - name: Enable call home functionality 23 | dellemc.vxrail.dellemc_vxrail_callhome_enable: 24 | vxmip: "{{ vxmip }}" 25 | vcadmin: "{{ vcadmin }}" 26 | vcpasswd: "{{ vcpasswd }}" 27 | serial_number: "{{ serial_number }}" 28 | connection_type: "{{ connection_type }}" 29 | pin: "{{ pin_var }}" 30 | access_key: "{{ access_key_var }}" 31 | proxy_type: "{{ proxy_type_var }}" 32 | proxy_protocol: "{{ proxy_protocol_var }}" 33 | proxy_address: "{{ proxy_address_var }}" 34 | proxy_port: "{{ proxy_port_var }}" 35 | proxy_user: "{{ proxy_user | default(omit) }}" 36 | proxy_passwd: "{{ proxy_passwd | default(omit) }}" 37 | gateways_host: "{{ gateways_host_var }}" 38 | gateways_port: "{{ gateways_port_var }}" 39 | customer_contact_order: "{{ customer_contact_order_var }}" 40 | customer_first_name: "{{ customer_first_name | default(omit) }}" 41 | customer_last_name: "{{ customer_last_name | default(omit) }}" 42 | customer_phone_number: "{{ customer_phone_number | default(omit) }}" 43 | customer_email_address: "{{ customer_email_address | default(omit) }}" 44 | customer_pref_language: "{{ customer_pref_language | default(omit) }}" 45 | timeout: "{{ timeout | default(omit) }}" 46 | api_version_number: "{{ api_version_number | default(omit) }}" 47 | register: Result 48 | 49 | - name: Display Enable call home functionality result 50 | debug: 51 | msg: "{{Result}}" 52 | -------------------------------------------------------------------------------- /docs/samples/enable_callhome_v2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Enable call home functionality 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | serial_number: "{{ serial_number }}" 9 | connection_type: "{{ connection_type }}" 10 | ip_version: "{{ ip_version | default(omit) }}" 11 | api_version_number: "{{ api_version_number | default(omit) }}" 12 | #Optional, based on your enablement ways. 13 | pin_var: "{{ pin | default(omit) }}" 14 | access_key_var: "{{ access_key | default(omit) }}" 15 | proxy_type_var: "{{ proxy_type | default(omit) }}" 16 | proxy_address_var: "{{ proxy_address | default(omit) }}" 17 | proxy_protocol_var: "{{ proxy_protocol | default(omit) }}" 18 | proxy_port_var: "{{ proxy_port | default(omit) }}" 19 | gateways_host_var: "{{ gateways_host | default(omit) }}" 20 | gateways_port_var: "{{ gateways_port | default(omit) }}" 21 | customer_contact_order_var: "{{ customer_contact_order | default(omit) }}" 22 | 23 | 24 | tasks: 25 | - name: Enable call home functionality 26 | dellemc.vxrail.dellemc_vxrail_callhome_enable: 27 | vxmip: "{{ vxmip }}" 28 | vcadmin: "{{ vcadmin }}" 29 | vcpasswd: "{{ vcpasswd }}" 30 | serial_number: "{{ serial_number }}" 31 | connection_type: "{{ connection_type }}" 32 | pin: "{{ pin_var }}" 33 | access_key: "{{ access_key_var }}" 34 | proxy_type: "{{ proxy_type_var }}" 35 | proxy_protocol: "{{ proxy_protocol_var }}" 36 | proxy_address: "{{ proxy_address_var }}" 37 | proxy_port: "{{ proxy_port_var }}" 38 | proxy_user: "{{ proxy_user | default(omit) }}" 39 | proxy_passwd: "{{ proxy_passwd | default(omit) }}" 40 | gateways_host: "{{ gateways_host_var }}" 41 | gateways_port: "{{ gateways_port_var }}" 42 | customer_contact_order: "{{ customer_contact_order_var }}" 43 | customer_first_name: "{{ customer_first_name | default(omit) }}" 44 | customer_last_name: "{{ customer_last_name | default(omit) }}" 45 | customer_phone_number: "{{ customer_phone_number | default(omit) }}" 46 | customer_email_address: "{{ customer_email_address | default(omit) }}" 47 | customer_pref_language: "{{ customer_pref_language | default(omit) }}" 48 | timeout: "{{ timeout | default(omit) }}" 49 | ip_version: "{{ ip_version | default(omit) }}" 50 | api_version_number: "{{ api_version_number | default(omit) }}" 51 | register: Result 52 | 53 | - name: Display Enable call home functionality result 54 | debug: 55 | msg: "{{Result}}" 56 | -------------------------------------------------------------------------------- /docs/samples/export_cvs_compliance_report.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Export cvs compliance report 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | output_file_path: "{{ output_file_path }}" 9 | 10 | tasks: 11 | - name: Start to export cvs compliance report 12 | dellemc.vxrail.dellemc_vxrail_export_cvs_compliance_report: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | group_by: "{{ group_by | default(omit) }}" 17 | format: "{{ format | default(omit) }}" 18 | ids: "{{ ids | default(omit) }}" 19 | output_file_path: "{{ output_file_path }}" 20 | timeout: "{{ timeout | default(omit) }}" 21 | api_version_number: "{{ api_version_number | default(omit) }}" 22 | register: export_cvs_compliance_report 23 | 24 | - name: Get cvs compliance report result 25 | debug: 26 | msg: "{{export_cvs_compliance_report}}" 27 | -------------------------------------------------------------------------------- /docs/samples/get_all_certcontent.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Return all of certificates that stored in VXM trust store 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Return all certificate content that stored in VXM trust store 11 | dellemc.vxrail.dellemc_vxrail_certificates_get_all_info: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | api_version_number: "{{ api_version_number | default(omit) }}" 16 | register: content_info 17 | 18 | - name: Display all certificates content 19 | debug: 20 | msg: "{{content_info}}" -------------------------------------------------------------------------------- /docs/samples/get_certcontent.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Return all of fingerprints of certificates that stored in VXM trust store 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | fingerprint: "{{ fingerprint }}" 9 | 10 | tasks: 11 | - name: Return a certificate content 12 | dellemc.vxrail.dellemc_vxrail_certificates_getcontent: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | fingerprint: "{{ fingerprint }}" 17 | api_version_number: "{{ api_version_number | default(omit) }}" 18 | register: content_info 19 | 20 | - name: Display a certificate content 21 | debug: 22 | msg: "{{content_info}}" -------------------------------------------------------------------------------- /docs/samples/get_fingerprints.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Return all of fingerprints of certificates that stored in VXM trust store 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Return a fingerprint list 11 | dellemc.vxrail.dellemc_vxrail_certificates_getfingerprints: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | api_version_number: "{{ api_version_number | default(omit) }}" 16 | register: fingerprints_info 17 | 18 | - name: Display a fingerprint list 19 | debug: 20 | msg: "{{fingerprints_info}}" -------------------------------------------------------------------------------- /docs/samples/host_shutdown.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Shut Down a specific VxRail Host 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | host_sn: "{{ host_sn }}" 9 | 10 | tasks: 11 | - name: Perform Host Shutdown 12 | dellemc.vxrail.dellemc_vxrail_host_shutdown: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | host_sn: "{{ host_sn }}" 17 | dryrun: "{{ dryrun | default(omit) }}" 18 | evacuate_poweredoff_vms: "{{ evacuate_poweredoff_vms | default(omit) }}" 19 | timeout: "{{ timeout | default(omit) }}" 20 | api_version_number: "{{ api_version_number | default(omit) }}" 21 | async: 1800 22 | poll: 0 23 | register: request_info 24 | 25 | - name: Check if host shutdown job is completed 26 | async_status: 27 | jid: "{{ request_info.ansible_job_id }}" 28 | register: job_result 29 | until: job_result.finished 30 | retries: 100 31 | delay: 30 32 | 33 | - name: Display Host Shutdown Information 34 | debug: 35 | msg: "{{ job_result }}" 36 | 37 | -------------------------------------------------------------------------------- /docs/samples/hostsinfo.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve VxRail Hosts Information with with /hosts and /hosts/{sn} APIs 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get Hosts Information 11 | dellemc.vxrail.dellemc_vxrail_hosts_get: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | host_sn : "{{ host_sn | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | register: hosts_info 18 | 19 | - name: Display Hosts Information 20 | debug: 21 | msg: "{{hosts_info}}" -------------------------------------------------------------------------------- /docs/samples/idrac_add_user.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Add VxRail iDRAC User 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | sn: "{{ sn }}" 9 | id: "{{ id }}" 10 | name: "{{ name }}" 11 | password: "{{ password }}" 12 | privilege: "{{ privilege }}" 13 | 14 | tasks: 15 | - name: Add iDRAC User 16 | dellemc.vxrail.dellemc_vxrail_idrac_adduser: 17 | vxmip: "{{ vxmip }}" 18 | vcadmin: "{{ vcadmin }}" 19 | vcpasswd: "{{ vcpasswd }}" 20 | sn: "{{ sn }}" 21 | id: "{{ id }}" 22 | name: "{{ name }}" 23 | password: "{{ password }}" 24 | privilege: "{{ privilege }}" 25 | timeout: "{{ timeout | default(omit) }}" 26 | api_version_number: "{{ api_version_number | default(omit) }}" 27 | async: 300 28 | poll: 0 29 | register: request_info 30 | 31 | - name: Check if iDRAC user account has been added 32 | async_status: 33 | jid: "{{ request_info.ansible_job_id }}" 34 | register: job_result 35 | until: job_result.finished 36 | retries: 10 37 | delay: 30 38 | 39 | - name: Display status of iDRAC user account has been added 40 | debug: 41 | msg: "{{ job_result }}" 42 | -------------------------------------------------------------------------------- /docs/samples/idrac_available_user_slot_ids.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve available iDRAC user slot IDs 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | host_sn: "{{ host_sn }}" 9 | 10 | tasks: 11 | - name: Retrieve available iDRAC user slot IDs 12 | dellemc.vxrail.dellemc_vxrail_idrac_getavailableuserids: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | host_sn: "{{ host_sn }}" 17 | timeout: "{{ timeout | default(omit) }}" 18 | api_version_number: "{{ api_version_number | default(omit) }}" 19 | register: idrac_ids 20 | 21 | - name: Display available iDRAC user slot IDs 22 | debug: 23 | msg: "{{idrac_ids}}" -------------------------------------------------------------------------------- /docs/samples/idrac_update_network_settings.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Update iDRAC network settings 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | sn: "{{ sn }}" 9 | ip_address: "{{ ip_address }}" 10 | netmask: "{{ netmask }}" 11 | gateway: "{{ gateway }}" 12 | ipv6_address: "{{ ipv6_address }}" 13 | ipv6_prefix_length: "{{ ipv6_prefix_length }}" 14 | ipv6_gateway: "{{ ipv6_gateway }}" 15 | ipv6_auto_config_enabled: "{{ ipv6_auto_config_enabled }}" 16 | vlan_id: "{{ vlan_id }}" 17 | 18 | tasks: 19 | - name: Update iDRAC network settings 20 | dellemc.vxrail.dellemc_vxrail_idrac_updatenetwork: 21 | vxmip: "{{ vxmip }}" 22 | vcadmin: "{{ vcadmin }}" 23 | vcpasswd: "{{ vcpasswd }}" 24 | sn: "{{ sn }}" 25 | ip_address: "{{ ip_address }}" 26 | netmask: "{{ netmask }}" 27 | gateway: "{{ gateway }}" 28 | dhcp_enabled: "{{ dhcp_enabled | default(omit) }}" 29 | ipv6_address: "{{ ipv6_address }}" 30 | ipv6_prefix_length: "{{ ipv6_prefix_length }}" 31 | ipv6_gateway: "{{ ipv6_gateway }}" 32 | ipv6_auto_config_enabled: "{{ ipv6_auto_config_enabled }}" 33 | vlan_id: "{{ vlan_id }}" 34 | vlan_priority: "{{ vlan_priority | default(omit) }}" 35 | timeout: "{{ timeout | default(omit) }}" 36 | api_version_number: "{{ api_version_number | default(omit) }}" 37 | async: 300 38 | poll: 0 39 | register: request_info 40 | 41 | - name: Check if iDRAC network settings have been updated 42 | async_status: 43 | jid: "{{ request_info.ansible_job_id }}" 44 | register: job_result 45 | until: job_result.finished 46 | retries: 10 47 | delay: 30 48 | 49 | - name: Display status of iDRAC network settings update request 50 | debug: 51 | msg: "{{ job_result }}" -------------------------------------------------------------------------------- /docs/samples/idrac_update_user_account_v1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Update iDRAC user account information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | sn: "{{ sn }}" 9 | id: "{{ id }}" 10 | name: "{{ name }}" 11 | password: "{{ password }}" 12 | privilege: "{{ privilege }}" 13 | api_version_number: 1 14 | 15 | tasks: 16 | - name: Update iDRAC user account information 17 | dellemc.vxrail.dellemc_vxrail_idrac_update_useraccount: 18 | vxmip: "{{ vxmip }}" 19 | vcadmin: "{{ vcadmin }}" 20 | vcpasswd: "{{ vcpasswd }}" 21 | sn: "{{ sn }}" 22 | id: "{{ id }}" 23 | name: "{{ name }}" 24 | privilege: "{{ privilege }}" 25 | password: "{{ password }}" 26 | timeout: "{{ timeout | default(omit) }}" 27 | api_version_number: "{{ api_version_number | default(omit) }}" 28 | async: 1000 29 | poll: 0 30 | register: request_info 31 | 32 | - name: Check if iDRAC user account information has been updated 33 | async_status: 34 | jid: "{{ request_info.ansible_job_id }}" 35 | register: job_result 36 | until: job_result.finished 37 | retries: 100 38 | delay: 30 39 | 40 | - name: Display if iDRAC user account information has been updated 41 | debug: 42 | msg: "{{ job_result }}" 43 | -------------------------------------------------------------------------------- /docs/samples/idrac_update_user_account_v2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Update iDRAC user account information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | sn: "{{ sn }}" 9 | id: "{{ id }}" 10 | name: "{{ name }}" 11 | current_password: "{{ current_password }}" 12 | new_password: "{{ new_password }}" 13 | # Privilege for the iDRAC user account (limited to 'ADMIN' in V2 API) 14 | privilege: "{{ privilege }}" 15 | 16 | tasks: 17 | - name: Update iDRAC user account information 18 | dellemc.vxrail.dellemc_vxrail_idrac_update_useraccount: 19 | vxmip: "{{ vxmip }}" 20 | vcadmin: "{{ vcadmin }}" 21 | vcpasswd: "{{ vcpasswd }}" 22 | sn: "{{ sn }}" 23 | id: "{{ id }}" 24 | name: "{{ name }}" 25 | privilege: "{{ privilege }}" 26 | current_password: "{{ current_password }}" 27 | new_password: "{{ new_password }}" 28 | timeout: "{{ timeout | default(omit) }}" 29 | api_version_number: "{{ api_version_number | default(omit) }}" 30 | -------------------------------------------------------------------------------- /docs/samples/idracnetwork.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve VxRail iDRAC Network Settings 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | sn: "{{ sn }}" 9 | 10 | tasks: 11 | - name: Get iDRAC Network Settings 12 | dellemc.vxrail.dellemc_vxrail_idrac_getnetwork: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | sn: "{{ sn }}" 17 | timeout: "{{ timeout | default(omit) }}" 18 | api_version_number: "{{ api_version_number | default(omit) }}" 19 | register: idrac_info 20 | - name: Display Idrac Network Settings 21 | debug: 22 | msg: "{{ idrac_info }}" -------------------------------------------------------------------------------- /docs/samples/idracusers.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve VxRail iDRAC Users Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | sn: "{{ sn }}" 9 | 10 | tasks: 11 | - name: Get iDRAC Users 12 | dellemc.vxrail.dellemc_vxrail_idrac_getusers: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | sn: "{{ sn }}" 17 | timeout: "{{ timeout | default(omit) }}" 18 | api_version_number: "{{ api_version_number | default(omit) }}" 19 | register: iDRAC_Users 20 | - name: Display Idrac Users 21 | debug: 22 | msg: "{{ iDRAC_Users }}" -------------------------------------------------------------------------------- /docs/samples/internet_mode_change.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Change VxRail Internet Mode Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | is_dark_site: "{{ is_dark_site }}" 9 | 10 | tasks: 11 | - name: Change Internet Mode Information 12 | dellemc.vxrail.dellemc_vxrail_system_internet_mode_change: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | is_dark_site: "{{ is_dark_site }}" 17 | api_version_number: "{{ api_version_number | default(omit) }}" 18 | timeout: "{{ timeout | default(omit) }}" 19 | register: internet_mode_change_info 20 | 21 | - name: Display Internet Mode Change 22 | debug: 23 | msg: "{{internet_mode_change_info}}" 24 | -------------------------------------------------------------------------------- /docs/samples/internet_mode_info.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve VxRail Internet Mode Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get Internet Mode Information 11 | dellemc.vxrail.dellemc_vxrail_system_get_internet_mode: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | api_version_number: "{{ api_version_number | default(omit) }}" 16 | timeout: "{{ timeout | default(omit) }}" 17 | register: internet_mode_info 18 | 19 | - name: Display Internet Mode 20 | debug: 21 | msg: "{{internet_mode_info}}" 22 | -------------------------------------------------------------------------------- /docs/samples/layer3_add_segment.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Create a new Cluster Layer3 Segment 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | ip_version: "{{ ip_version }}" 9 | management_gateway: "{{ management_gateway }}" 10 | management_gateway_ipv6: "{{ management_gateway_ipv6 }}" 11 | management_netmask: "{{ management_netmask }}" 12 | management_prefix_length_ipv6: "{{ management_prefix_length_ipv6 }}" 13 | management_topology: "{{ management_topology }}" 14 | management_vlan: "{{ management_vlan }}" 15 | proxy_ip: "{{ proxy_ip }}" 16 | segment_label: "{{ segment_label }}" 17 | vmotion_gateway: "{{ vmotion_gateway }}" 18 | vmotion_gateway_ipv6: "{{ vmotion_gateway_ipv6 }}" 19 | vmotion_init_gateway: "{{ vmotion_init_gateway }}" 20 | vmotion_init_gateway_ipv6: "{{ vmotion_init_gateway_ipv6 }}" 21 | vmotion_netmask: "{{ vmotion_netmask }}" 22 | vmotion_prefix_length_ipv6: "{{ vmotion_prefix_length_ipv6 }}" 23 | vmotion_topology: "{{ vmotion_topology }}" 24 | vmotion_vlan: "{{ vmotion_vlan }}" 25 | vsan_gateway: "{{ vsan_gateway }}" 26 | vsan_gateway_ipv6: "{{ vsan_gateway_ipv6 }}" 27 | vsan_init_gateway: "{{ vsan_init_gateway }}" 28 | vsan_init_gateway_ipv6: "{{ vsan_init_gateway_ipv6 }}" 29 | vsan_netmask: "{{ vsan_netmask }}" 30 | vsan_prefix_length_ipv6: "{{ vsan_prefix_length_ipv6 }}" 31 | vsan_topology: "{{ vsan_topology }}" 32 | vsan_vlan: "{{ vsan_vlan }}" 33 | version: "{{ version }}" 34 | 35 | tasks: 36 | - name: Add Cluster Layer3 Segment 37 | dellemc.vxrail.dellemc_vxrail_cluster_layer3_add_segment: 38 | vxmip: "{{ vxmip }}" 39 | vcadmin: "{{ vcadmin }}" 40 | vcpasswd: "{{ vcpasswd }}" 41 | ip_version: "{{ ip_version }}" 42 | management_gateway: "{{ management_gateway }}" 43 | management_gateway_ipv6: "{{ management_gateway_ipv6 }}" 44 | management_netmask: "{{ management_netmask }}" 45 | management_prefix_length_ipv6: "{{ management_prefix_length_ipv6 }}" 46 | management_topology: "{{ management_topology }}" 47 | management_vlan: "{{ management_vlan }}" 48 | proxy_ip: "{{ proxy_ip }}" 49 | segment_label: "{{ segment_label }}" 50 | vmotion_gateway: "{{ vmotion_gateway }}" 51 | vmotion_gateway_ipv6: "{{ vmotion_gateway_ipv6 }}" 52 | vmotion_init_gateway: "{{ vmotion_init_gateway }}" 53 | vmotion_init_gateway_ipv6: "{{ vmotion_init_gateway_ipv6 }}" 54 | vmotion_netmask: "{{ vmotion_netmask }}" 55 | vmotion_prefix_length_ipv6: "{{ vmotion_prefix_length_ipv6 }}" 56 | vmotion_topology: "{{ vmotion_topology }}" 57 | vmotion_vlan: "{{ vmotion_vlan }}" 58 | vsan_gateway: "{{ vsan_gateway }}" 59 | vsan_gateway_ipv6: "{{ vsan_gateway_ipv6 }}" 60 | vsan_init_gateway: "{{ vsan_init_gateway }}" 61 | vsan_init_gateway_ipv6: "{{ vsan_init_gateway_ipv6 }}" 62 | vsan_netmask: "{{ vsan_netmask }}" 63 | vsan_prefix_length_ipv6: "{{ vsan_prefix_length_ipv6 }}" 64 | vsan_topology: "{{ vsan_topology }}" 65 | vsan_vlan: "{{ vsan_vlan }}" 66 | version: "{{ version }}" 67 | api_version_number: "{{ api_version_number | default(omit) }}" 68 | register: add_segment_message_info 69 | 70 | - name: Display added Cluster Layer3 Segment Information 71 | debug: 72 | msg: "{{add_segment_message_info}}" -------------------------------------------------------------------------------- /docs/samples/layer3_del_segment.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Remove Cluster Layer3 Segment Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | segment_label: "{{ segment_label }}" 9 | 10 | tasks: 11 | - name: Remove Cluster Layer3 Segment 12 | dellemc.vxrail.dellemc_vxrail_cluster_layer3_remove_segment: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | segment_label: "{{ segment_label }}" 17 | api_version_number: "{{ api_version_number | default(omit) }}" 18 | register: segment_remove_info 19 | 20 | - name: Display Remove Cluster Layer3 Segment Information 21 | debug: 22 | msg: "{{segment_remove_info}}" -------------------------------------------------------------------------------- /docs/samples/layer3_get_segment_bylabel.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve Cluster Layer3 Segment Information By Label 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | segment_label: "{{ segment_label }}" 9 | 10 | tasks: 11 | - name: Get Cluster Layer3 Segment By Label 12 | dellemc.vxrail.dellemc_vxrail_cluster_layer3_get_segment_bylabel: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | segment_label: "{{ segment_label }}" 17 | api_version_number: "{{ api_version_number | default(omit) }}" 18 | register: segment_bylabel_info 19 | 20 | - name: Display Cluster Layer3 Segment Information By Label 21 | debug: 22 | msg: "{{segment_bylabel_info}}" -------------------------------------------------------------------------------- /docs/samples/layer3_get_segment_health.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve Cluster Layer3 Segment Health Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | segment_label: "{{ segment_label }}" 9 | 10 | tasks: 11 | - name: Get Cluster Layer3 Segment Health 12 | dellemc.vxrail.dellemc_vxrail_cluster_layer3_get_segment_health: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | segment_label: "{{ segment_label }}" 17 | api_version_number: "{{ api_version_number | default(omit) }}" 18 | register: segment_health_info 19 | 20 | - name: Display Cluster Layer3 Segment Health Information 21 | debug: 22 | msg: "{{segment_health_info}}" -------------------------------------------------------------------------------- /docs/samples/layer3_get_segments.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve Cluster Layer3 Segments Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get Cluster Layer3 Segments 11 | dellemc.vxrail.dellemc_vxrail_cluster_layer3_get_segments: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | api_version_number: "{{ api_version_number | default(omit) }}" 16 | register: segments_info 17 | 18 | - name: Display Cluster Layer3 Segments Information 19 | debug: 20 | msg: "{{segments_info}}" -------------------------------------------------------------------------------- /docs/samples/layer3_update_segment.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Update Cluster Layer3 Segment Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | ip_version: "{{ ip_version }}" 9 | management_gateway: "{{ management_gateway }}" 10 | management_gateway_ipv6: "{{ management_gateway_ipv6 }}" 11 | management_netmask: "{{ management_netmask }}" 12 | management_prefix_length_ipv6: "{{ management_prefix_length_ipv6 }}" 13 | management_topology: "{{ management_topology }}" 14 | management_vlan: "{{ management_vlan }}" 15 | proxy_ip: "{{ proxy_ip }}" 16 | segment_label: "{{ segment_label }}" 17 | new_segment_label: "{{ new_segment_label }}" 18 | vmotion_gateway: "{{ vmotion_gateway }}" 19 | vmotion_gateway_ipv6: "{{ vmotion_gateway_ipv6 }}" 20 | vmotion_init_gateway: "{{ vmotion_init_gateway }}" 21 | vmotion_init_gateway_ipv6: "{{ vmotion_init_gateway_ipv6 }}" 22 | vmotion_netmask: "{{ vmotion_netmask }}" 23 | vmotion_prefix_length_ipv6: "{{ vmotion_prefix_length_ipv6 }}" 24 | vmotion_topology: "{{ vmotion_topology }}" 25 | vmotion_vlan: "{{ vmotion_vlan }}" 26 | vsan_gateway: "{{ vsan_gateway }}" 27 | vsan_gateway_ipv6: "{{ vsan_gateway_ipv6 }}" 28 | vsan_init_gateway: "{{ vsan_init_gateway }}" 29 | vsan_init_gateway_ipv6: "{{ vsan_init_gateway_ipv6 }}" 30 | vsan_netmask: "{{ vsan_netmask }}" 31 | vsan_prefix_length_ipv6: "{{ vsan_prefix_length_ipv6 }}" 32 | vsan_topology: "{{ vsan_topology }}" 33 | vsan_vlan: "{{ vsan_vlan }}" 34 | version: "{{ version }}" 35 | 36 | tasks: 37 | - name: Update Cluster Layer3 Segment 38 | dellemc.vxrail.dellemc_vxrail_cluster_layer3_update_segment: 39 | vxmip: "{{ vxmip }}" 40 | vcadmin: "{{ vcadmin }}" 41 | vcpasswd: "{{ vcpasswd }}" 42 | ip_version: "{{ ip_version }}" 43 | management_gateway: "{{ management_gateway }}" 44 | management_gateway_ipv6: "{{ management_gateway_ipv6 }}" 45 | management_netmask: "{{ management_netmask }}" 46 | management_prefix_length_ipv6: "{{ management_prefix_length_ipv6 }}" 47 | management_topology: "{{ management_topology }}" 48 | management_vlan: "{{ management_vlan }}" 49 | proxy_ip: "{{ proxy_ip }}" 50 | segment_label: "{{ segment_label }}" 51 | new_segment_label: "{{ new_segment_label }}" 52 | vmotion_gateway: "{{ vmotion_gateway }}" 53 | vmotion_gateway_ipv6: "{{ vmotion_gateway_ipv6 }}" 54 | vmotion_init_gateway: "{{ vmotion_init_gateway }}" 55 | vmotion_init_gateway_ipv6: "{{ vmotion_init_gateway_ipv6 }}" 56 | vmotion_netmask: "{{ vmotion_netmask }}" 57 | vmotion_prefix_length_ipv6: "{{ vmotion_prefix_length_ipv6 }}" 58 | vmotion_topology: "{{ vmotion_topology }}" 59 | vmotion_vlan: "{{ vmotion_vlan }}" 60 | vsan_gateway: "{{ vsan_gateway }}" 61 | vsan_gateway_ipv6: "{{ vsan_gateway_ipv6 }}" 62 | vsan_init_gateway: "{{ vsan_init_gateway }}" 63 | vsan_init_gateway_ipv6: "{{ vsan_init_gateway_ipv6 }}" 64 | vsan_netmask: "{{ vsan_netmask }}" 65 | vsan_prefix_length_ipv6: "{{ vsan_prefix_length_ipv6 }}" 66 | vsan_topology: "{{ vsan_topology }}" 67 | vsan_vlan: "{{ vsan_vlan }}" 68 | version: "{{ version }}" 69 | api_version_number: "{{ api_version_number | default(omit) }}" 70 | register: update_segment_info 71 | 72 | - name: Display updated Cluster Layer3 Segment Information 73 | debug: 74 | msg: "{{update_segment_info}}" -------------------------------------------------------------------------------- /docs/samples/layer3_update_segment_label.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Update Cluster Layer3 Segment Label Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | segment_label: "{{ segment_label }}" 9 | new_segment_label: "{{ new_segment_label }}" 10 | 11 | tasks: 12 | - name: Update Cluster Layer3 Segment Label 13 | dellemc.vxrail.dellemc_vxrail_cluster_layer3_update_segment_label: 14 | vxmip: "{{ vxmip }}" 15 | vcadmin: "{{ vcadmin }}" 16 | vcpasswd: "{{ vcpasswd }}" 17 | segment_label: "{{ segment_label }}" 18 | new_segment_label: "{{ new_segment_label }}" 19 | api_version_number: "{{ api_version_number | default(omit) }}" 20 | register: segment_label_update_info 21 | 22 | - name: Display Update Cluster Layer3 Segment Label Information 23 | debug: 24 | msg: "{{segment_label_update_info}}" -------------------------------------------------------------------------------- /docs/samples/lcm_advisory_report.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Generate LCM Advisory report 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Start to generate lcm advisory report 11 | dellemc.vxrail.dellemc_vxrail_lcm_advisory_report: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | timeout: "{{ timeout | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | async: 1800 18 | poll: 0 19 | register: lcm_advisory_report 20 | - name: Check if LCM advisory report is generated...The generation is still ongoing. 21 | async_status: 22 | jid: "{{ lcm_advisory_report.ansible_job_id }}" 23 | register: job_result 24 | until: job_result.finished 25 | retries: 100 26 | delay: 30 27 | - name: Get LCM Advisory report Result 28 | debug: 29 | msg: "{{job_result}}" -------------------------------------------------------------------------------- /docs/samples/lcm_precheck.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: LCM Precheck 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | bundle_file_locator: "{{ bundle_file_locator }}" 9 | vc_root_account: "{{ vc_root_account }}" 10 | vc_root_passwd: "{{ vc_root_passwd }}" 11 | vxm_root_account: "{{ vxm_root_account }}" 12 | vxm_root_passwd: "{{ vxm_root_passwd }}" 13 | 14 | tasks: 15 | - name: Start to do LCM Precheck 16 | dellemc.vxrail.dellemc_vxrail_lcm_precheck: 17 | vxmip: "{{ vxmip }}" 18 | vcadmin: "{{ vcadmin }}" 19 | vcpasswd: "{{ vcpasswd }}" 20 | bundle_file_locator: "{{ bundle_file_locator }}" 21 | vc_root_account: "{{ vc_root_account }}" 22 | vc_root_passwd: "{{ vc_root_passwd }}" 23 | vxm_root_account: "{{ vxm_root_account }}" 24 | vxm_root_passwd: "{{ vxm_root_passwd }}" 25 | timeout: "{{ timeout | default(omit) }}" 26 | api_version_number: "{{ api_version_number | default(omit) }}" 27 | async: 1800 28 | poll: 0 29 | register: lcm_precheck_status 30 | - name: Check if LCM Precheck is completed...The precheck is still ongoing. 31 | async_status: 32 | jid: "{{ lcm_precheck_status.ansible_job_id }}" 33 | register: job_result 34 | until: job_result.finished 35 | retries: 100 36 | delay: 30 37 | - name: Get LCM Precheck Result 38 | debug: 39 | msg: "{{job_result}}" -------------------------------------------------------------------------------- /docs/samples/lcm_upgrade_retry.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retry Failed LCM Upgrade 3 | hosts: localhost 4 | vars: 5 | ### Required ### 6 | vxmip_var: "{{ vxmip }}" 7 | vcadmin_var: "{{ vcadmin }}" 8 | vcpasswd_var: "{{ vcpasswd }}" 9 | ### Optional for script, specify the API version to perform the upgrade. If not specified, the default value is the highest available version. ### 10 | api_version_number_var: "{{ api_version_number | default(omit) }}" 11 | ### Optional for script, specify the timeout for the upgrade. If not specified, the default value is 6 hours. ### 12 | timeout_var: "{{ timeout | default(omit) }}" 13 | 14 | 15 | tasks: 16 | - name: Retry the LCM Upgrade 17 | dellemc.vxrail.dellemc_vxrail_lcm_retry: 18 | vxmip: "{{ vxmip_var }}" 19 | vcadmin: "{{ vcadmin_var }}" 20 | vcpasswd: "{{ vcpasswd_var}}" 21 | api_version_number: "{{ api_version_number_var | default(omit) }}" 22 | timeout: "{{ timeout_var | default(omit) }}" 23 | async: 25200 24 | poll: 0 25 | register: lcm_status 26 | - name: Check if LCM Retry is completed...The upgrade is still ongoing. 27 | async_status: 28 | jid: "{{ lcm_status.ansible_job_id }}" 29 | register: job_result 30 | until: job_result.finished 31 | retries: 210 32 | delay: 120 33 | - name: Get LCM Result 34 | debug: 35 | msg: "{{job_result}}" 36 | 37 | -------------------------------------------------------------------------------- /docs/samples/lcm_upgrade_v1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: LCM upgrade v1. Supported in VxRail versions 4.5.3xx+, 4.7.x, 7.0.x. 3 | hosts: localhost 4 | vars: 5 | ### Required ### 6 | vxmip_var: "{{ vxmip }}" 7 | vcadmin_var: "{{ vcadmin }}" 8 | vcpasswd_var: "{{ vcpasswd }}" 9 | bundle_var: "{{ bundle }}" 10 | vc_root_account_var: "{{ vc_root_account }}" 11 | vc_root_passwd_var: "{{ vc_root_passwd }}" 12 | vxm_root_account_var: "{{ vxm_root_account }}" 13 | vxm_root_passwd_var: "{{ vxm_root_passwd }}" 14 | ### Optional ### 15 | psc_root_account_var: "{{ psc_root_account | default(omit) }}" 16 | psc_root_passwd_var: "{{ psc_root_passwd | default(omit) }}" 17 | source_vcsa_host_name_var: "{{ source_vcsa_host_name | default(omit) }}" 18 | source_vcsa_host_user_name_var: "{{ source_vcsa_host_user_name | default(omit) }}" 19 | source_vcsa_host_user_passwd_var: "{{ source_vcsa_host_user_passwd | default(omit) }}" 20 | source_psc_host_name_var: "{{ source_psc_host_name | default(omit) }}" 21 | source_psc_host_user_name_var: "{{ source_psc_host_user_name | default(omit) }}" 22 | source_psc_host_user_passwd_var: "{{ source_psc_host_user_passwd | default(omit) }}" 23 | target_vcsa_host_name_var: "{{ target_vcsa_host_name | default(omit) }}" 24 | target_vcsa_host_user_name_var: "{{ target_vcsa_host_user_name | default(omit) }}" 25 | target_vcsa_host_user_passwd_var: "{{ target_vcsa_host_user_passwd | default(omit) }}" 26 | temporary_ip_var: "{{ temporary_ip | default(omit) }}" 27 | temporary_gateway_var: "{{ temporary_gateway | default(omit) }}" 28 | temporary_netmask_var: "{{ temporary_netmask | default(omit) }}" 29 | ### Optional for script, specify the API version to perform the upgrade. If not specified, the default value is the highest available version. ### 30 | api_version_number_var: "1" 31 | ### Optional for script, specify the timeout for the upgrade. If not specified, the default value is 6 hours. ### 32 | timeout_var: "{{ timeout | default(omit) }}" 33 | 34 | 35 | tasks: 36 | - name: Start to upgrade with v1 37 | dellemc.vxrail.dellemc_vxrail_lcm: 38 | vxmip: "{{ vxmip_var }}" 39 | vcadmin: "{{ vcadmin_var }}" 40 | vcpasswd: "{{ vcpasswd_var}}" 41 | bundle: "{{ bundle_var }}" 42 | vc_root_account: "{{ vc_root_account_var }}" 43 | vc_root_passwd: "{{ vc_root_passwd_var }}" 44 | vxm_root_account: "{{ vxm_root_account_var }}" 45 | vxm_root_passwd: "{{ vxm_root_passwd_var }}" 46 | api_version_number: "{{ api_version_number_var }}" 47 | timeout: "{{ timeout_var }}" 48 | psc_root_account: "{{ psc_root_account_var }}" 49 | psc_root_passwd: "{{ psc_root_passwd_var }}" 50 | source_vcsa_host_name: "{{ source_vcsa_host_name_var }}" 51 | source_vcsa_host_user_name: "{{ source_vcsa_host_user_name_var }}" 52 | source_vcsa_host_user_passwd: "{{ source_vcsa_host_user_passwd_var }}" 53 | source_psc_host_name: "{{ source_psc_host_name_var }}" 54 | source_psc_host_user_name: "{{ source_psc_host_user_name_var }}" 55 | source_psc_host_user_passwd: "{{ source_psc_host_user_passwd_var }}" 56 | target_vcsa_host_name: "{{ target_vcsa_host_name_var }}" 57 | target_vcsa_host_user_name: "{{ target_vcsa_host_user_name_var }}" 58 | target_vcsa_host_user_passwd: "{{ target_vcsa_host_user_passwd_var }}" 59 | temporary_ip: "{{ temporary_ip_var }}" 60 | temporary_gateway: "{{ temporary_gateway_var }}" 61 | temporary_netmask: "{{ temporary_netmask_var }}" 62 | async: 25200 63 | poll: 0 64 | register: lcm_status 65 | - name: Check if LCM is completed...The upgrade is still ongoing. 66 | async_status: 67 | jid: "{{ lcm_status.ansible_job_id }}" 68 | register: job_result 69 | until: job_result.finished 70 | retries: 210 71 | delay: 120 72 | - name: Get LCM Result 73 | debug: 74 | msg: "{{job_result}}" 75 | 76 | -------------------------------------------------------------------------------- /docs/samples/lcm_upgrade_v2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: LCM upgrade v2. Supported in VxRail versions 4.7.410+, 7.0.x. 3 | hosts: localhost 4 | vars: 5 | ### Required ### 6 | vxmip_var: "{{ vxmip }}" 7 | vcadmin_var: "{{ vcadmin }}" 8 | vcpasswd_var: "{{ vcpasswd }}" 9 | bundle_var: "{{ bundle }}" 10 | vc_root_account_var: "{{ vc_root_account }}" 11 | vc_root_passwd_var: "{{ vc_root_passwd }}" 12 | vxm_root_account_var: "{{ vxm_root_account }}" 13 | vxm_root_passwd_var: "{{ vxm_root_passwd }}" 14 | ### Optional ### 15 | psc_root_account_var: "{{ psc_root_account | default(omit) }}" 16 | psc_root_passwd_var: "{{ psc_root_passwd | default(omit) }}" 17 | source_vcsa_host_name_var: "{{ source_vcsa_host_name | default(omit) }}" 18 | source_vcsa_host_user_name_var: "{{ source_vcsa_host_user_name | default(omit) }}" 19 | source_vcsa_host_user_passwd_var: "{{ source_vcsa_host_user_passwd | default(omit) }}" 20 | source_psc_host_name_var: "{{ source_psc_host_name | default(omit) }}" 21 | source_psc_host_user_name_var: "{{ source_psc_host_user_name | default(omit) }}" 22 | source_psc_host_user_passwd_var: "{{ source_psc_host_user_passwd | default(omit) }}" 23 | target_vcsa_host_name_var: "{{ target_vcsa_host_name | default(omit) }}" 24 | target_vcsa_host_user_name_var: "{{ target_vcsa_host_user_name | default(omit) }}" 25 | target_vcsa_host_user_passwd_var: "{{ target_vcsa_host_user_passwd | default(omit) }}" 26 | temporary_ip_var: "{{ temporary_ip | default(omit) }}" 27 | temporary_gateway_var: "{{ temporary_gateway | default(omit) }}" 28 | temporary_netmask_var: "{{ temporary_netmask | default(omit) }}" 29 | witness_username_var: "{{ witness_username | default(omit) }}" 30 | witness_password_var: "{{ witness_password | default(omit) }}" 31 | auto_witness_upgrade_var: "{{ auto_witness_upgrade | default(omit) }}" 32 | preferred_fault_domain_first_var: "{{ preferred_fault_domain_first | default(omit) }}" 33 | ### Optional for script, specify the API version to perform the upgrade. If not specified, the default value is the highest available version. ### 34 | api_version_number_var: "2" 35 | ### Optional for script, specify the timeout for the upgrade. If not specified, the default value is 6 hours. ### 36 | timeout_var: "{{ timeout | default(omit) }}" 37 | 38 | 39 | tasks: 40 | - name: Start to upgrade with v2 41 | dellemc.vxrail.dellemc_vxrail_lcm: 42 | vxmip: "{{ vxmip_var }}" 43 | vcadmin: "{{ vcadmin_var }}" 44 | vcpasswd: "{{ vcpasswd_var}}" 45 | bundle: "{{ bundle_var }}" 46 | vc_root_account: "{{ vc_root_account_var }}" 47 | vc_root_passwd: "{{ vc_root_passwd_var }}" 48 | vxm_root_account: "{{ vxm_root_account_var }}" 49 | vxm_root_passwd: "{{ vxm_root_passwd_var }}" 50 | api_version_number: "{{ api_version_number_var }}" 51 | timeout: "{{ timeout_var }}" 52 | psc_root_account: "{{ psc_root_account_var }}" 53 | psc_root_passwd: "{{ psc_root_passwd_var }}" 54 | source_vcsa_host_name: "{{ source_vcsa_host_name_var }}" 55 | source_vcsa_host_user_name: "{{ source_vcsa_host_user_name_var }}" 56 | source_vcsa_host_user_passwd: "{{ source_vcsa_host_user_passwd_var }}" 57 | source_psc_host_name: "{{ source_psc_host_name_var }}" 58 | source_psc_host_user_name: "{{ source_psc_host_user_name_var }}" 59 | source_psc_host_user_passwd: "{{ source_psc_host_user_passwd_var }}" 60 | target_vcsa_host_name: "{{ target_vcsa_host_name_var }}" 61 | target_vcsa_host_user_name: "{{ target_vcsa_host_user_name_var }}" 62 | target_vcsa_host_user_passwd: "{{ target_vcsa_host_user_passwd_var }}" 63 | temporary_ip: "{{ temporary_ip_var }}" 64 | temporary_gateway: "{{ temporary_gateway_var }}" 65 | temporary_netmask: "{{ temporary_netmask_var }}" 66 | witness_username: "{{ witness_username_var }}" 67 | witness_password: "{{ witness_password_var }}" 68 | auto_witness_upgrade: "{{ auto_witness_upgrade_var }}" 69 | preferred_fault_domain_first: "{{ preferred_fault_domain_first_var }}" 70 | async: 25200 71 | poll: 0 72 | register: lcm_status 73 | - name: Check if LCM is completed...The upgrade is still ongoing. 74 | async_status: 75 | jid: "{{ lcm_status.ansible_job_id }}" 76 | register: job_result 77 | until: job_result.finished 78 | retries: 210 79 | delay: 120 80 | - name: Get LCM Result 81 | debug: 82 | msg: "{{job_result}}" 83 | 84 | -------------------------------------------------------------------------------- /docs/samples/lcm_upgrade_v3.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: LCM upgrade v3. Supported in VxRail versions 7.0.100+. 3 | hosts: localhost 4 | vars: 5 | ### Required ### 6 | vxmip_var: "{{ vxmip }}" 7 | vcadmin_var: "{{ vcadmin }}" 8 | vcpasswd_var: "{{ vcpasswd }}" 9 | bundle_var: "{{ bundle }}" 10 | vc_root_account_var: "{{ vc_root_account }}" 11 | vc_root_passwd_var: "{{ vc_root_passwd }}" 12 | vxm_root_account_var: "{{ vxm_root_account }}" 13 | vxm_root_passwd_var: "{{ vxm_root_passwd }}" 14 | ### Optional ### 15 | source_vcsa_host_name_var: "{{ source_vcsa_host_name | default(omit) }}" 16 | source_vcsa_host_user_name_var: "{{ source_vcsa_host_user_name | default(omit) }}" 17 | source_vcsa_host_user_passwd_var: "{{ source_vcsa_host_user_passwd | default(omit) }}" 18 | target_vcsa_host_name_var: "{{ target_vcsa_host_name | default(omit) }}" 19 | target_vcsa_host_user_name_var: "{{ target_vcsa_host_user_name | default(omit) }}" 20 | target_vcsa_host_user_passwd_var: "{{ target_vcsa_host_user_passwd | default(omit) }}" 21 | temporary_ip_var: "{{ temporary_ip | default(omit) }}" 22 | temporary_gateway_var: "{{ temporary_gateway | default(omit) }}" 23 | temporary_netmask_var: "{{ temporary_netmask | default(omit) }}" 24 | witness_username_var: "{{ witness_username | default(omit) }}" 25 | witness_password_var: "{{ witness_password | default(omit) }}" 26 | auto_witness_upgrade_var: "{{ auto_witness_upgrade | default(omit) }}" 27 | preferred_fault_domain_first_var: "{{ preferred_fault_domain_first | default(omit) }}" 28 | ### Optional for script, specify the API version to perform the upgrade. If not specified, the default value is the highest available version. ### 29 | api_version_number_var: "3" 30 | ### Optional for script, specify the timeout for the upgrade. If not specified, the default value is 6 hours. ### 31 | timeout_var: "{{ timeout | default(omit) }}" 32 | 33 | 34 | tasks: 35 | - name: Start to upgrade with v3 36 | dellemc.vxrail.dellemc_vxrail_lcm: 37 | vxmip: "{{ vxmip_var }}" 38 | vcadmin: "{{ vcadmin_var }}" 39 | vcpasswd: "{{ vcpasswd_var}}" 40 | bundle: "{{ bundle_var }}" 41 | vc_root_account: "{{ vc_root_account_var }}" 42 | vc_root_passwd: "{{ vc_root_passwd_var }}" 43 | vxm_root_account: "{{ vxm_root_account_var }}" 44 | vxm_root_passwd: "{{ vxm_root_passwd_var }}" 45 | api_version_number: "{{ api_version_number_var }}" 46 | timeout: "{{ timeout_var }}" 47 | source_vcsa_host_name: "{{ source_vcsa_host_name_var }}" 48 | source_vcsa_host_user_name: "{{ source_vcsa_host_user_name_var }}" 49 | source_vcsa_host_user_passwd: "{{ source_vcsa_host_user_passwd_var }}" 50 | target_vcsa_host_name: "{{ target_vcsa_host_name_var }}" 51 | target_vcsa_host_user_name: "{{ target_vcsa_host_user_name_var }}" 52 | target_vcsa_host_user_passwd: "{{ target_vcsa_host_user_passwd_var }}" 53 | temporary_ip: "{{ temporary_ip_var }}" 54 | temporary_gateway: "{{ temporary_gateway_var }}" 55 | temporary_netmask: "{{ temporary_netmask_var }}" 56 | witness_username: "{{ witness_username_var }}" 57 | witness_password: "{{ witness_password_var }}" 58 | auto_witness_upgrade: "{{ auto_witness_upgrade_var }}" 59 | preferred_fault_domain_first: "{{ preferred_fault_domain_first_var }}" 60 | async: 25200 61 | poll: 0 62 | register: lcm_status 63 | - name: Check if LCM is completed...The upgrade is still ongoing. 64 | async_status: 65 | jid: "{{ lcm_status.ansible_job_id }}" 66 | register: job_result 67 | until: job_result.finished 68 | retries: 210 69 | delay: 120 70 | - name: Get LCM Result 71 | debug: 72 | msg: "{{job_result}}" 73 | 74 | -------------------------------------------------------------------------------- /docs/samples/lcm_upgrade_v4.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: LCM upgrade v4. Supported in VxRail versions 7.0.240+. 3 | hosts: localhost 4 | vars: 5 | ### Required ### 6 | vxmip_var: "{{ vxmip }}" 7 | vcadmin_var: "{{ vcadmin }}" 8 | vcpasswd_var: "{{ vcpasswd }}" 9 | bundle_var: "{{ bundle }}" 10 | vc_root_account_var: "{{ vc_root_account }}" 11 | vc_root_passwd_var: "{{ vc_root_passwd }}" 12 | vxm_root_account_var: "{{ vxm_root_account }}" 13 | vxm_root_passwd_var: "{{ vxm_root_passwd }}" 14 | ### Optional ### 15 | source_vcsa_host_name_var: "{{ source_vcsa_host_name | default(omit) }}" 16 | source_vcsa_host_user_name_var: "{{ source_vcsa_host_user_name | default(omit) }}" 17 | source_vcsa_host_user_passwd_var: "{{ source_vcsa_host_user_passwd | default(omit) }}" 18 | target_vcsa_host_name_var: "{{ target_vcsa_host_name | default(omit) }}" 19 | target_vcsa_host_user_name_var: "{{ target_vcsa_host_user_name | default(omit) }}" 20 | target_vcsa_host_user_passwd_var: "{{ target_vcsa_host_user_passwd | default(omit) }}" 21 | temporary_ip_var: "{{ temporary_ip | default(omit) }}" 22 | temporary_gateway_var: "{{ temporary_gateway | default(omit) }}" 23 | temporary_netmask_var: "{{ temporary_netmask | default(omit) }}" 24 | witness_username_var: "{{ witness_username | default(omit) }}" 25 | witness_password_var: "{{ witness_password | default(omit) }}" 26 | auto_witness_upgrade_var: "{{ auto_witness_upgrade | default(omit) }}" 27 | preferred_fault_domain_first_var: "{{ preferred_fault_domain_first | default(omit) }}" 28 | # Indicate the host(s) to be upgraded. This only applies to a cluster when vLCM is enabled. If the property is empty, then upgrades all nodes in the cluster. # 29 | target_hosts_name_var: "{{ target_hosts_name | default(omit) }}" 30 | ### Optional for script, specify the API version to perform the upgrade. If not specified, the default value is the highest available version. ### 31 | api_version_number_var: "4" 32 | ### Optional for script, specify the timeout for the upgrade. If not specified, the default value is 6 hours. ### 33 | timeout_var: "{{ timeout | default(omit) }}" 34 | 35 | 36 | tasks: 37 | - name: Start to upgrade with v4 38 | dellemc.vxrail.dellemc_vxrail_lcm: 39 | vxmip: "{{ vxmip_var }}" 40 | vcadmin: "{{ vcadmin_var }}" 41 | vcpasswd: "{{ vcpasswd_var}}" 42 | bundle: "{{ bundle_var }}" 43 | vc_root_account: "{{ vc_root_account_var }}" 44 | vc_root_passwd: "{{ vc_root_passwd_var }}" 45 | vxm_root_account: "{{ vxm_root_account_var }}" 46 | vxm_root_passwd: "{{ vxm_root_passwd_var }}" 47 | api_version_number: "{{ api_version_number_var }}" 48 | timeout: "{{ timeout_var }}" 49 | source_vcsa_host_name: "{{ source_vcsa_host_name_var }}" 50 | source_vcsa_host_user_name: "{{ source_vcsa_host_user_name_var }}" 51 | source_vcsa_host_user_passwd: "{{ source_vcsa_host_user_passwd_var }}" 52 | target_vcsa_host_name: "{{ target_vcsa_host_name_var }}" 53 | target_vcsa_host_user_name: "{{ target_vcsa_host_user_name_var }}" 54 | target_vcsa_host_user_passwd: "{{ target_vcsa_host_user_passwd_var }}" 55 | temporary_ip: "{{ temporary_ip_var }}" 56 | temporary_gateway: "{{ temporary_gateway_var }}" 57 | temporary_netmask: "{{ temporary_netmask_var }}" 58 | witness_username: "{{ witness_username_var }}" 59 | witness_password: "{{ witness_password_var }}" 60 | auto_witness_upgrade: "{{ auto_witness_upgrade_var }}" 61 | preferred_fault_domain_first: "{{ preferred_fault_domain_first_var }}" 62 | target_hosts_name: "{{ target_hosts_name_var }}" 63 | async: 25200 64 | poll: 0 65 | register: lcm_status 66 | - name: Check if LCM is completed...The upgrade is still ongoing. 67 | async_status: 68 | jid: "{{ lcm_status.ansible_job_id }}" 69 | register: job_result 70 | until: job_result.finished 71 | retries: 210 72 | delay: 120 73 | - name: Get LCM Result 74 | debug: 75 | msg: "{{job_result}}" 76 | 77 | -------------------------------------------------------------------------------- /docs/samples/lcm_upgrade_v5.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: LCM upgrade v5. Supported in VxRail versions 7.0.400+. 3 | hosts: localhost 4 | vars: 5 | ### Required ### 6 | vxmip_var: "{{ vxmip }}" 7 | vcadmin_var: "{{ vcadmin }}" 8 | vcpasswd_var: "{{ vcpasswd }}" 9 | bundle_var: "{{ bundle }}" 10 | vc_root_account_var: "{{ vc_root_account }}" 11 | vc_root_passwd_var: "{{ vc_root_passwd }}" 12 | vxm_root_account_var: "{{ vxm_root_account }}" 13 | vxm_root_passwd_var: "{{ vxm_root_passwd }}" 14 | ### Optional ### 15 | source_vcsa_host_name_var: "{{ source_vcsa_host_name | default(omit) }}" 16 | source_vcsa_host_user_name_var: "{{ source_vcsa_host_user_name | default(omit) }}" 17 | source_vcsa_host_user_passwd_var: "{{ source_vcsa_host_user_passwd | default(omit) }}" 18 | target_vcsa_host_name_var: "{{ target_vcsa_host_name | default(omit) }}" 19 | target_vcsa_host_user_name_var: "{{ target_vcsa_host_user_name | default(omit) }}" 20 | target_vcsa_host_user_passwd_var: "{{ target_vcsa_host_user_passwd | default(omit) }}" 21 | temporary_ip_var: "{{ temporary_ip | default(omit) }}" 22 | temporary_gateway_var: "{{ temporary_gateway | default(omit) }}" 23 | temporary_netmask_var: "{{ temporary_netmask | default(omit) }}" 24 | witness_username_var: "{{ witness_username | default(omit) }}" 25 | witness_password_var: "{{ witness_password | default(omit) }}" 26 | auto_witness_upgrade_var: "{{ auto_witness_upgrade | default(omit) }}" 27 | preferred_fault_domain_first_var: "{{ preferred_fault_domain_first | default(omit) }}" 28 | # Indicate the host(s) to be upgraded. This only applies to a cluster when vLCM is enabled. If the property is empty, then upgrades all nodes in the cluster. # 29 | target_hosts_name_var: "{{ target_hosts_name | default(omit) }}" 30 | # Set the value to false if you want to using your customized upgrade bundle i.e. Smart Bundle. # 31 | missing_file_check_var: "{{ missing_file_check | default(omit) }}" 32 | skip_failed_hosts_var: "{{ skip_failed_hosts | default(omit) }}" 33 | ecosystem_check_components_var: "{{ ecosystem_check_components | default(omit) }}" 34 | ecosystem_check_continue_with_incompatible_var: "{{ ecosystem_check_continue_with_incompatible | default(omit) }}" 35 | ### Optional for script, specify the API version to perform the upgrade. If not specified, the default value is the highest available version. ### 36 | api_version_number_var: "5" 37 | ### Optional for script, specify the timeout for the upgrade. If not specified, the default value is 6 hours. ### 38 | timeout_var: "{{ timeout | default(omit) }}" 39 | 40 | 41 | tasks: 42 | - name: Start to upgrade with v5 43 | dellemc.vxrail.dellemc_vxrail_lcm: 44 | vxmip: "{{ vxmip_var }}" 45 | vcadmin: "{{ vcadmin_var }}" 46 | vcpasswd: "{{ vcpasswd_var}}" 47 | bundle: "{{ bundle_var }}" 48 | vc_root_account: "{{ vc_root_account_var }}" 49 | vc_root_passwd: "{{ vc_root_passwd_var }}" 50 | vxm_root_account: "{{ vxm_root_account_var }}" 51 | vxm_root_passwd: "{{ vxm_root_passwd_var }}" 52 | api_version_number: "{{ api_version_number_var }}" 53 | timeout: "{{ timeout_var }}" 54 | source_vcsa_host_name: "{{ source_vcsa_host_name_var }}" 55 | source_vcsa_host_user_name: "{{ source_vcsa_host_user_name_var }}" 56 | source_vcsa_host_user_passwd: "{{ source_vcsa_host_user_passwd_var }}" 57 | target_vcsa_host_name: "{{ target_vcsa_host_name_var }}" 58 | target_vcsa_host_user_name: "{{ target_vcsa_host_user_name_var }}" 59 | target_vcsa_host_user_passwd: "{{ target_vcsa_host_user_passwd_var }}" 60 | temporary_ip: "{{ temporary_ip_var }}" 61 | temporary_gateway: "{{ temporary_gateway_var }}" 62 | temporary_netmask: "{{ temporary_netmask_var }}" 63 | witness_username: "{{ witness_username_var }}" 64 | witness_password: "{{ witness_password_var }}" 65 | auto_witness_upgrade: "{{ auto_witness_upgrade_var }}" 66 | preferred_fault_domain_first: "{{ preferred_fault_domain_first_var }}" 67 | target_hosts_name: "{{ target_hosts_name_var }}" 68 | missing_file_check: "{{ missing_file_check_var }}" 69 | skip_failed_hosts: "{{ skip_failed_hosts_var }}" 70 | ecosystem_check_continue_with_incompatible: "{{ ecosystem_check_continue_with_incompatible_var }}" 71 | ecosystem_check_components: "{{ ecosystem_check_components_var }}" 72 | async: 25200 73 | poll: 0 74 | register: lcm_status 75 | - name: Check if LCM is completed...The upgrade is still ongoing. 76 | async_status: 77 | jid: "{{ lcm_status.ansible_job_id }}" 78 | register: job_result 79 | until: job_result.finished 80 | retries: 210 81 | delay: 120 82 | - name: Get LCM Result 83 | debug: 84 | msg: "{{job_result}}" 85 | 86 | -------------------------------------------------------------------------------- /docs/samples/lcm_upgrade_v6.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: LCM upgrade v6. Supported in VxRail versions 7.0.400+. 3 | hosts: localhost 4 | vars: 5 | ### Required ### 6 | vxmip_var: "{{ vxmip }}" 7 | vcadmin_var: "{{ vcadmin }}" 8 | vcpasswd_var: "{{ vcpasswd }}" 9 | bundle_var: "{{ bundle }}" 10 | vc_root_account_var: "{{ vc_root_account }}" 11 | vc_root_passwd_var: "{{ vc_root_passwd }}" 12 | vc_mgmt_account_var: "{{ vc_mgmt_account }}" 13 | vc_mgmt_passwd_var: "{{ vc_mgmt_passwd }}" 14 | vxm_root_account_var: "{{ vxm_root_account }}" 15 | vxm_root_passwd_var: "{{ vxm_root_passwd }}" 16 | ### Optional ### 17 | source_vcsa_host_name_var: "{{ source_vcsa_host_name | default(omit) }}" 18 | source_vcsa_host_user_name_var: "{{ source_vcsa_host_user_name | default(omit) }}" 19 | source_vcsa_host_user_passwd_var: "{{ source_vcsa_host_user_passwd | default(omit) }}" 20 | target_vcsa_host_name_var: "{{ target_vcsa_host_name | default(omit) }}" 21 | target_vcsa_host_user_name_var: "{{ target_vcsa_host_user_name | default(omit) }}" 22 | target_vcsa_host_user_passwd_var: "{{ target_vcsa_host_user_passwd | default(omit) }}" 23 | temporary_ip_var: "{{ temporary_ip | default(omit) }}" 24 | temporary_gateway_var: "{{ temporary_gateway | default(omit) }}" 25 | temporary_netmask_var: "{{ temporary_netmask | default(omit) }}" 26 | witness_username_var: "{{ witness_username | default(omit) }}" 27 | witness_password_var: "{{ witness_password | default(omit) }}" 28 | auto_witness_upgrade_var: "{{ auto_witness_upgrade | default(omit) }}" 29 | preferred_fault_domain_first_var: "{{ preferred_fault_domain_first | default(omit) }}" 30 | # Indicate the host(s) to be upgraded. This only applies to a cluster when vLCM is enabled. If the property is empty, then upgrades all nodes in the cluster. # 31 | target_hosts_name_var: "{{ target_hosts_name | default(omit) }}" 32 | # Set the value to false if you want to using your customized upgrade bundle i.e. Smart Bundle. # 33 | missing_file_check_var: "{{ missing_file_check | default(omit) }}" 34 | skip_failed_hosts_var: "{{ skip_failed_hosts | default(omit) }}" 35 | ecosystem_check_components_var: "{{ ecosystem_check_components | default(omit) }}" 36 | ecosystem_check_continue_with_incompatible_var: "{{ ecosystem_check_continue_with_incompatible | default(omit) }}" 37 | ### Optional for script, specify the API version to perform the upgrade. If not specified, the default value is the highest available version. ### 38 | api_version_number_var: "6" 39 | ### Optional for script, specify the timeout for the upgrade. If not specified, the default value is 6 hours. ### 40 | timeout_var: "{{ timeout | default(omit) }}" 41 | 42 | 43 | tasks: 44 | - name: Start to upgrade with v6 45 | dellemc.vxrail.dellemc_vxrail_lcm: 46 | vxmip: "{{ vxmip_var }}" 47 | vcadmin: "{{ vcadmin_var }}" 48 | vcpasswd: "{{ vcpasswd_var}}" 49 | bundle: "{{ bundle_var }}" 50 | vc_root_account: "{{ vc_root_account_var }}" 51 | vc_root_passwd: "{{ vc_root_passwd_var }}" 52 | vc_mgmt_account: "{{ vc_mgmt_account_var }}" 53 | vc_mgmt_passwd: "{{ vc_mgmt_passwd_var }}" 54 | vxm_root_account: "{{ vxm_root_account_var }}" 55 | vxm_root_passwd: "{{ vxm_root_passwd_var }}" 56 | api_version_number: "{{ api_version_number_var }}" 57 | timeout: "{{ timeout_var }}" 58 | source_vcsa_host_name: "{{ source_vcsa_host_name_var }}" 59 | source_vcsa_host_user_name: "{{ source_vcsa_host_user_name_var }}" 60 | source_vcsa_host_user_passwd: "{{ source_vcsa_host_user_passwd_var }}" 61 | target_vcsa_host_name: "{{ target_vcsa_host_name_var }}" 62 | target_vcsa_host_user_name: "{{ target_vcsa_host_user_name_var }}" 63 | target_vcsa_host_user_passwd: "{{ target_vcsa_host_user_passwd_var }}" 64 | temporary_ip: "{{ temporary_ip_var }}" 65 | temporary_gateway: "{{ temporary_gateway_var }}" 66 | temporary_netmask: "{{ temporary_netmask_var }}" 67 | witness_username: "{{ witness_username_var }}" 68 | witness_password: "{{ witness_password_var }}" 69 | auto_witness_upgrade: "{{ auto_witness_upgrade_var }}" 70 | preferred_fault_domain_first: "{{ preferred_fault_domain_first_var }}" 71 | target_hosts_name: "{{ target_hosts_name_var }}" 72 | missing_file_check: "{{ missing_file_check_var }}" 73 | skip_failed_hosts: "{{ skip_failed_hosts_var }}" 74 | ecosystem_check_continue_with_incompatible: "{{ ecosystem_check_continue_with_incompatible_var }}" 75 | ecosystem_check_components: "{{ ecosystem_check_components_var }}" 76 | async: 25200 77 | poll: 0 78 | register: lcm_status 79 | - name: Check if LCM is completed...The upgrade is still ongoing. 80 | async_status: 81 | jid: "{{ lcm_status.ansible_job_id }}" 82 | register: job_result 83 | until: job_result.finished 84 | retries: 210 85 | delay: 120 86 | - name: Get LCM Result 87 | debug: 88 | msg: "{{job_result}}" 89 | 90 | -------------------------------------------------------------------------------- /docs/samples/lcm_upgrade_v7.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: LCM upgrade v7. Supported in VxRail versions 7.0.450+. 3 | hosts: localhost 4 | vars: 5 | ### Required ### 6 | vxmip_var: "{{ vxmip }}" 7 | vcadmin_var: "{{ vcadmin }}" 8 | vcpasswd_var: "{{ vcpasswd }}" 9 | bundle_var: "{{ bundle }}" 10 | vc_root_account_var: "{{ vc_root_account }}" 11 | vc_root_passwd_var: "{{ vc_root_passwd }}" 12 | vxm_root_account_var: "{{ vxm_root_account }}" 13 | vxm_root_passwd_var: "{{ vxm_root_passwd }}" 14 | ### Optional ### 15 | source_vcsa_host_name_var: "{{ source_vcsa_host_name | default(omit) }}" 16 | source_vcsa_host_user_name_var: "{{ source_vcsa_host_user_name | default(omit) }}" 17 | source_vcsa_host_user_passwd_var: "{{ source_vcsa_host_user_passwd | default(omit) }}" 18 | target_vcsa_host_name_var: "{{ target_vcsa_host_name | default(omit) }}" 19 | target_vcsa_host_user_name_var: "{{ target_vcsa_host_user_name | default(omit) }}" 20 | target_vcsa_host_user_passwd_var: "{{ target_vcsa_host_user_passwd | default(omit) }}" 21 | temporary_ip_var: "{{ temporary_ip | default(omit) }}" 22 | temporary_gateway_var: "{{ temporary_gateway | default(omit) }}" 23 | temporary_netmask_var: "{{ temporary_netmask | default(omit) }}" 24 | witness_username_var: "{{ witness_username | default(omit) }}" 25 | witness_password_var: "{{ witness_password | default(omit) }}" 26 | auto_witness_upgrade_var: "{{ auto_witness_upgrade | default(omit) }}" 27 | preferred_fault_domain_first_var: "{{ preferred_fault_domain_first | default(omit) }}" 28 | # Indicate the host(s) to be upgraded. This only applies to a cluster when vLCM is enabled. If the property is empty, then upgrades all nodes in the cluster. # 29 | target_hosts_name_var: "{{ target_hosts_name | default(omit) }}" 30 | # Set the value to false if you want to using your customized upgrade bundle i.e. Smart Bundle. # 31 | missing_file_check_var: "{{ missing_file_check | default(omit) }}" 32 | skip_failed_hosts_var: "{{ skip_failed_hosts | default(omit) }}" 33 | ecosystem_check_components_var: "{{ ecosystem_check_components | default(omit) }}" 34 | ecosystem_check_continue_with_incompatible_var: "{{ ecosystem_check_continue_with_incompatible | default(omit) }}" 35 | ### Optional for script, specify the API version to perform the upgrade. If not specified, the default value is the highest available version. ### 36 | api_version_number_var: "7" 37 | ### Optional for script, specify the timeout for the upgrade. If not specified, the default value is 6 hours. ### 38 | timeout_var: "{{ timeout | default(omit) }}" 39 | 40 | 41 | tasks: 42 | - name: Start to upgrade with v7 43 | dellemc.vxrail.dellemc_vxrail_lcm: 44 | vxmip: "{{ vxmip_var }}" 45 | vcadmin: "{{ vcadmin_var }}" 46 | vcpasswd: "{{ vcpasswd_var}}" 47 | bundle: "{{ bundle_var }}" 48 | vc_root_account: "{{ vc_root_account_var }}" 49 | vc_root_passwd: "{{ vc_root_passwd_var }}" 50 | vxm_root_account: "{{ vxm_root_account_var }}" 51 | vxm_root_passwd: "{{ vxm_root_passwd_var }}" 52 | api_version_number: "{{ api_version_number_var }}" 53 | timeout: "{{ timeout_var }}" 54 | source_vcsa_host_name: "{{ source_vcsa_host_name_var }}" 55 | source_vcsa_host_user_name: "{{ source_vcsa_host_user_name_var }}" 56 | source_vcsa_host_user_passwd: "{{ source_vcsa_host_user_passwd_var }}" 57 | target_vcsa_host_name: "{{ target_vcsa_host_name_var }}" 58 | target_vcsa_host_user_name: "{{ target_vcsa_host_user_name_var }}" 59 | target_vcsa_host_user_passwd: "{{ target_vcsa_host_user_passwd_var }}" 60 | temporary_ip: "{{ temporary_ip_var }}" 61 | temporary_gateway: "{{ temporary_gateway_var }}" 62 | temporary_netmask: "{{ temporary_netmask_var }}" 63 | witness_username: "{{ witness_username_var }}" 64 | witness_password: "{{ witness_password_var }}" 65 | auto_witness_upgrade: "{{ auto_witness_upgrade_var }}" 66 | preferred_fault_domain_first: "{{ preferred_fault_domain_first_var }}" 67 | target_hosts_name: "{{ target_hosts_name_var }}" 68 | missing_file_check: "{{ missing_file_check_var }}" 69 | skip_failed_hosts: "{{ skip_failed_hosts_var }}" 70 | ecosystem_check_continue_with_incompatible: "{{ ecosystem_check_continue_with_incompatible_var }}" 71 | ecosystem_check_components: "{{ ecosystem_check_components_var }}" 72 | async: 25200 73 | poll: 0 74 | register: lcm_status 75 | - name: Check if LCM is completed...The upgrade is still ongoing. 76 | async_status: 77 | jid: "{{ lcm_status.ansible_job_id }}" 78 | register: job_result 79 | until: job_result.finished 80 | retries: 210 81 | delay: 120 82 | - name: Get LCM Result 83 | debug: 84 | msg: "{{job_result}}" 85 | 86 | -------------------------------------------------------------------------------- /docs/samples/lcm_upgrade_v8.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: LCM upgrade v8. Supported in VxRail versions 8.0.210+. 3 | hosts: localhost 4 | vars: 5 | ### Required ### 6 | vxmip_var: "{{ vxmip }}" 7 | vcadmin_var: "{{ vcadmin }}" 8 | vcpasswd_var: "{{ vcpasswd }}" 9 | bundle_var: "{{ bundle }}" 10 | vc_root_account_var: "{{ vc_root_account }}" 11 | vc_root_passwd_var: "{{ vc_root_passwd }}" 12 | vxm_root_account_var: "{{ vxm_root_account }}" 13 | vxm_root_passwd_var: "{{ vxm_root_passwd }}" 14 | ### Optional ### 15 | source_vcsa_host_name_var: "{{ source_vcsa_host_name | default(omit) }}" 16 | source_vcsa_host_user_name_var: "{{ source_vcsa_host_user_name | default(omit) }}" 17 | source_vcsa_host_user_passwd_var: "{{ source_vcsa_host_user_passwd | default(omit) }}" 18 | target_vcsa_host_name_var: "{{ target_vcsa_host_name | default(omit) }}" 19 | target_vcsa_host_user_name_var: "{{ target_vcsa_host_user_name | default(omit) }}" 20 | target_vcsa_host_user_passwd_var: "{{ target_vcsa_host_user_passwd | default(omit) }}" 21 | temporary_ip_var: "{{ temporary_ip | default(omit) }}" 22 | temporary_gateway_var: "{{ temporary_gateway | default(omit) }}" 23 | temporary_netmask_var: "{{ temporary_netmask | default(omit) }}" 24 | witness_username_var: "{{ witness_username | default(omit) }}" 25 | witness_password_var: "{{ witness_password | default(omit) }}" 26 | auto_witness_upgrade_var: "{{ auto_witness_upgrade | default(omit) }}" 27 | preferred_fault_domain_first_var: "{{ preferred_fault_domain_first | default(omit) }}" 28 | # Indicate the host(s) to be upgraded. This only applies to a cluster when vLCM is enabled. If the property is empty, then upgrades all nodes in the cluster. # 29 | target_hosts_name_var: "{{ target_hosts_name | default(omit) }}" 30 | # Set the value to false if you want to using your customized upgrade bundle i.e. Smart Bundle. # 31 | missing_file_check_var: "{{ missing_file_check | default(omit) }}" 32 | skip_failed_hosts_var: "{{ skip_failed_hosts | default(omit) }}" 33 | ecosystem_check_components_var: "{{ ecosystem_check_components | default(omit) }}" 34 | ecosystem_check_continue_with_incompatible_var: "{{ ecosystem_check_continue_with_incompatible | default(omit) }}" 35 | ### Optional for script, specify the API version to perform the upgrade. If not specified, the default value is the highest available version. ### 36 | api_version_number_var: "8" 37 | ### Optional for script, specify the timeout for the upgrade. If not specified, the default value is 6 hours. ### 38 | timeout_var: "{{ timeout | default(omit) }}" 39 | ### vLCM parameter ### 40 | enable_quick_boot_var: "{{ enable_quick_boot | default(omit) }}" 41 | parallel_remediation_enable_var: "{{ parallel_remediation_enable | default(omit) }}" 42 | parallel_remediation_max_var: "{{ parallel_remediation_max | default(omit) }}" 43 | 44 | 45 | tasks: 46 | - name: Start to upgrade with v8 47 | dellemc_vxrail_lcm: 48 | vxmip: "{{ vxmip_var }}" 49 | vcadmin: "{{ vcadmin_var }}" 50 | vcpasswd: "{{ vcpasswd_var}}" 51 | bundle: "{{ bundle_var }}" 52 | vc_root_account: "{{ vc_root_account_var }}" 53 | vc_root_passwd: "{{ vc_root_passwd_var }}" 54 | vxm_root_account: "{{ vxm_root_account_var }}" 55 | vxm_root_passwd: "{{ vxm_root_passwd_var }}" 56 | api_version_number: "{{ api_version_number_var }}" 57 | timeout: "{{ timeout_var }}" 58 | source_vcsa_host_name: "{{ source_vcsa_host_name_var }}" 59 | source_vcsa_host_user_name: "{{ source_vcsa_host_user_name_var }}" 60 | source_vcsa_host_user_passwd: "{{ source_vcsa_host_user_passwd_var }}" 61 | target_vcsa_host_name: "{{ target_vcsa_host_name_var }}" 62 | target_vcsa_host_user_name: "{{ target_vcsa_host_user_name_var }}" 63 | target_vcsa_host_user_passwd: "{{ target_vcsa_host_user_passwd_var }}" 64 | temporary_ip: "{{ temporary_ip_var }}" 65 | temporary_gateway: "{{ temporary_gateway_var }}" 66 | temporary_netmask: "{{ temporary_netmask_var }}" 67 | witness_username: "{{ witness_username_var }}" 68 | witness_password: "{{ witness_password_var }}" 69 | auto_witness_upgrade: "{{ auto_witness_upgrade_var }}" 70 | preferred_fault_domain_first: "{{ preferred_fault_domain_first_var }}" 71 | target_hosts_name: "{{ target_hosts_name_var }}" 72 | missing_file_check: "{{ missing_file_check_var }}" 73 | skip_failed_hosts: "{{ skip_failed_hosts_var }}" 74 | ecosystem_check_continue_with_incompatible: "{{ ecosystem_check_continue_with_incompatible_var }}" 75 | ecosystem_check_components: "{{ ecosystem_check_components_var }}" 76 | enable_quick_boot: "{{ enable_quick_boot_var }}" 77 | parallel_remediation_enable: "{{ parallel_remediation_enable_var }}" 78 | parallel_remediation_max: "{{ parallel_remediation_max_var }}" 79 | async: 25200 80 | poll: 0 81 | register: lcm_status 82 | - name: Check if LCM is completed...The upgrade is still ongoing. 83 | async_status: 84 | jid: "{{ lcm_status.ansible_job_id }}" 85 | register: job_result 86 | until: job_result.finished 87 | retries: 210 88 | delay: 120 89 | - name: Get LCM Result 90 | debug: 91 | msg: "{{job_result}}" -------------------------------------------------------------------------------- /docs/samples/lcm_upgrade_v9.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: LCM upgrade v9. Supported in VxRail versions 8.0.300+. 3 | hosts: localhost 4 | vars: 5 | ### Required ### 6 | vxmip_var: "{{ vxmip }}" 7 | vcadmin_var: "{{ vcadmin }}" 8 | vcpasswd_var: "{{ vcpasswd }}" 9 | bundle_var: "{{ bundle }}" 10 | vc_root_account_var: "{{ vc_root_account }}" 11 | vc_root_passwd_var: "{{ vc_root_passwd }}" 12 | vxm_root_account_var: "{{ vxm_root_account }}" 13 | vxm_root_passwd_var: "{{ vxm_root_passwd }}" 14 | ### Optional ### 15 | source_vcsa_host_name_var: "{{ source_vcsa_host_name | default(omit) }}" 16 | source_vcsa_host_user_name_var: "{{ source_vcsa_host_user_name | default(omit) }}" 17 | source_vcsa_host_user_passwd_var: "{{ source_vcsa_host_user_passwd | default(omit) }}" 18 | target_vcsa_host_name_var: "{{ target_vcsa_host_name | default(omit) }}" 19 | target_vcsa_host_user_name_var: "{{ target_vcsa_host_user_name | default(omit) }}" 20 | target_vcsa_host_user_passwd_var: "{{ target_vcsa_host_user_passwd | default(omit) }}" 21 | temporary_ip_var: "{{ temporary_ip | default(omit) }}" 22 | temporary_gateway_var: "{{ temporary_gateway | default(omit) }}" 23 | temporary_netmask_var: "{{ temporary_netmask | default(omit) }}" 24 | witness_username_var: "{{ witness_username | default(omit) }}" 25 | witness_password_var: "{{ witness_password | default(omit) }}" 26 | auto_witness_upgrade_var: "{{ auto_witness_upgrade | default(omit) }}" 27 | preferred_fault_domain_first_var: "{{ preferred_fault_domain_first | default(omit) }}" 28 | # Indicate the host(s) to be upgraded. This only applies to a cluster when vLCM is enabled. If the property is empty, then upgrades all nodes in the cluster. # 29 | target_hosts_name_var: "{{ target_hosts_name | default(omit) }}" 30 | # Set the value to false if you want to using your customized upgrade bundle i.e. Smart Bundle. # 31 | missing_file_check_var: "{{ missing_file_check | default(omit) }}" 32 | skip_failed_hosts_var: "{{ skip_failed_hosts | default(omit) }}" 33 | ecosystem_check_components_var: "{{ ecosystem_check_components | default(omit) }}" 34 | ecosystem_check_continue_with_incompatible_var: "{{ ecosystem_check_continue_with_incompatible | default(omit) }}" 35 | ### Optional for script, specify the API version to perform the upgrade. If not specified, the default value is the highest available version. ### 36 | api_version_number_var: "9" 37 | ### Optional for script, specify the timeout for the upgrade. If not specified, the default value is 6 hours. ### 38 | timeout_var: "{{ timeout | default(omit) }}" 39 | ### vLCM parameter ### 40 | enable_quick_boot_var: "{{ enable_quick_boot | default(omit) }}" 41 | parallel_remediation_enable_var: "{{ parallel_remediation_enable | default(omit) }}" 42 | parallel_remediation_max_var: "{{ parallel_remediation_max | default(omit) }}" 43 | enforce_quick_patch_var: "{{ enforce_quick_patch | default(omit) }}" 44 | 45 | 46 | tasks: 47 | - name: Start to upgrade with v9 48 | dellemc_vxrail_lcm: 49 | vxmip: "{{ vxmip_var }}" 50 | vcadmin: "{{ vcadmin_var }}" 51 | vcpasswd: "{{ vcpasswd_var}}" 52 | bundle: "{{ bundle_var }}" 53 | vc_root_account: "{{ vc_root_account_var }}" 54 | vc_root_passwd: "{{ vc_root_passwd_var }}" 55 | vxm_root_account: "{{ vxm_root_account_var }}" 56 | vxm_root_passwd: "{{ vxm_root_passwd_var }}" 57 | api_version_number: "{{ api_version_number_var }}" 58 | timeout: "{{ timeout_var }}" 59 | source_vcsa_host_name: "{{ source_vcsa_host_name_var }}" 60 | source_vcsa_host_user_name: "{{ source_vcsa_host_user_name_var }}" 61 | source_vcsa_host_user_passwd: "{{ source_vcsa_host_user_passwd_var }}" 62 | target_vcsa_host_name: "{{ target_vcsa_host_name_var }}" 63 | target_vcsa_host_user_name: "{{ target_vcsa_host_user_name_var }}" 64 | target_vcsa_host_user_passwd: "{{ target_vcsa_host_user_passwd_var }}" 65 | temporary_ip: "{{ temporary_ip_var }}" 66 | temporary_gateway: "{{ temporary_gateway_var }}" 67 | temporary_netmask: "{{ temporary_netmask_var }}" 68 | witness_username: "{{ witness_username_var }}" 69 | witness_password: "{{ witness_password_var }}" 70 | auto_witness_upgrade: "{{ auto_witness_upgrade_var }}" 71 | preferred_fault_domain_first: "{{ preferred_fault_domain_first_var }}" 72 | target_hosts_name: "{{ target_hosts_name_var }}" 73 | missing_file_check: "{{ missing_file_check_var }}" 74 | skip_failed_hosts: "{{ skip_failed_hosts_var }}" 75 | ecosystem_check_continue_with_incompatible: "{{ ecosystem_check_continue_with_incompatible_var }}" 76 | ecosystem_check_components: "{{ ecosystem_check_components_var }}" 77 | enable_quick_boot: "{{ enable_quick_boot_var }}" 78 | parallel_remediation_enable: "{{ parallel_remediation_enable_var }}" 79 | parallel_remediation_max: "{{ parallel_remediation_max_var }}" 80 | enforce_quick_patch: "{{ enforce_quick_patch_var }}" 81 | async: 25200 82 | poll: 0 83 | register: lcm_status 84 | - name: Check if LCM is completed...The upgrade is still ongoing. 85 | async_status: 86 | jid: "{{ lcm_status.ansible_job_id }}" 87 | register: job_result 88 | until: job_result.finished 89 | retries: 210 90 | delay: 120 91 | - name: Get LCM Result 92 | debug: 93 | msg: "{{job_result}}" -------------------------------------------------------------------------------- /docs/samples/lcm_upgrade_vlcm_image.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve vLCM image information api 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | bundle: "{{ bundle }}" 9 | vxm_root_account: "{{ vxm_root_account }}" 10 | vxm_root_passwd: "{{ vxm_root_passwd }}" 11 | 12 | tasks: 13 | - name: Start to retrieve vLCM image information from the provided LCM bundle 14 | dellemc.vxrail.dellemc_vxrail_lcm_vlcm_image: 15 | vxmip: "{{ vxmip }}" 16 | vcadmin: "{{ vcadmin }}" 17 | vcpasswd: "{{ vcpasswd }}" 18 | bundle: "{{ bundle }}" 19 | vxm_root_account: "{{ vxm_root_account }}" 20 | vxm_root_passwd: "{{ vxm_root_passwd }}" 21 | timeout: "{{ timeout | default(omit) }}" 22 | api_version_number: "{{ api_version_number | default(omit) }}" 23 | register: job_result 24 | 25 | - name: Display Retrieve vLCM image information result 26 | debug: 27 | msg: "{{ job_result }}" 28 | -------------------------------------------------------------------------------- /docs/samples/lcm_vlcm_commit_draft.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Commit vLCM draft api 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Start to commit vLCM draft 11 | dellemc.vxrail.dellemc_vxrail_lcm_vlcm_commit_draft: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | api_version_number: "{{ api_version_number | default(omit) }}" 16 | register: job_result 17 | 18 | - name: Display vLCM commit draft result 19 | debug: 20 | msg: "{{ job_result }}" 21 | -------------------------------------------------------------------------------- /docs/samples/lcm_vlcm_delete_draft.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Delete vLCM draft api 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | vc_root_account: "{{ vc_root_account }}" 9 | vc_root_passwd: "{{ vc_root_passwd }}" 10 | 11 | tasks: 12 | - name: Start to delete vLCM draft 13 | dellemc.vxrail.dellemc_vxrail_lcm_vlcm_delete_draft: 14 | vxmip: "{{ vxmip }}" 15 | vcadmin: "{{ vcadmin }}" 16 | vcpasswd: "{{ vcpasswd }}" 17 | vc_root_account: "{{ vc_root_account }}" 18 | vc_root_passwd: "{{ vc_root_passwd }}" 19 | api_version_number: "{{ api_version_number | default(omit) }}" 20 | register: job_result 21 | 22 | - name: Display vLCM delete draft result 23 | debug: 24 | msg: "{{ job_result }}" 25 | -------------------------------------------------------------------------------- /docs/samples/lcm_vlcm_enable.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Trigger vLCM enable api 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | vc_root_account: "{{ vc_root_account }}" 9 | vc_root_passwd: "{{ vc_root_passwd }}" 10 | customized_components: "{{customized_components}}" 11 | 12 | tasks: 13 | - name: Start to trigger vLCM enablement 14 | dellemc.vxrail.dellemc_vxrail_lcm_vlcm_enable: 15 | vxmip: "{{ vxmip }}" 16 | vcadmin: "{{ vcadmin }}" 17 | vcpasswd: "{{ vcpasswd }}" 18 | vc_root_account: "{{ vc_root_account }}" 19 | vc_root_passwd: "{{ vc_root_passwd }}" 20 | customized_components: "{{ customized_components }}" 21 | timeout: "{{ timeout | default(omit) }}" 22 | api_version_number: "{{ api_version_number | default(omit) }}" 23 | register: job_result 24 | 25 | - name: Display vLCM enablement result 26 | debug: 27 | msg: "{{ job_result }}" 28 | -------------------------------------------------------------------------------- /docs/samples/lcm_vlcm_generate_draft.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Generate vLCM draft api 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | vc_root_account: "{{ vc_root_account }}" 9 | vc_root_passwd: "{{ vc_root_passwd }}" 10 | customized_components: "{{customized_components}}" 11 | 12 | tasks: 13 | - name: Start to generate vLCM draft 14 | dellemc.vxrail.dellemc_vxrail_lcm_vlcm_generate_draft: 15 | vxmip: "{{ vxmip }}" 16 | vcadmin: "{{ vcadmin }}" 17 | vcpasswd: "{{ vcpasswd }}" 18 | vc_root_account: "{{ vc_root_account }}" 19 | vc_root_passwd: "{{ vc_root_passwd }}" 20 | customized_components: "{{ customized_components }}" 21 | timeout: "{{ timeout | default(omit) }}" 22 | api_version_number: "{{ api_version_number | default(omit) }}" 23 | register: job_result 24 | 25 | - name: Display vLCM generate draft result 26 | debug: 27 | msg: "{{ job_result }}" 28 | -------------------------------------------------------------------------------- /docs/samples/lcm_vlcm_get.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve cluster vLCM information api. Supported in VxRail versions 8.0.200+. 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Start to retrieve cluster vLCM information 11 | dellemc.vxrail.dellemc_vxrail_lcm_vlcm_get: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | timeout: "{{ timeout | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | register: job_result 18 | 19 | - name: Display Retrieve cluster vLCM information result 20 | debug: 21 | msg: "{{ job_result }}" 22 | -------------------------------------------------------------------------------- /docs/samples/management_accounts_info.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve VxRail Management Account Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Retrieve VxRail Management Account Info (VC Only) 11 | dellemc.vxrail.dellemc_vxrail_system_get_management_accounts: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | api_version_number: "{{ api_version_number | default(omit) }}" 16 | timeout: "{{ timeout | default(omit) }}" 17 | register: accounts_info 18 | 19 | - name: Display VxRail Management Account Info (VC Only) 20 | debug: 21 | msg: "{{accounts_info}}" 22 | -------------------------------------------------------------------------------- /docs/samples/manager_ip_change.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Change VxRail Manager IP Configuration 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | new_ip: "{{ new_ip }}" 7 | gateway: "{{ gateway }}" 8 | netmask: "{{ netmask }}" 9 | new_ipv6: "{{ new_ipv6 }}" 10 | gateway_ipv6: "{{ gateway_ipv6 }}" 11 | prefix_length_ipv6: "{{ prefix_length_ipv6 }}" 12 | vlan_id: "{{ vlan_id }}" 13 | 14 | tasks: 15 | - name: Configure the VxRail Manager IP address 16 | dellemc.vxrail.dellemc_vxrail_network_manager_configure: 17 | vxmip: "{{ vxmip }}" 18 | new_ip: "{{ new_ip }}" 19 | gateway: "{{ gateway }}" 20 | netmask: "{{ netmask }}" 21 | new_ipv6: "{{ new_ipv6 }}" 22 | gateway_ipv6: "{{ gateway_ipv6 }}" 23 | prefix_length_ipv6: "{{ prefix_length_ipv6 }}" 24 | vlan_id: "{{ vlan_id }}" 25 | api_version_number: "{{ api_version_number | default(omit) }}" 26 | timeout: "{{ timeout | default(omit) }}" 27 | register: manager_change_info 28 | 29 | - name: Display Manager Information 30 | debug: 31 | msg: "{{manager_change_info}}" 32 | -------------------------------------------------------------------------------- /docs/samples/ntp_change.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Change VxRail NTP Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | servers: "{{ servers }}" 9 | 10 | tasks: 11 | - name: Change NTP Settings 12 | dellemc.vxrail.dellemc_vxrail_system_ntp_change: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | components: "{{ components | default(omit) }}" 17 | servers: "{{ servers }}" 18 | api_version_number: "{{ api_version_number | default(omit) }}" 19 | timeout: "{{ timeout | default(omit) }}" 20 | register: ntp_change_info 21 | 22 | - name: Display NTP Change 23 | debug: 24 | msg: "{{ntp_change_info}}" 25 | -------------------------------------------------------------------------------- /docs/samples/precheck_profiles.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve VxRail System Precheck Profiles 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get System Precheck Profiles Information 11 | dellemc.vxrail.dellemc_vxrail_system_getprecheckprofiles: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | timeout: "{{ timeout | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | register: precheck_profiles 18 | 19 | - name: Display System Precheck Profiles Information 20 | debug: 21 | msg: "{{precheck_profiles}}" -------------------------------------------------------------------------------- /docs/samples/precheck_version_info.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve precheck service version information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get precheck service version information 11 | dellemc.vxrail.dellemc_vxrail_system_getprecheckversion: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | timeout: "{{ timeout | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | register: precheck_version 18 | 19 | - name: Display precheck service version information 20 | debug: 21 | msg: "{{precheck_version}}" -------------------------------------------------------------------------------- /docs/samples/prechecks_report.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve prechecks report. Specify id to get a particular prechecks report. 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get prechecks report 11 | dellemc.vxrail.dellemc_vxrail_system_getprechecksreport: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | id: "{{ id | default(omit) }}" 16 | timeout: "{{ timeout | default(omit) }}" 17 | api_version_number: "{{ api_version_number | default(omit) }}" 18 | register: prechecks_results 19 | 20 | - name: Display precheck report 21 | debug: 22 | msg: "{{prechecks_results}}" -------------------------------------------------------------------------------- /docs/samples/proxy_info.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve VxRail System Proxy Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get VxRail System Proxy Information 11 | dellemc.vxrail.dellemc_vxrail_system_get_proxy: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | api_version_number: "{{ api_version_number | default(omit) }}" 16 | timeout: "{{ timeout | default(omit) }}" 17 | register: proxy_info 18 | 19 | - name: Display VxRail System Proxy Information 20 | debug: 21 | msg: "{{proxy_info}}" 22 | -------------------------------------------------------------------------------- /docs/samples/remove_certificate.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Return the status of remove certificate 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | fingerprint: "{{ fingerprint }}" 9 | 10 | tasks: 11 | - name: Remove the certificate according to the fingerprint 12 | dellemc.vxrail.dellemc_vxrail_certificates_removecertificate: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | fingerprint: "{{ fingerprint }}" 17 | api_version_number: "{{ api_version_number | default(omit) }}" 18 | register: Result 19 | 20 | - name: Display the result of certificate removal 21 | debug: 22 | msg: "{{ Result }}" -------------------------------------------------------------------------------- /docs/samples/remove_node.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Remove a node 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | host_sn: "{{ host_sn }}" 9 | vc_root_account: "{{ vc_root_account }}" 10 | vc_root_passwd: "{{ vc_root_passwd }}" 11 | 12 | tasks: 13 | - name: Start to remove node 14 | dellemc.vxrail.dellemc_vxrail_cluster_rmhost: 15 | vxmip: "{{ vxmip }}" 16 | vcadmin: "{{ vcadmin }}" 17 | vcpasswd: "{{ vcpasswd }}" 18 | host_sn: "{{ host_sn }}" 19 | vc_root_account: "{{ vc_root_account }}" 20 | vc_root_passwd: "{{ vc_root_passwd }}" 21 | timeout: "{{ timeout | default(omit) }}" 22 | api_version_number: "{{ api_version_number | default(omit) }}" 23 | async: 1800 24 | poll: 0 25 | register: removal_status 26 | - name: Check if Node Removal job is completed...The node removal is still ongoing. 27 | async_status: 28 | jid: "{{ removal_status.ansible_job_id }}" 29 | register: job_result 30 | until: job_result.finished 31 | retries: 100 32 | delay: 30 33 | 34 | - name: Display removed node host_sn 35 | debug: 36 | var: host_sn 37 | - name: Get Node Removal Result 38 | debug: 39 | msg: "{{job_result}}" -------------------------------------------------------------------------------- /docs/samples/remove_satellite_node.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Remove a satellite node 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | host_sn: "{{ host_sn }}" 9 | 10 | tasks: 11 | - name: Start to remove satellite node 12 | dellemc.vxrail.dellemc_vxrail_satellite_node_remove: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | host_sn: "{{ host_sn }}" 17 | api_version_number: "{{ api_version_number | default(omit) }}" 18 | async: 1800 19 | poll: 0 20 | register: removal_status 21 | 22 | - name: Check if Satellite Node Removal job is completed...The node removal is still ongoing. 23 | async_status: 24 | jid: "{{ removal_status.ansible_job_id }}" 25 | register: job_result 26 | until: job_result.finished 27 | retries: 100 28 | delay: 30 29 | 30 | - name: Display removed node host_sn 31 | debug: 32 | var: host_sn 33 | - name: Get Node Removal Result 34 | debug: 35 | msg: "{{job_result}}" 36 | -------------------------------------------------------------------------------- /docs/samples/sequential_reboot.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: VxRail Hosts Sequential Reboot 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: VxRail Hosts Sequential Reboot 11 | dellemc.vxrail.dellemc_vxrail_sequential_reboot: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | all: "{{ all | default(omit) }}" 16 | dry_run: "{{ dry_run | default(omit) }}" 17 | hosts: "{{ hosts | default(omit) }}" 18 | api_version_number: "{{ api_version_number | default(omit) }}" 19 | timeout: "{{ timeout | default(omit) }}" 20 | register: sequential_reboot_info 21 | 22 | - name: VxRail Hosts Sequential Reboot 23 | debug: 24 | msg: "{{sequential_reboot_info}}" 25 | -------------------------------------------------------------------------------- /docs/samples/sequential_reboot_cancel.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: VxRail Hosts Sequential Reboot Cancel 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | request_id: "{{ request_id }}" 9 | 10 | tasks: 11 | - name: VxRail Hosts Sequential Reboot Cancel 12 | dellemc.vxrail.dellemc_vxrail_sequential_reboot_cancel: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | all: "{{ all | default(omit) }}" 17 | request_id: "{{ request_id }}" 18 | hosts: "{{ hosts | default(omit)}}" 19 | api_version_number: "{{ api_version_number | default(omit) }}" 20 | timeout: "{{ timeout | default(omit) }}" 21 | register: sequential_reboot_cancel_info 22 | 23 | - name: VxRail Hosts Sequential Reboot Cancel 24 | debug: 25 | msg: "{{sequential_reboot_cancel_info}}" 26 | -------------------------------------------------------------------------------- /docs/samples/sequential_reboot_retry.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: VxRail Hosts Sequential Reboot Retry 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | request_id: "{{ request_id }}" 9 | 10 | tasks: 11 | - name: VxRail Hosts Sequential Reboot Retry 12 | dellemc.vxrail.dellemc_vxrail_sequential_reboot_retry: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | all: "{{ all | default(omit) }}" 17 | request_id: "{{ request_id }}" 18 | hosts: "{{ hosts | default(omit)}}" 19 | api_version_number: "{{ api_version_number | default(omit) }}" 20 | timeout: "{{ timeout | default(omit) }}" 21 | register: sequential_reboot_retry_info 22 | 23 | - name: VxRail Hosts Sequential Reboot Retry 24 | debug: 25 | msg: "{{sequential_reboot_retry_info}}" 26 | -------------------------------------------------------------------------------- /docs/samples/set_proxy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Set VxRail System Proxy Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | server: "{{ server }}" 9 | proxy_port: "{{ proxy_port }}" 10 | proxy_user: "{{ proxy_user }}" 11 | proxy_passwd: "{{ proxy_passwd }}" 12 | type: "{{ type }}" 13 | 14 | tasks: 15 | - name: Set VxRail System Proxy Information 16 | dellemc.vxrail.dellemc_vxrail_system_set_proxy: 17 | vxmip: "{{ vxmip }}" 18 | vcadmin: "{{ vcadmin }}" 19 | vcpasswd: "{{ vcpasswd }}" 20 | esrs_passwd: "{{ esrs_passwd | default(omit) }}" 21 | server: "{{ server }}" 22 | proxy_port: "{{ proxy_port }}" 23 | proxy_user: "{{ proxy_user }}" 24 | proxy_passwd: "{{ proxy_passwd }}" 25 | type: "{{ type }}" 26 | socks_version: "{{ socks_version | default(omit) }}" 27 | api_version_number: "{{ api_version_number | default(omit) }}" 28 | timeout: "{{ timeout | default(omit) }}" 29 | register: proxy_set_info 30 | 31 | - name: Display New VxRail System Proxy Information 32 | debug: 33 | msg: "{{proxy_set_info}}" 34 | -------------------------------------------------------------------------------- /docs/samples/stig_info.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve information related to STIG regulations with GET /stig/info APIs 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get information related to STIG regulations 11 | dellemc.vxrail.dellemc_vxrail_stig_get_info: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | timeout: "{{ timeout | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | register: stig_info 18 | 19 | - name: Display information related to STIG regulations 20 | debug: 21 | msg: "{{stig_info}}" -------------------------------------------------------------------------------- /docs/samples/support_account.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve VxRail support account Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get Support account information 11 | dellemc.vxrail.dellemc_vxrail_support_getaccount: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | timeout: "{{ timeout | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | register: support_account_info 18 | 19 | - name: Display Support account information 20 | debug: 21 | msg: "{{support_account_info}}" 22 | -------------------------------------------------------------------------------- /docs/samples/system_availablehosts_info.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve VxRail System Available Hosts Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get System Available Hosts Information 11 | dellemc.vxrail.dellemc_vxrail_system_getavailablehosts: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | timeout: "{{ timeout | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | register: system_available_hosts_info 18 | 19 | - name: Display System Available Hosts Information 20 | debug: 21 | msg: "{{system_available_hosts_info}}" -------------------------------------------------------------------------------- /docs/samples/system_clusterhosts_info.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve VxRail Cluster Hosts Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get Cluster Hosts Information 11 | dellemc.vxrail.dellemc_vxrail_system_getclusterhosts: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | timeout: "{{ timeout | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | register: hosts_info 18 | 19 | - name: Display Cluster Hosts Information 20 | debug: 21 | msg: "{{hosts_info}}" -------------------------------------------------------------------------------- /docs/samples/system_get_dns.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve VxRail System DNS Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get System DNS Information 11 | dellemc.vxrail.dellemc_vxrail_system_get_dns: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | api_version_number: "{{ api_version_number | default(omit) }}" 16 | timeout: "{{ timeout | default(omit) }}" 17 | register: system_dns_info 18 | 19 | - name: Display System DNS Information 20 | debug: 21 | msg: "{{system_dns_info}}" -------------------------------------------------------------------------------- /docs/samples/system_get_ntp.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve VxRail System NTP Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get System NTP Information 11 | dellemc.vxrail.dellemc_vxrail_system_get_ntp: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | api_version_number: "{{ api_version_number | default(omit) }}" 16 | timeout: "{{ timeout | default(omit) }}" 17 | register: system_ntp_info 18 | 19 | - name: Display System NTP Information 20 | debug: 21 | msg: "{{system_ntp_info}}" -------------------------------------------------------------------------------- /docs/samples/system_precheck.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Perform a system precheck 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | profile: "{{ profile }}" 9 | vxm_root_username: "{{ vxm_root_username }}" 10 | vxm_root_password: "{{ vxm_root_password }}" 11 | vc_root_username: "{{ vc_root_username }}" 12 | vc_root_password: "{{ vc_root_password }}" 13 | #Optional, only for witness node,this part need to be specified. 14 | witness_username: "{{ witness_username_var | default(omit) }}" 15 | witness_password: "{{ witness_password_var | default(omit) }}" 16 | auto_witness_upgrade: "{{ auto_witness_upgrade_var | default(omit) }}" 17 | #Optional, only for the vCenter upgrade, this part need to be specified. 18 | vc_temporary_ip: "{{ vc_temporary_ip_var | default(omit) }}" 19 | vc_temporary_gateway: "{{ vc_temporary_gateway_var | default(omit) }}" 20 | vc_temporary_netmask: "{{ vc_temporary_netmask_var | default(omit) }}" 21 | #Optional, only for the NODE_EXPANSION precheck , this part need to be specified. 22 | sn: "{{ sn_var | default(omit) }}" 23 | version: "{{ version_var | default(omit) }}" 24 | ip: "{{ ip_var | default(omit) }}" 25 | root_user: "{{ root_user_var | default(omit) }}" 26 | root_password: "{{ root_password_var | default(omit) }}" 27 | 28 | tasks: 29 | - name: Perform system precheck 30 | dellemc.vxrail.dellemc_vxrail_system_precheck: 31 | vxmip: "{{ vxmip }}" 32 | vcadmin: "{{ vcadmin }}" 33 | vcpasswd: "{{ vcpasswd }}" 34 | profile: "{{ profile }}" 35 | vxm_root_username: "{{ vxm_root_username }}" 36 | vxm_root_password: "{{ vxm_root_password }}" 37 | vc_root_username: "{{ vc_root_username }}" 38 | vc_root_password: "{{ vc_root_password }}" 39 | witness_username: "{{ witness_username | default(omit) }}" 40 | witness_password: "{{ witness_password | default(omit) }}" 41 | auto_witness_upgrade: "{{ auto_witness_upgrade | default(omit) }}" 42 | vc_temporary_ip: "{{ vc_temporary_ip | default(omit) }}" 43 | vc_temporary_gateway: "{{ vc_temporary_gateway | default(omit) }}" 44 | vc_temporary_netmask: "{{ vc_temporary_netmask | default(omit) }}" 45 | sn: "{{ sn | default(omit) }}" 46 | version: "{{ version | default(omit) }}" 47 | ip: "{{ ip | default(omit) }}" 48 | root_user: "{{ root_user | default(omit) }}" 49 | root_password: "{{ root_password | default(omit) }}" 50 | timeout: "{{ timeout | default(omit) }}" 51 | api_version_number: "{{ api_version_number | default(omit) }}" 52 | register: request_id 53 | 54 | - name: Display the request id of system precheck 55 | debug: 56 | msg: "{{ request_id }}" -------------------------------------------------------------------------------- /docs/samples/system_update_credential.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Update system credential 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | component: "{{ component }}" 9 | hostname: "{{ hostname }}" 10 | username: "{{ username }}" 11 | password: "{{ password }}" 12 | 13 | tasks: 14 | - name: Update the management user passwords 15 | dellemc.vxrail.dellemc_vxrail_system_update_credential: 16 | vxmip: "{{ vxmip }}" 17 | vcadmin: "{{ vcadmin }}" 18 | vcpasswd: "{{ vcpasswd }}" 19 | component: "{{ component }}" 20 | hostname: "{{ hostname }}" 21 | username: "{{ username }}" 22 | password: "{{ password }}" 23 | timeout: "{{ timeout | default(omit) }}" 24 | api_version_number: "{{ api_version_number | default(omit) }}" 25 | register: system_update_credential 26 | 27 | - name: Display the management user passwords change 28 | debug: 29 | msg: "{{ system_update_credential }}" 30 | -------------------------------------------------------------------------------- /docs/samples/system_validate_credential.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Validate VxRail Credential Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | #Optional 9 | vc_root_account_var: "{{ vc_root_account | default(omit) }}" 10 | vc_root_passwd_var: "{{ vc_root_passwd | default(omit) }}" 11 | psc_root_account_var: "{{ psc_root_account | default(omit) }}" 12 | psc_root_passwd_var: "{{ psc_root_passwd | default(omit) }}" 13 | host_sn_var: "{{ host_sn | default(omit) }}" 14 | host_root_account_var: "{{ host_root_account | default(omit) }}" 15 | host_root_passwd_var: "{{ host_root_passwd | default(omit) }}" 16 | 17 | 18 | tasks: 19 | - name: Validate VxRail Credential Information 20 | dellemc.vxrail.dellemc_vxrail_system_validate_credential: 21 | vxmip: "{{ vxmip }}" 22 | vcadmin: "{{ vcadmin }}" 23 | vcpasswd: "{{ vcpasswd }}" 24 | vc_root_account: "{{ vc_root_account_var }}" 25 | vc_root_passwd: "{{ vc_root_passwd_var }}" 26 | psc_root_account: "{{ psc_root_account_var }}" 27 | psc_root_passwd: "{{ psc_root_passwd_var }}" 28 | host_sn: "{{ host_sn_var }}" 29 | host_root_account: "{{ host_root_account_var }}" 30 | host_root_passwd: "{{ host_root_passwd_var }}" 31 | timeout: "{{ timeout | default(omit) }}" 32 | api_version_number: "{{ api_version_number | default(omit) }}" 33 | register: Result 34 | 35 | - name: Display Validate VxRail Credential Information 36 | debug: 37 | msg: "{{Result}}" 38 | -------------------------------------------------------------------------------- /docs/samples/systeminfo.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve VxRail System Information with GET /system APIs 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get VxRail System Information 11 | dellemc.vxrail.dellemc_vxrail_getsysteminfo: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | timeout: "{{ timeout | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | register: system_info 18 | 19 | - name: Display System Information 20 | debug: 21 | msg: "{{system_info}}" -------------------------------------------------------------------------------- /docs/samples/telemetry_change.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Change VxRail Telemetry Tier 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | tier: "{{ tier }}" 9 | 10 | tasks: 11 | - name: Change Telemetry Tier 12 | dellemc.vxrail.dellemc_vxrail_telemetry_tier_change: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | tier: "{{ tier }}" 17 | timeout: "{{ timeout | default(omit) }}" 18 | api_version_number: "{{ api_version_number | default(omit) }}" 19 | register: telemetry_change 20 | 21 | - name: Display Telemetry Tier Change 22 | debug: 23 | msg: "{{ telemetry_change }}" 24 | -------------------------------------------------------------------------------- /docs/samples/telemetry_info.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve VxRail Telemetry Tier Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get Telemetry Information 11 | dellemc.vxrail.dellemc_vxrail_get_telemetry_tier: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | timeout: "{{ timeout | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | register: telemetry_info 18 | 19 | - name: Display Telemetry Tier 20 | debug: 21 | msg: "{{ telemetry_info }}" 22 | -------------------------------------------------------------------------------- /docs/samples/truststore_certs_import.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Import certficates into the VXM trust store 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | certs: "{{ certs }}" 9 | 10 | tasks: 11 | - name: Return the API status code 12 | dellemc.vxrail.dellemc_vxrail_certificates_importcertsintotruststore: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | certs: "{{ certs }}" 17 | api_version_number: "{{ api_version_number | default(omit) }}" 18 | register: Result 19 | 20 | - name: Display the API status code 21 | debug: 22 | msg: "{{ Result }}" 23 | -------------------------------------------------------------------------------- /docs/samples/update_host.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Update the geographical location of a host 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | host_sn: "{{ host_sn }}" 9 | 10 | tasks: 11 | - name: Update the host location information 12 | dellemc.vxrail.dellemc_vxrail_hosts_update: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | host_sn: "{{ host_sn }}" 17 | rack_name: "{{ rack_name | default(omit) }}" 18 | order_number: "{{ order_number | default(omit) }}" 19 | timeout: "{{ timeout | default(omit) }}" 20 | api_version_number: "{{ api_version_number | default(omit) }}" 21 | async: 1800 22 | poll: 0 23 | register: request_info 24 | 25 | - name: Check if host update job is completed 26 | async_status: 27 | jid: "{{ request_info.ansible_job_id }}" 28 | register: job_result 29 | until: job_result.finished 30 | retries: 100 31 | delay: 30 32 | 33 | - name: Display Host Update Information 34 | debug: 35 | msg: "{{ job_result }}" 36 | 37 | -------------------------------------------------------------------------------- /docs/samples/update_proxy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Update VxRail System Proxy Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | server: "{{ server }}" 9 | proxy_port: "{{ proxy_port }}" 10 | proxy_user: "{{ proxy_user }}" 11 | proxy_passwd: "{{ proxy_passwd }}" 12 | type: "{{ type }}" 13 | 14 | tasks: 15 | - name: Update VxRail System Proxy Information 16 | dellemc.vxrail.dellemc_vxrail_system_update_proxy: 17 | vxmip: "{{ vxmip }}" 18 | vcadmin: "{{ vcadmin }}" 19 | vcpasswd: "{{ vcpasswd }}" 20 | esrs_passwd: "{{ esrs_passwd | default(omit) }}" 21 | server: "{{ server }}" 22 | proxy_port: "{{ proxy_port }}" 23 | proxy_user: "{{ proxy_user }}" 24 | proxy_passwd: "{{ proxy_passwd }}" 25 | type: "{{ type }}" 26 | socks_version: "{{ socks_version | default(omit) }}" 27 | api_version_number: "{{ api_version_number | default(omit) }}" 28 | timeout: "{{ timeout | default(omit) }}" 29 | register: proxy_update_info 30 | 31 | - name: Display Updated VxRail System Proxy Information 32 | debug: 33 | msg: "{{proxy_update_info}}" 34 | -------------------------------------------------------------------------------- /docs/samples/upgrade_host_folder.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Upgrade host folder 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | action: "{{ action }}" 9 | folder_id: "{{ folder_id }}" 10 | target_version: "{{ target_version }}" 11 | # "Only when the action is UPGRADE, the variables failure_rate_var and concurrent_size_var are needed. 12 | failure_rate_var: "{{ failure_rate | default(omit) }}" 13 | concurrent_size_var: "{{ concurrent_size | default(omit) }}" 14 | 15 | tasks: 16 | - name: Start host folders upgrade 17 | dellemc.vxrail.dellemc_vxrail_host_folder_upgrade: 18 | vxmip: "{{ vxmip }}" 19 | vcadmin: "{{ vcadmin }}" 20 | vcpasswd: "{{ vcpasswd }}" 21 | action: "{{ action }}" 22 | folder_id: "{{ folder_id }}" 23 | target_version: "{{ target_version }}" 24 | failure_rate: "{{ failure_rate_var }}" 25 | concurrent_size: "{{ concurrent_size_var }}" 26 | api_version_number: "{{ api_version_number | default(omit) }}" 27 | async: 21600 28 | poll: 0 29 | register: upgrade_status 30 | 31 | - name: Check if host folder upgrade job is completed...The host folder upgrade is still ongoing. 32 | async_status: 33 | jid: "{{ upgrade_status.ansible_job_id }}" 34 | register: job_result 35 | until: job_result.finished 36 | retries: 720 37 | delay: 30 38 | 39 | - name: Get host folder upgrade Result 40 | debug: 41 | msg: "{{job_result}}" 42 | -------------------------------------------------------------------------------- /docs/samples/upload_advisory_meta_bundle.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Upload advisory meta bundle 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | meta_bundle: "{{ meta_bundle }}" 9 | 10 | tasks: 11 | - name: Start to upload advisory meta bundle 12 | dellemc.vxrail.dellemc_vxrail_lcm_advisory_meta_bundle: 13 | vxmip: "{{ vxmip }}" 14 | vcadmin: "{{ vcadmin }}" 15 | vcpasswd: "{{ vcpasswd }}" 16 | meta_bundle: "{{ meta_bundle }}" 17 | timeout: "{{ timeout | default(omit) }}" 18 | api_version_number: "{{ api_version_number | default(omit) }}" 19 | register: upload_advisory_meta_bundle 20 | 21 | - name: Display advisory meta bundle Result 22 | debug: 23 | msg: "{{upload_advisory_meta_bundle}}" -------------------------------------------------------------------------------- /docs/samples/upload_customized_component.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Upload customized component via upload api 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | customized_component: "{{ customized_component }}" 9 | checksum: "{{ checksum }}" 10 | type: "{{ type }}" 11 | component_bundle: "{{ component_bundle }}" 12 | 13 | tasks: 14 | - name: Start to upload customized component 15 | dellemc.vxrail.dellemc_vxrail_lcm_customized_component: 16 | vxmip: "{{ vxmip }}" 17 | vcadmin: "{{ vcadmin }}" 18 | vcpasswd: "{{ vcpasswd }}" 19 | customized_component: "{{ customized_component }}" 20 | checksum: "{{ checksum }}" 21 | type: "{{ type }}" 22 | component_bundle: "{{ component_bundle }}" 23 | timeout: "{{ timeout | default(omit) }}" 24 | api_version_number: "{{ api_version_number | default(omit) }}" 25 | register: upload_lcm_customized_component 26 | 27 | - name: Display upload customized component result 28 | debug: 29 | msg: "{{ upload_lcm_customized_component }}" -------------------------------------------------------------------------------- /docs/samples/vc_get_mode_info.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieve VxRail VC Mode Information 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get VC Mode Information 11 | dellemc.vxrail.dellemc_vxrail_vc_getmode: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | timeout: "{{ timeout | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | register: vc_mode_info 18 | 19 | - name: Display VC Mode Info 20 | debug: 21 | msg: "{{vc_mode_info}}" 22 | -------------------------------------------------------------------------------- /docs/samples/vc_mode_change.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Change the VxRail vCenter mode 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | vc_mode: "{{ vc_mode }}" 9 | psc_mode: "{{ psc_mode }}" 10 | 11 | tasks: 12 | - name: Start to change the VxRail vCenter mode 13 | dellemc.vxrail.dellemc_vxrail_vc_mode_change: 14 | vxmip: "{{ vxmip }}" 15 | vcadmin: "{{ vcadmin }}" 16 | vcpasswd: "{{ vcpasswd }}" 17 | vc_mode: "{{ vc_mode }}" 18 | psc_mode: "{{ psc_mode }}" 19 | timeout: "{{ timeout | default(omit) }}" 20 | api_version_number: "{{ api_version_number | default(omit) }}" 21 | async: 1800 22 | poll: 0 23 | register: vc_mode_info 24 | - name: Check if VC mode is converted...The conversion is still ongoing. 25 | async_status: 26 | jid: "{{ vc_mode_info.ansible_job_id }}" 27 | register: job_result 28 | until: job_result.finished 29 | retries: 100 30 | delay: 30 31 | - name: Get changing VC mode Result 32 | debug: 33 | msg: "{{job_result}}" 34 | 35 | -------------------------------------------------------------------------------- /docs/samples/vminfo.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Retrieves name, status and host information for system virtual machines in the VxRail cluster 3 | hosts: localhost 4 | vars: 5 | vxmip: "{{ vxmip }}" 6 | vcadmin: "{{ vcadmin }}" 7 | vcpasswd: "{{ vcpasswd }}" 8 | 9 | tasks: 10 | - name: Get System VM Information 11 | dellemc.vxrail.dellemc_vxrail_cluster_getvm: 12 | vxmip: "{{ vxmip }}" 13 | vcadmin: "{{ vcadmin }}" 14 | vcpasswd: "{{ vcpasswd }}" 15 | timeout: "{{ timeout | default(omit) }}" 16 | api_version_number: "{{ api_version_number | default(omit) }}" 17 | register: system_vm_info 18 | 19 | - name: Display System VM Information 20 | debug: 21 | msg: "{{system_vm_info}}" 22 | -------------------------------------------------------------------------------- /galaxy.yml: -------------------------------------------------------------------------------- 1 | ### REQUIRED 2 | # The namespace of the collection. This can be a company/brand/organization or product namespace under which all 3 | # content lives. May only contain alphanumeric lowercase characters and underscores. Namespaces cannot start with 4 | # underscores or numbers and cannot contain consecutive underscores 5 | namespace: dellemc 6 | 7 | # The name of the collection. Has the same character restrictions as 'namespace' 8 | name: vxrail 9 | 10 | # The version of the collection. Must be compatible with semantic versioning 11 | version: 2.6.0 12 | 13 | # The path to the Markdown (.md) readme file. This path is relative to the root of the collection 14 | readme: README.md 15 | 16 | # A list of the collection's content authors. Can be just the name or in the format 'Full Name (url) 17 | # @nicks:irc/im.site#channel' 18 | authors: 19 | - VxRail Development Team 20 | 21 | 22 | ### OPTIONAL but strongly recommended 23 | # A short summary description of the collection 24 | description: your collection description 25 | 26 | # Either a single license or a list of licenses for content inside of a collection. Ansible Galaxy currently only 27 | # accepts L(SPDX,https://spdx.org/licenses/) licenses. This key is mutually exclusive with 'license_file' 28 | license: 29 | 30 | # The path to the license file for the collection. This path is relative to the root of the collection. This key is 31 | # mutually exclusive with 'license' 32 | license_file: 'LICENSE' 33 | 34 | # A list of tags you want to associate with the collection for indexing/searching. A tag name has the same character 35 | # requirements as 'namespace' and 'name' 36 | tags: [storage] 37 | 38 | # Collections that this collection requires to be installed for it to be usable. The key of the dict is the 39 | # collection label 'namespace.name'. The value is a version range 40 | # L(specifiers,https://python-semanticversion.readthedocs.io/en/latest/#requirement-specification). Multiple version 41 | # range specifiers can be set and are separated by ',' 42 | dependencies: {} 43 | 44 | # The URL of the originating SCM repository 45 | repository: https://github.com/dell/ansible-vxrail 46 | 47 | # The URL to any online docs 48 | documentation: https://github.com/dell/ansible-vxrail/tree/master/docs 49 | 50 | # The URL to the homepage of the collection/project 51 | homepage: https://github.com/dell/ansible-vxrail 52 | 53 | # The URL to the collection issue tracker 54 | issues: mailto:ansible.team@dell.com 55 | 56 | # A list of file glob-like patterns used to filter any files or directories that should not be included in the build 57 | # artifact. A pattern is matched from the relative path of the file or directory of the collection directory. This 58 | # uses 'fnmatch' to match the files or directories. Some directories and files like 'galaxy.yml', '*.pyc', '*.retry', 59 | # and '.git' are always filtered 60 | build_ignore: 61 | - '.drone.yml' 62 | - 'scripts' 63 | - 'sanity-test-requirements.txt' 64 | - '.poxio' 65 | - '.flake8' 66 | - '.gitlint' 67 | - 'build-output' 68 | - 'docs/Product Guide.md' 69 | -------------------------------------------------------------------------------- /meta/runtime.yml: -------------------------------------------------------------------------------- 1 | requires_ansible: ">=2.9" 2 | -------------------------------------------------------------------------------- /plugins/module_utils/__init__.py: -------------------------------------------------------------------------------- 1 | # #!/usr/bin/python 2 | # Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved 3 | -------------------------------------------------------------------------------- /plugins/modules/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dell/ansible-vxrail/39d0b2891fc097e9dd1a6b582f044f191e6db809/plugins/modules/__init__.py -------------------------------------------------------------------------------- /plugins/modules/dellemc_vxrail_bandwidth_throttling_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved 3 | 4 | 5 | # Copyright: (c) 2018, Terry Jones 6 | # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) 7 | from __future__ import (absolute_import, division, print_function) 8 | __metaclass__ = type 9 | 10 | DOCUMENTATION = r''' 11 | --- 12 | module: dellemc_vxrail_bandwidth_throttling_info 13 | 14 | short_description: Retrieve bandwidth throttling Information 15 | 16 | description: 17 | - This module will retrieve bandwidth throttling Information. 18 | options: 19 | 20 | vxmip: 21 | description: 22 | The IP address of the VxRail Manager System 23 | required: True 24 | type: str 25 | 26 | vcadmin: 27 | description: 28 | Administrative account of the vCenter Server the VxRail Manager is registered to 29 | required: True 30 | type: str 31 | 32 | vcpasswd: 33 | description: 34 | The password for the administrator account provided in vcadmin 35 | required: True 36 | type: str 37 | 38 | api_version_number: 39 | description: 40 | A specific version number to use for the API call. If not included, will use the highest version by default 41 | required: False 42 | type: int 43 | 44 | timeout: 45 | description: 46 | Time out value for getting telemetry information, the default value is 60 seconds 47 | required: false 48 | type: int 49 | default: 60 50 | 51 | author: 52 | - VxRail Development Team(@VxRailDevTeam) 53 | 54 | ''' 55 | 56 | EXAMPLES = r''' 57 | - name: Retrieve Bandwidth Throttling Information 58 | dellemc_vxrail_bandwidth_throttling_info: 59 | vxmip: "{{ vxmip }}" 60 | vcadmin: "{{ vcadmin }}" 61 | vcpasswd: "{{ vcpasswd }}" 62 | timeout : "{{ timeout }}" 63 | ''' 64 | 65 | RETURN = r''' 66 | BandwidthThrottlingInfo: 67 | description: The current bandwidth throttling level 68 | returned: always 69 | type: dict 70 | sample: >- 71 | { 72 | "level": "Advanced" 73 | } 74 | ''' 75 | 76 | import logging 77 | import urllib3 78 | from ansible.module_utils.basic import AnsibleModule 79 | import vxrail_ansible_utility 80 | from vxrail_ansible_utility.rest import ApiException 81 | from ansible_collections.dellemc.vxrail.plugins.module_utils import dellemc_vxrail_ansible_utils as utils 82 | 83 | LOGGER = utils.get_logger("dellemc_vxrail_bandwidth_throttling_info", "/tmp/vxrail_ansible_bandwidth_throttling_info.log", log_devel=logging.DEBUG) 84 | urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) 85 | 86 | 87 | class VxrailClusterUrls(): 88 | cluster_url = 'https://{}/rest/vxm' 89 | 90 | def __init__(self, vxm_ip): 91 | self.vxm_ip = vxm_ip 92 | 93 | def set_host(self): 94 | return VxrailClusterUrls.cluster_url.format(self.vxm_ip) 95 | 96 | 97 | class VxRailCluster(): 98 | def __init__(self): 99 | self.vxm_ip = module.params.get('vxmip') 100 | self.timeout = module.params.get('timeout') 101 | self.vc_admin = module.params.get('vcadmin') 102 | self.vc_password = module.params.get('vcpasswd') 103 | self.api_version_number = module.params.get('api_version_number') 104 | self.system_url = VxrailClusterUrls(self.vxm_ip) 105 | # Configure HTTP basic authorization: basicAuth 106 | self.configuration = vxrail_ansible_utility.Configuration() 107 | self.configuration.username = self.vc_admin 108 | self.configuration.password = self.vc_password 109 | self.configuration.verify_ssl = False 110 | self.configuration.host = self.system_url.set_host() 111 | self.api_version_string = "v?" 112 | 113 | def get_versioned_response(self, api_instance, module_path): 114 | # Set api version string and version number if undefined 115 | if self.api_version_number is None: 116 | self.api_version_string = utils.get_highest_api_version_string(self.vxm_ip, module_path, LOGGER) 117 | self.api_version_number = int(self.api_version_string.split('v')[1]) 118 | else: 119 | self.api_version_string = utils.get_api_version_string(self.vxm_ip, self.api_version_number, module_path, LOGGER) 120 | 121 | # Calls versioned method as attribute 122 | call_string = 'get_' + self.api_version_string + '_system_bandwidth_throttling' 123 | LOGGER.info("Using utility method: %s\n", call_string) 124 | system_bandwidththrottling_get = getattr(api_instance, call_string) 125 | return system_bandwidththrottling_get() 126 | 127 | def get_system_bandwidth_throttling(self): 128 | bandwidth_throttling_info = {} 129 | # create an instance of the API class 130 | api_instance = vxrail_ansible_utility.BandwidthThrottlingInformationApi(vxrail_ansible_utility.ApiClient(self.configuration)) 131 | try: 132 | response = self.get_versioned_response(api_instance, 'Get system/bandwidth-throttling') 133 | except ApiException as e: 134 | LOGGER.error("Exception when calling BandwidthThrottlingInformationApi->get_%s_system_bandwidth_throttling: %s\n", self.api_version_string, e) 135 | return 'error' 136 | LOGGER.info("%s/system/bandwidth-throttling api response: %s\n", self.api_version_string, response) 137 | data = response 138 | bandwidth_throttling_info['level'] = data.level 139 | return dict(bandwidth_throttling_info.items()) 140 | 141 | 142 | def main(): 143 | ''' Entry point into execution flow ''' 144 | result = '' 145 | global module 146 | # define available arguments/parameters a user can pass to the module 147 | module_args = dict( 148 | vxmip=dict(required=True), 149 | vcadmin=dict(required=True), 150 | vcpasswd=dict(required=True, no_log=True), 151 | api_version_number=dict(type='int'), 152 | timeout=dict(type='int', default=60) 153 | ) 154 | module = AnsibleModule( 155 | argument_spec=module_args, 156 | supports_check_mode=True, 157 | ) 158 | result = VxRailCluster().get_system_bandwidth_throttling() 159 | if result == 'error': 160 | module.fail_json(msg="Call GET system/bandwidth-throttling API failed," 161 | "please see log file /tmp/vxrail_ansible_bandwidth_throttling_info.log for more error details.") 162 | vx_facts = {'Bandwidth_Throttling': result} 163 | vx_facts_result = dict(changed=False, Bandwidth_Throttling_API=vx_facts) 164 | module.exit_json(**vx_facts_result) 165 | 166 | 167 | if __name__ == "__main__": 168 | main() 169 | -------------------------------------------------------------------------------- /plugins/modules/dellemc_vxrail_callhome_getmode.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved 3 | 4 | # Copyright: (c) 2018, Terry Jones 5 | # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | from __future__ import (absolute_import, division, print_function) 7 | __metaclass__ = type 8 | 9 | DOCUMENTATION = r''' 10 | --- 11 | module: dellemc_vxrail_callhome_getmode 12 | 13 | short_description: Retrieve the callhome mode. 14 | 15 | description: 16 | - This module will retrieve the call home mode. 17 | options: 18 | 19 | vxmip: 20 | description: 21 | The IP address of the VxRail Manager System 22 | required: True 23 | type: str 24 | 25 | vcadmin: 26 | description: 27 | Administrative account of the vCenter Server the VxRail Manager is registered to 28 | required: True 29 | type: str 30 | 31 | vcpasswd: 32 | description: 33 | The password for the administrator account provided in vcadmin 34 | required: True 35 | type: str 36 | 37 | timeout: 38 | description: 39 | Time out value for getting Callhome information, the default value is 60 seconds 40 | required: false 41 | type: int 42 | default: 60 43 | 44 | api_version_number: 45 | description: 46 | A specific version number to use for the API call. If not included, will use the highest version by default 47 | required: false 48 | type: int 49 | 50 | author: 51 | - VxRail Development Team(@VxRailDevTeam) 52 | 53 | ''' 54 | 55 | EXAMPLES = r''' 56 | - name: Get callhome mode information 57 | dellemc_vxrail_callhome_getmode: 58 | vxmip: "{{ vxmip }}" 59 | vcadmin: "{{ vcadmin }}" 60 | vcpasswd: "{{ vcpasswd }}" 61 | timeout: "{{ timeout }}" 62 | api_version_number: "{{ api_version_number }}" 63 | ''' 64 | 65 | RETURN = r''' 66 | CallHome_Mode: 67 | description: The current callhome mode 68 | returned: always 69 | type: dict 70 | sample: >- 71 | { 72 | "is_muted": true 73 | } 74 | 75 | ''' 76 | 77 | import logging 78 | import urllib3 79 | from ansible.module_utils.basic import AnsibleModule 80 | import vxrail_ansible_utility 81 | from vxrail_ansible_utility.rest import ApiException 82 | from ansible_collections.dellemc.vxrail.plugins.module_utils import dellemc_vxrail_ansible_utils as utils 83 | 84 | LOGGER = utils.get_logger("dellemc_vxrail_callhome_getmode", "/tmp/vxrail_ansible_callhome_getmode.log", log_devel=logging.DEBUG) 85 | urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) 86 | 87 | 88 | class VxrailClusterUrls(): 89 | cluster_url = 'https://{}/rest/vxm' 90 | 91 | def __init__(self, vxm_ip): 92 | self.vxm_ip = vxm_ip 93 | 94 | def set_host(self): 95 | return VxrailClusterUrls.cluster_url.format(self.vxm_ip) 96 | 97 | 98 | class VxRailCluster(): 99 | def __init__(self): 100 | self.vxm_ip = module.params.get('vxmip') 101 | self.timeout = module.params.get('timeout') 102 | self.vc_admin = module.params.get('vcadmin') 103 | self.vc_password = module.params.get('vcpasswd') 104 | self.api_version_number = module.params.get('api_version_number') 105 | self.system_url = VxrailClusterUrls(self.vxm_ip) 106 | # Configure HTTP basic authorization: basicAuth 107 | self.configuration = vxrail_ansible_utility.Configuration() 108 | self.configuration.username = self.vc_admin 109 | self.configuration.password = self.vc_password 110 | self.configuration.verify_ssl = False 111 | self.configuration.host = self.system_url.set_host() 112 | self.api_version_string = "v?" 113 | 114 | # Obtains the response for the given module path with specified api_version_number or highest found version 115 | def get_versioned_response(self, api_instance, module_path): 116 | # Set api version string and version number if undefined 117 | if self.api_version_number is None: 118 | self.api_version_string = utils.get_highest_api_version_string(self.vxm_ip, module_path, LOGGER) 119 | self.api_version_number = int(self.api_version_string.split('v')[1]) 120 | else: 121 | self.api_version_string = utils.get_api_version_string(self.vxm_ip, self.api_version_number, module_path, LOGGER) 122 | 123 | # Calls versioned method as attribute (ex: v1_callhome_mode_get) 124 | call_string = self.api_version_string + "_callhome_mode_get" 125 | LOGGER.info("Using utility method: %s\n", call_string) 126 | callhome_mode_info = getattr(api_instance, call_string) 127 | return callhome_mode_info() 128 | 129 | def get_callhome_mode(self): 130 | CallHomeModeInfo = {} 131 | # create an instance of the API class 132 | api_instance = vxrail_ansible_utility.CallHomeModeApi(vxrail_ansible_utility.ApiClient(self.configuration)) 133 | try: 134 | # query CallHome Mode information 135 | response = self.get_versioned_response(api_instance, "Get /callhome/mode") 136 | except ApiException as e: 137 | LOGGER.error("Exception when calling CallHomeModeApi->calhome_mode_get: %s\n", e) 138 | return 'error' 139 | LOGGER.info("%s/callhome/mode api response: %s\n", self.api_version_string, response) 140 | data = response 141 | CallHomeModeInfo['is_muted'] = data.is_muted 142 | return dict(CallHomeModeInfo.items()) 143 | 144 | 145 | def main(): 146 | ''' Entry point into execution flow ''' 147 | result = '' 148 | global module 149 | # define available arguments/parameters a user can pass to the module 150 | module_args = dict( 151 | vxmip=dict(required=True), 152 | vcadmin=dict(required=True), 153 | vcpasswd=dict(required=True, no_log=True), 154 | api_version_number=dict(type='int'), 155 | timeout=dict(type='int', default=60) 156 | ) 157 | module = AnsibleModule( 158 | argument_spec=module_args, 159 | supports_check_mode=True, 160 | ) 161 | result = VxRailCluster().get_callhome_mode() 162 | if result == 'error': 163 | module.fail_json(msg="Call GET /callhome/mode API failed," 164 | "please see log file /tmp/vxrail_ansible_callhome_getmode.log for more error details.") 165 | vx_facts = {'CallHome_Mode': result} 166 | vx_facts_result = dict(changed=False, CallHome_Mode_API=vx_facts) 167 | module.exit_json(**vx_facts_result) 168 | 169 | 170 | if __name__ == "__main__": 171 | main() 172 | -------------------------------------------------------------------------------- /plugins/modules/dellemc_vxrail_certificates_removecertificate.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved 3 | 4 | 5 | # Copyright: (c) 2018, Terry Jones 6 | # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) 7 | from __future__ import (absolute_import, division, print_function) 8 | __metaclass__ = type 9 | 10 | DOCUMENTATION = r''' 11 | --- 12 | module: dellemc_vxrail_certificates_removecertificate 13 | 14 | short_description: Remove the certificate according to the fingerprint. 15 | 16 | description: 17 | - This module will let you remove certificates from VXM trust store according to fingerprint. 18 | options: 19 | 20 | vxmip: 21 | description: 22 | The IP address of the VxRail Manager System 23 | required: True 24 | type: str 25 | 26 | vcadmin: 27 | description: 28 | Administrative account of the vCenter Server the VxRail Manager is registered to 29 | required: True 30 | type: str 31 | 32 | vcpasswd: 33 | description: 34 | The password for the administrator account provided in vcadmin 35 | required: True 36 | type: str 37 | 38 | fingerprint: 39 | description: 40 | Target certificate you want to remove 41 | required: True 42 | type: str 43 | 44 | api_version_number: 45 | description: 46 | A specific version number to use for the API call. If not included, will use the highest version by default 47 | required: False 48 | type: int 49 | 50 | timeout: 51 | description: 52 | Time out value for getting system information, the default value is 60 seconds 53 | required: false 54 | type: int 55 | default: 60 56 | 57 | author: 58 | - VxRail Development Team(@VxRailDevTeam) 59 | 60 | ''' 61 | 62 | EXAMPLES = r''' 63 | - name: Get a fingerprint list 64 | dellemc_vxrail_certificates_removecertificate: 65 | vxmip: "{{ vxmip }}" 66 | vcadmin: "{{ vcadmin }}" 67 | vcpasswd: "{{ vcpasswd }}" 68 | ''' 69 | 70 | RETURN = r''' 71 | Result: 72 | description: status of API invoke result. 73 | returned: always 74 | type: dict 75 | sample: >- 76 | { 77 | "Result": "Certificate remove successfully" 78 | } 79 | ''' 80 | 81 | import logging 82 | import urllib3 83 | from ansible.module_utils.basic import AnsibleModule 84 | import vxrail_ansible_utility 85 | from vxrail_ansible_utility.rest import ApiException 86 | from ansible_collections.dellemc.vxrail.plugins.module_utils import dellemc_vxrail_ansible_utils as utils 87 | 88 | RESULT = "Result" 89 | API = "/trust-store/certificates/{fingerprint}" 90 | LOG_FILE_PATH = "/tmp/vxrail_ansible_removecertificate.log" 91 | MODULE = "dellemc_vxrail_certificates_removecertificate" 92 | 93 | LOGGER = utils.get_logger(MODULE, LOG_FILE_PATH, log_devel=logging.DEBUG) 94 | urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) 95 | 96 | 97 | class VxrailSystemUrls(): 98 | cluster_url = 'https://{}/rest/vxm' 99 | 100 | def __init__(self, vxm_ip): 101 | self.vxm_ip = vxm_ip 102 | 103 | def set_host(self): 104 | return VxrailSystemUrls.cluster_url.format(self.vxm_ip) 105 | 106 | 107 | class VxRailSystem(): 108 | def __init__(self): 109 | self.vxm_ip = module.params.get('vxmip') 110 | self.timeout = module.params.get('timeout') 111 | self.vc_admin = module.params.get('vcadmin') 112 | self.vc_password = module.params.get('vcpasswd') 113 | self.system_url = VxrailSystemUrls(self.vxm_ip) 114 | self.fingerprint = module.params.get('fingerprint') 115 | self.api_version_number = module.params.get('api_version_number') 116 | # Configure HTTP basic authorization: basicAuth 117 | self.configuration = vxrail_ansible_utility.Configuration() 118 | self.configuration.username = self.vc_admin 119 | self.configuration.password = self.vc_password 120 | self.configuration.verify_ssl = False 121 | self.configuration.host = self.system_url.set_host() 122 | self.api_version_string = "v?" 123 | 124 | # Obtains the response for the given module path with specified api_version_number or highest found version 125 | def get_versioned_response(self, api_instance, module_path): 126 | # Set api version string and version number if not defined 127 | if self.api_version_number is None: 128 | self.api_version_string = utils.get_highest_api_version_string(self.vxm_ip, module_path, LOGGER) 129 | self.api_version_number = int(self.api_version_string.split('v')[1]) 130 | else: 131 | self.api_version_string = utils.get_api_version_string(self.vxm_ip, self.api_version_number, module_path, LOGGER) 132 | 133 | call_string = self.api_version_string + '_trust_store_certificates_fingerprint_delete' 134 | LOGGER.info("Using utility method: %s\n", call_string) 135 | api_chassis_get = getattr(api_instance, call_string) 136 | return api_chassis_get(self.fingerprint) 137 | 138 | def invoke_public_api(self) -> dict: 139 | # create an instance of the API class 140 | api_instance = vxrail_ansible_utility.CertificatesApi(vxrail_ansible_utility.ApiClient(self.configuration)) 141 | try: 142 | # Invoke api 143 | self.get_versioned_response(api_instance, "DELETE /trust-store/certificates/{fingerprint}") 144 | except ApiException as e: 145 | LOGGER.error("Exception when calling CertificatesApi->%s_trust_store_certificates_delete: %s\n", str(self.api_version_string), e) 146 | return 'error' 147 | return "Certificate remove successfully" 148 | 149 | 150 | def main(): 151 | ''' Entry point into execution flow ''' 152 | global module 153 | # define available arguments/parameters a user can pass to the module 154 | module_args = dict( 155 | vxmip=dict(required=True), 156 | vcadmin=dict(required=True), 157 | vcpasswd=dict(required=True, no_log=True), 158 | timeout=dict(type='int', default=60), 159 | api_version_number=dict(type='int'), 160 | fingerprint=dict(required=True) 161 | ) 162 | module = AnsibleModule( 163 | argument_spec=module_args, 164 | supports_check_mode=True, 165 | ) 166 | result = VxRailSystem().invoke_public_api() 167 | if result == 'error': 168 | module.fail_json( 169 | msg=f"Call {API} API failed,please see log file {LOG_FILE_PATH} for more error details.") 170 | vx_facts = {RESULT: result} 171 | vx_facts_result = dict(changed=False, API_Facts=vx_facts) 172 | module.exit_json(**vx_facts_result) 173 | 174 | 175 | if __name__ == "__main__": 176 | main() 177 | -------------------------------------------------------------------------------- /plugins/modules/dellemc_vxrail_lcm_vlcm_commit_draft.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved 3 | 4 | # Copyright: (c) 2018, Terry Jones 5 | # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | from __future__ import (absolute_import, division, print_function) 7 | 8 | __metaclass__ = type 9 | 10 | DOCUMENTATION = r''' 11 | --- 12 | module: dellemc_vxrail_lcm_vlcm_commit_draft 13 | 14 | short_description: commit vlcm draft 15 | 16 | description: 17 | - This module will commit vLCM draft. 18 | options: 19 | vxmip: 20 | description: 21 | The IP address of the VxRail Manager System 22 | required: True 23 | type: str 24 | 25 | vcadmin: 26 | description: 27 | Administrative account of the vCenter Server the VxRail Manager is registered to 28 | required: True 29 | type: str 30 | 31 | vcpasswd: 32 | description: 33 | The password for the administrator account provided in vcadmin 34 | required: True 35 | type: str 36 | 37 | api_version_number: 38 | description: 39 | Specify the API version to perform the upgrade. 40 | required: false 41 | type: int 42 | 43 | author: 44 | - VxRail Development Team(@VxRailDevTeam) 45 | 46 | ''' 47 | 48 | RETURN = r''' 49 | VLCM_COMMIT_DRAFT_API: 50 | description: Commit vLCM draft 51 | returned: always 52 | type: dict 53 | sample: >- 54 | { "result": vlcm_draft_commit_result} 55 | ''' 56 | 57 | import logging 58 | import urllib3 59 | from ansible.module_utils.basic import AnsibleModule 60 | import vxrail_ansible_utility 61 | from vxrail_ansible_utility.rest import ApiException 62 | import time 63 | import json 64 | from ansible_collections.dellemc.vxrail.plugins.module_utils import dellemc_vxrail_ansible_utils as utils 65 | 66 | LOG_FILE_NAME = "/tmp/vxrail_ansible_lcm_vlcm_commit_draft.log" 67 | LOGGER = utils.get_logger("dellemc_vxrail_lcm_vlcm_commit_draft", LOG_FILE_NAME, log_devel=logging.DEBUG) 68 | urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) 69 | CHECK_STATUS_INTERVAL = 60 70 | MAX_CHECK_COUNT = 60 71 | 72 | 73 | class VxrailVXMUrls(): 74 | vxm_url = 'https://{}/rest/vxm' 75 | 76 | def __init__(self, vxm_ip): 77 | self.vxm_ip = vxm_ip 78 | 79 | def set_host(self): 80 | return VxrailVXMUrls.vxm_url.format(self.vxm_ip) 81 | 82 | 83 | class VxRailLCMCommitVLCMDraft(): 84 | def __init__(self): 85 | self.vxm_ip = module.params.get('vxmip') 86 | self.vc_admin = module.params.get('vcadmin') 87 | self.vc_password = module.params.get('vcpasswd') 88 | 89 | self.vxm_url = VxrailVXMUrls(self.vxm_ip) 90 | self.api_version_number = module.params.get('api_version_number') 91 | # Configure HTTP basic authorization: basicAuth 92 | self.configuration = vxrail_ansible_utility.Configuration() 93 | self.configuration.username = self.vc_admin 94 | self.configuration.password = self.vc_password 95 | self.configuration.verify_ssl = False 96 | self.configuration.host = self.vxm_url.set_host() 97 | 98 | # Obtains the response for the given module path with specified api_version_number or highest found version 99 | def get_versioned_response(self, module_path): 100 | # Set api version string and version number if not defined 101 | if self.api_version_number is None: 102 | api_version_string = utils.get_highest_api_version_string(self.vxm_ip, module_path, LOGGER) 103 | self.api_version_number = int(api_version_string.split('v')[1]) 104 | else: 105 | api_version_string = utils.get_api_version_string(self.vxm_ip, self.api_version_number, module_path, 106 | LOGGER) 107 | return api_version_string 108 | 109 | def post_commit_vlcm_draft(self): 110 | try: 111 | # create an instance of the API class 112 | api_instance = vxrail_ansible_utility.VLCMApi(vxrail_ansible_utility.ApiClient(self.configuration)) 113 | # start commit vLCM draft with versioned api 114 | api_version_string = self.get_versioned_response('Post /lcm/vlcm/enablement/draft/commit') 115 | call_string = 'vlcm_enablement_draft_commit_post_' + api_version_string 116 | LOGGER.info("LCM vlcm_commit_draft version: %s", call_string) 117 | commit_vlcm_draft = getattr(api_instance, call_string) 118 | response = commit_vlcm_draft() 119 | LOGGER.info("commit vLCM draft api response:") 120 | LOGGER.info(response) 121 | except ApiException as e: 122 | LOGGER.error("Exception when calling VLCMApi vlcm_enablement_draft_commit_post_v1->%s: %s\n", call_string, e) 123 | return 'Fail to enable vLCM' 124 | return response.message 125 | 126 | def main(): 127 | ''' Entry point into execution flow ''' 128 | global module 129 | # define available arguments/parameters a user can pass to the module 130 | 131 | module_args = dict( 132 | vxmip=dict(required=True), 133 | vcadmin=dict(required=True), 134 | vcpasswd=dict(required=True, no_log=True), 135 | api_version_number=dict(type='int', required=False) 136 | ) 137 | 138 | module = AnsibleModule( 139 | argument_spec=module_args, 140 | supports_check_mode=True, 141 | ) 142 | 143 | LOGGER.info('----Start to commit vLCM draft: ----') 144 | vlcm_draft_commit_result = VxRailLCMCommitVLCMDraft().post_commit_vlcm_draft() 145 | vx_lcm = {'result': vlcm_draft_commit_result} 146 | if vlcm_draft_commit_result == 'Successfully enable vLCM': 147 | LOGGER.info("-------Commit vLCM draft successfully.-----") 148 | else: 149 | LOGGER.info("------Commit vLCM draft unsuccessfully-----") 150 | 151 | LOGGER.info('----Failed reason is : %s.----', vlcm_draft_commit_result) 152 | vx_facts_result = dict(failed=True, VLCM_COMMIT_DRAFT_API=vx_lcm, 153 | msg=f"Commit vLCM draft has failed. Please see the {LOG_FILE_NAME} for more details") 154 | module.exit_json(**vx_facts_result) 155 | vx_facts_result = dict(VLCM_COMMIT_DRAFT_API=vx_lcm, 156 | msg=f"Commit vLCM draft is successful. Please see the {LOG_FILE_NAME} for more details") 157 | LOGGER.info("vx_facts_result: %s\n", vx_facts_result) 158 | module.exit_json(**vx_facts_result) 159 | 160 | if __name__ == '__main__': 161 | main() 162 | -------------------------------------------------------------------------------- /plugins/modules/dellemc_vxrail_lcm_vlcm_get.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved 3 | 4 | # Copyright: (c) 2018, Terry Jones 5 | # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | from __future__ import (absolute_import, division, print_function) 7 | 8 | __metaclass__ = type 9 | 10 | DOCUMENTATION = r''' 11 | --- 12 | module: dellemc_vxrail_lcm_vlcm_get 13 | 14 | short_description: get vlcm info 15 | 16 | description: 17 | - This module will retry the LCM full upgrade or partial upgrade if started through the LCM API call. 18 | options: 19 | vxmip: 20 | description: 21 | The IP address of the VxRail Manager System 22 | required: True 23 | type: str 24 | 25 | vcadmin: 26 | description: 27 | Administrative account of the vCenter Server the VxRail Manager is registered to 28 | required: True 29 | type: str 30 | 31 | vcpasswd: 32 | description: 33 | The password for the administrator account provided in vcadmin 34 | required: True 35 | type: str 36 | 37 | timeout: 38 | description: 39 | Time out value for LCM Upgrade Retry, the default value is 21600 seconds 40 | required: false 41 | type: int 42 | default: 21600 43 | 44 | api_version_number: 45 | description: 46 | Specify the API version to perform the upgrade. 47 | required: false 48 | type: int 49 | 50 | author: 51 | - VxRail Development Team(@VxRailDevTeam) 52 | 53 | ''' 54 | 55 | RETURN = r''' 56 | VLCM_INFO: 57 | description: The current vlcm info 58 | returned: always 59 | type: dict 60 | sample: >- 61 | { 62 | "enable": true, 63 | "cluster_name": "VxRail-Virtual-SAN-Cluster-7f002c05-9e11-4c14-9e4b-e9799c19f7e6" 64 | } 65 | ''' 66 | 67 | import logging 68 | import urllib3 69 | from ansible.module_utils.basic import AnsibleModule 70 | import vxrail_ansible_utility 71 | from vxrail_ansible_utility.rest import ApiException 72 | import time 73 | from ansible_collections.dellemc.vxrail.plugins.module_utils import dellemc_vxrail_ansible_utils as utils 74 | 75 | LOG_FILE_NAME = "/tmp/vxrail_ansible_lcm_vlcm.log" 76 | LOGGER = utils.get_logger("dellemc_vxrail_lcm_vlcm", LOG_FILE_NAME, log_devel=logging.DEBUG) 77 | urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) 78 | MAX_RETRY_COUNT = 8 79 | CHECK_STATUS_INTERVAL = 360 80 | MAX_CHECK_COUNT = 60 81 | 82 | 83 | class VxrailVXMUrls(): 84 | vxm_url = 'https://{}/rest/vxm' 85 | 86 | def __init__(self, vxm_ip): 87 | self.vxm_ip = vxm_ip 88 | 89 | def set_host(self): 90 | return VxrailVXMUrls.vxm_url.format(self.vxm_ip) 91 | 92 | 93 | class VxRailLCMGetVLCM(): 94 | def __init__(self): 95 | self.vxm_ip = module.params.get('vxmip') 96 | self.timeout = module.params.get('timeout') 97 | self.vc_admin = module.params.get('vcadmin') 98 | self.vc_password = module.params.get('vcpasswd') 99 | self.vxm_url = VxrailVXMUrls(self.vxm_ip) 100 | self.api_version_number = module.params.get('api_version_number') 101 | # Configure HTTP basic authorization: basicAuth 102 | self.configuration = vxrail_ansible_utility.Configuration() 103 | self.configuration.username = self.vc_admin 104 | self.configuration.password = self.vc_password 105 | self.configuration.verify_ssl = False 106 | self.configuration.host = self.vxm_url.set_host() 107 | 108 | # Obtains the response for the given module path with specified api_version_number or highest found version 109 | def get_versioned_response(self, module_path): 110 | # Set api version string and version number if not defined 111 | if self.api_version_number is None: 112 | api_version_string = utils.get_highest_api_version_string(self.vxm_ip, module_path, LOGGER) 113 | self.api_version_number = int(api_version_string.split('v')[1]) 114 | else: 115 | api_version_string = utils.get_api_version_string(self.vxm_ip, self.api_version_number, module_path, 116 | LOGGER) 117 | return api_version_string 118 | 119 | def get_vlcm_info(self): 120 | try: 121 | # create an instance of the API class 122 | LOGGER.info("Retrieve cluster vLCM information") 123 | api_instance = vxrail_ansible_utility.VLCMApi(vxrail_ansible_utility.ApiClient(self.configuration)) 124 | api_version_string = self.get_versioned_response("GET /lcm/vlcm") 125 | call_string = 'vlcm_enablement_get_' + api_version_string 126 | LOGGER.info("Using utility method: %s\n", call_string) 127 | api_vlcm_get = getattr(api_instance, call_string) 128 | response = api_vlcm_get() 129 | 130 | LOGGER.info("Response: %s\n", response) 131 | except ApiException as e: 132 | LOGGER.error("Exception when calling %s %s, response: %s\n", api_version_string, e, response) 133 | return 'error' 134 | return response.to_dict() 135 | 136 | 137 | def main(): 138 | ''' Entry point into execution flow ''' 139 | global module 140 | # define available arguments/parameters a user can pass to the module 141 | 142 | module_args = dict( 143 | vxmip=dict(required=True), 144 | vcadmin=dict(required=True), 145 | vcpasswd=dict(required=True, no_log=True), 146 | api_version_number=dict(type='int', required=False), 147 | timeout=dict(type='int', default=3600) 148 | ) 149 | 150 | module = AnsibleModule( 151 | argument_spec=module_args, 152 | supports_check_mode=True, 153 | ) 154 | result = VxRailLCMGetVLCM().get_vlcm_info() 155 | if result == 'error': 156 | module.fail_json(msg=f"Retrieve vLCM informations has failed. Please see the {LOG_FILE_NAME} for more details") 157 | 158 | vx_facts = result 159 | vx_facts_result = dict(VLCM_INFO=vx_facts, msg=f"Retrieve vLCM informations success. Please see the {LOG_FILE_NAME} for more details") 160 | LOGGER.info("vx_facts_result: %s\n", vx_facts_result) 161 | module.exit_json(**vx_facts_result) 162 | 163 | if __name__ == '__main__': 164 | main() 165 | -------------------------------------------------------------------------------- /plugins/modules/dellemc_vxrail_system_get_ntp.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved 3 | 4 | 5 | # Copyright: (c) 2018, Terry Jones 6 | # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) 7 | from __future__ import (absolute_import, division, print_function) 8 | __metaclass__ = type 9 | 10 | DOCUMENTATION = r''' 11 | --- 12 | module: dellemc_vxrail_system_get_ntp 13 | 14 | short_description: Retrieve information about the NTP servers for the cluster. 15 | 16 | description: 17 | - This module will retrieve information about the NTP servers for the cluster. 18 | options: 19 | 20 | vxmip: 21 | description: 22 | The IP address of the VxRail Manager System 23 | required: True 24 | type: str 25 | 26 | vcadmin: 27 | description: 28 | Administrative account of the vCenter Server the VxRail Manager is registered to 29 | required: True 30 | type: str 31 | 32 | vcpasswd: 33 | description: 34 | The password for the administrator account provided in vcadmin 35 | required: True 36 | type: str 37 | 38 | api_version_number: 39 | description: 40 | A specific version number to use for the API call. If not included, will use the highest version by default 41 | required: False 42 | type: int 43 | 44 | timeout: 45 | description: 46 | Time out value for getting system information, the default value is 60 seconds 47 | required: false 48 | type: int 49 | default: 60 50 | 51 | author: 52 | - VxRail Development Team(@VxRailDevTeam) 53 | 54 | ''' 55 | 56 | EXAMPLES = r''' 57 | - name: Get System NTP Information 58 | dellemc_vxrail_system_get_ntp: 59 | vxmip: "{{ vxmip }}" 60 | vcadmin: "{{ vcadmin }}" 61 | vcpasswd: "{{ vcpasswd }}" 62 | timeout: "{{ timeout }}" 63 | api_version_number: "{{ api_version_number }}" 64 | ''' 65 | 66 | RETURN = r''' 67 | System_NTP_Info: 68 | description: System NTP information summary 69 | returned: always 70 | type: dict 71 | sample: >- 72 | { 73 | "servers": [ 74 | "172.23.1.167", 75 | "172.24.1.167" 76 | ] 77 | } 78 | 79 | ''' 80 | 81 | import logging 82 | import urllib3 83 | from ansible.module_utils.basic import AnsibleModule 84 | import vxrail_ansible_utility 85 | from vxrail_ansible_utility.rest import ApiException 86 | from ansible_collections.dellemc.vxrail.plugins.module_utils import dellemc_vxrail_ansible_utils as utils 87 | 88 | # Defining global variables 89 | API = "/system/ntp" 90 | MODULE = "dellemc_vxrail_system_get_ntp" 91 | LOG_FILE_PATH = "/tmp/vxrail_ansible_system_get_ntp.log" 92 | RESULT = "System_NTP_Info" 93 | 94 | LOGGER = utils.get_logger(MODULE, LOG_FILE_PATH, log_devel=logging.DEBUG) 95 | urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) 96 | 97 | 98 | class VxrailSystemUrls(): 99 | 100 | def __init__(self, vxm_ip): 101 | self.vxm_ip = vxm_ip 102 | 103 | def set_host(self): 104 | return f"https://{self.vxm_ip}/rest/vxm" 105 | 106 | 107 | class VxRailSystem(): 108 | def __init__(self): 109 | self.vxm_ip = module.params.get('vxmip') 110 | self.timeout = module.params.get('timeout') 111 | self.vc_admin = module.params.get('vcadmin') 112 | self.vc_password = module.params.get('vcpasswd') 113 | self.api_version_number = module.params.get('api_version_number') 114 | 115 | self.system_url = VxrailSystemUrls(self.vxm_ip) 116 | # Configure HTTP basic authorization: basicAuth 117 | self.configuration = vxrail_ansible_utility.Configuration() 118 | self.configuration.username = self.vc_admin 119 | self.configuration.password = self.vc_password 120 | self.configuration.verify_ssl = False 121 | self.configuration.host = self.system_url.set_host() 122 | self.api_version_string = "v?" 123 | 124 | def get_versioned_response(self, api_instance, module_path): 125 | # Set api version string and version number if undefined 126 | if self.api_version_number is None: 127 | self.api_version_string = utils.get_highest_api_version_string(self.vxm_ip, module_path, LOGGER) 128 | self.api_version_number = int(self.api_version_string.split('v')[1]) 129 | else: 130 | self.api_version_string = utils.get_api_version_string(self.vxm_ip, self.api_version_number, module_path, 131 | LOGGER) 132 | 133 | # Calls versioned method as attribute (ex: v1_system_ntp_get) 134 | call_string = self.api_version_string + '_system_ntp_get' 135 | LOGGER.info("Using utility method: %s\n", call_string) 136 | system_ntp_get = getattr(api_instance, call_string) 137 | return system_ntp_get() 138 | 139 | def get_api_response(self): 140 | ntp_return_info = {} 141 | 142 | # create an instance of the API class 143 | api_instance = vxrail_ansible_utility.SystemInformationApi(vxrail_ansible_utility.ApiClient(self.configuration)) 144 | try: 145 | # query API 146 | response = self.get_versioned_response(api_instance, "GET /system/ntp") 147 | except ApiException as e: 148 | LOGGER.error("Exception when calling SystemInformationApi->%s_system_ntp_get: %s\n", self.api_version_string, e) 149 | return 'error' 150 | LOGGER.info("%s%s api response: %s\n", self.api_version_string, API, response) 151 | data = response 152 | ntp_return_info['servers'] = data.servers 153 | return dict(ntp_return_info.items()) 154 | 155 | 156 | def main(): 157 | ''' Entry point into execution flow ''' 158 | result = '' 159 | global module 160 | # define available arguments/parameters a user can pass to the module 161 | module_args = dict( 162 | vxmip=dict(required=True), 163 | vcadmin=dict(required=True), 164 | vcpasswd=dict(required=True, no_log=True), 165 | api_version_number=dict(type='int'), 166 | timeout=dict(type='int', default=60) 167 | ) 168 | module = AnsibleModule( 169 | argument_spec=module_args, 170 | supports_check_mode=True, 171 | ) 172 | result = VxRailSystem().get_api_response() 173 | if result == 'error': 174 | module.fail_json( 175 | msg=f"Call {API} API failed,please see log file {LOG_FILE_PATH} for more error details.") 176 | vx_facts = {RESULT: result} 177 | vx_facts_result = dict(changed=False, System_NTP_API=vx_facts) 178 | module.exit_json(**vx_facts_result) 179 | 180 | 181 | if __name__ == "__main__": 182 | main() 183 | -------------------------------------------------------------------------------- /plugins/modules/dellemc_vxrail_system_getprecheckversion.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved 3 | 4 | # Copyright: (c) 2018, Terry Jones 5 | # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | from __future__ import (absolute_import, division, print_function) 7 | __metaclass__ = type 8 | 9 | DOCUMENTATION = r''' 10 | --- 11 | module: dellemc_vxrail_system_getprecheckversion 12 | 13 | short_description: Get the precheck service version. 14 | 15 | description: 16 | - This module will get the current version of the precheck service in the VxRail system. 17 | options: 18 | 19 | vxmip: 20 | description: 21 | The IP address of the VxRail Manager System 22 | required: True 23 | type: str 24 | 25 | vcadmin: 26 | description: 27 | Administrative account of the vCenter Server the VxRail Manager is registered to 28 | required: True 29 | type: str 30 | 31 | vcpasswd: 32 | description: 33 | The password for the administrator account provided in vcadmin 34 | required: True 35 | type: str 36 | 37 | timeout: 38 | description: 39 | Time out value for getting current version of the precheck service, the default value is 60 seconds 40 | required: false 41 | type: int 42 | default: 60 43 | 44 | api_version_number: 45 | description: 46 | A specific version number to use for the API call. If not included, will use the highest version by default 47 | required: false 48 | type: int 49 | 50 | author: 51 | - VxRail Development Team(@VxRailDevTeam) 52 | 53 | ''' 54 | 55 | EXAMPLES = r''' 56 | - name: Get precheck service version information 57 | dellemc_vxrail_system_getprecheckversion: 58 | vxmip: "{{ vxmip }}" 59 | vcadmin: "{{ vcadmin }}" 60 | vcpasswd: "{{ vcpasswd }}" 61 | timeout: "{{ timeout }}" 62 | api_version_number: "{{ api_version_number }}" 63 | ''' 64 | 65 | RETURN = r''' 66 | Precheck_Version: 67 | description: Get the current version of the precheck service 68 | returned: always 69 | type: dict 70 | sample: >- 71 | { 72 | "version": "1.0.700", 73 | } 74 | ''' 75 | 76 | import logging 77 | import urllib3 78 | from ansible.module_utils.basic import AnsibleModule 79 | import vxrail_ansible_utility 80 | from vxrail_ansible_utility.rest import ApiException 81 | from ansible_collections.dellemc.vxrail.plugins.module_utils import dellemc_vxrail_ansible_utils as utils 82 | 83 | LOGGER = utils.get_logger("dellemc_vxrail_system_getprecheckversion", "/tmp/vxrail_ansible_system_getprecheckversion.log", log_devel=logging.DEBUG) 84 | urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) 85 | 86 | 87 | class VxRailClusterUrls(): 88 | cluster_url = 'https://{}/rest/vxm' 89 | 90 | def __init__(self, vxm_ip): 91 | self.vxm_ip = vxm_ip 92 | 93 | def set_host(self): 94 | return VxRailClusterUrls.cluster_url.format(self.vxm_ip) 95 | 96 | 97 | class VxRailCluster(): 98 | def __init__(self): 99 | self.vxm_ip = module.params.get('vxmip') 100 | self.timeout = module.params.get('timeout') 101 | self.vc_admin = module.params.get('vcadmin') 102 | self.vc_password = module.params.get('vcpasswd') 103 | self.api_version_number = module.params.get('vcpasswd') 104 | self.api_version_number = module.params.get('api_version_number') 105 | self.system_url = VxRailClusterUrls(self.vxm_ip) 106 | # Configure HTTP basic authorization: basicAuth 107 | self.configuration = vxrail_ansible_utility.Configuration() 108 | self.configuration.username = self.vc_admin 109 | self.configuration.password = self.vc_password 110 | self.configuration.verify_ssl = False 111 | self.configuration.host = self.system_url.set_host() 112 | self.api_version_string = "v?" 113 | 114 | # Obtains the response for the given module path with specified api_version_number or highest found version 115 | def get_versioned_response(self, api_instance, module_path): 116 | # Set api version string and version number if undefined 117 | if self.api_version_number is None: 118 | self.api_version_string = utils.get_highest_api_version_string(self.vxm_ip, module_path, LOGGER) 119 | 120 | call_string = self.api_version_string + '_system_prechecks_version_get' 121 | LOGGER.info("Using utility method: %s\n", call_string) 122 | api_system_get = getattr(api_instance, call_string) 123 | return api_system_get() 124 | 125 | def get_precheck_version(self): 126 | PrecheckVersion = {} 127 | # create an instance of the API class 128 | api_instance = vxrail_ansible_utility.SystemPreCheckApi(vxrail_ansible_utility.ApiClient(self.configuration)) 129 | try: 130 | # query System Precheck Version information 131 | response = self.get_versioned_response(api_instance, "GET /system/prechecks/precheck-service-version") 132 | except ApiException as e: 133 | LOGGER.error("Exception when calling SystemPreCheckApi->%s_system_prechecks_version_get: %s\n", self.api_version_string, e) 134 | return 'error' 135 | LOGGER.info("%s/system/prechecks/precheck-service-version api response: %s\n", self.api_version_string, response) 136 | data = response 137 | PrecheckVersion['version'] = data.version 138 | return dict(PrecheckVersion.items()) 139 | 140 | 141 | def main(): 142 | ''' Entry point into execution flow''' 143 | result = '' 144 | global module 145 | # define available arguments/parameters a user can pass to the module 146 | module_args = dict( 147 | vxmip=dict(required=True), 148 | vcadmin=dict(required=True), 149 | vcpasswd=dict(required=True, no_log=True), 150 | api_version_number=dict(type='int'), 151 | timeout=dict(type='int', default=60) 152 | ) 153 | module = AnsibleModule( 154 | argument_spec=module_args, 155 | supports_check_mode=True, 156 | ) 157 | result = VxRailCluster().get_precheck_version() 158 | if result == 'error': 159 | module.fail_json(msg="Call /system/prechecks/precheck-service-version API failed, please see log file " 160 | "/tmp/vxrail_ansible_system_getprecheckversion.log for more details.") 161 | vx_facts = {'Precheck_Version': result} 162 | vx_facts_result = dict(changed=False, Precheck_Version_API=vx_facts) 163 | module.exit_json(**vx_facts_result) 164 | 165 | 166 | if __name__ == "__main__": 167 | main() 168 | -------------------------------------------------------------------------------- /plugins/modules/dellemc_vxrail_vc_getmode.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved 3 | 4 | # Copyright: (c) 2018, Terry Jones 5 | # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | from __future__ import (absolute_import, division, print_function) 7 | __metaclass__ = type 8 | 9 | DOCUMENTATION = r''' 10 | --- 11 | module: dellemc_vxrail_vc_getmode 12 | 13 | short_description: Retrieve VC and PSC mode. 14 | 15 | description: 16 | - This module will retrieve the current vCenter mode and PSC mode. 17 | options: 18 | 19 | vxmip: 20 | description: 21 | The IP address of the VxRail Manager System 22 | required: True 23 | type: str 24 | 25 | vcadmin: 26 | description: 27 | Administrative account of the vCenter Server the VxRail Manager is registered to 28 | required: True 29 | type: str 30 | 31 | vcpasswd: 32 | description: 33 | The password for the administrator account provided in vcadmin 34 | required: True 35 | type: str 36 | 37 | timeout: 38 | description: 39 | Time out value for getting telemetry information, the default value is 60 seconds 40 | required: false 41 | type: int 42 | default: 60 43 | 44 | api_version_number: 45 | description: 46 | A specific version number to use for the API call. If not included, will use the highest version by default 47 | required: false 48 | type: int 49 | 50 | author: 51 | - VxRail Development Team(@VxRailDevTeam) 52 | 53 | ''' 54 | 55 | EXAMPLES = r''' 56 | - name: Get VC Mode Information 57 | dellemc_vxrail_vc_getmode: 58 | vxmip: "{{ vxmip }}" 59 | vcadmin: "{{ vcadmin }}" 60 | vcpasswd: "{{ vcpasswd }}" 61 | timeout: "{{ timeout }}" 62 | api_version_number: "{{ api_version_number }}" 63 | ''' 64 | 65 | RETURN = r''' 66 | VC_PSC_Mode: 67 | description: The current VC and PSC mode 68 | returned: always 69 | type: dict 70 | sample: >- 71 | { 72 | "psc_mode": "EMBEDDED", 73 | "vc_mode": "EMBEDDED" 74 | } 75 | ''' 76 | 77 | import logging 78 | import urllib3 79 | from ansible.module_utils.basic import AnsibleModule 80 | import vxrail_ansible_utility 81 | from vxrail_ansible_utility.rest import ApiException 82 | from ansible_collections.dellemc.vxrail.plugins.module_utils import dellemc_vxrail_ansible_utils as utils 83 | 84 | LOGGER = utils.get_logger("dellemc_vxrail_vc_getmode", "/tmp/vxrail_ansible_vc_mode_info.log", log_devel=logging.DEBUG) 85 | urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) 86 | 87 | 88 | class VxrailClusterUrls(): 89 | cluster_url = 'https://{}/rest/vxm' 90 | 91 | def __init__(self, vxm_ip): 92 | self.vxm_ip = vxm_ip 93 | 94 | def set_host(self): 95 | return VxrailClusterUrls.cluster_url.format(self.vxm_ip) 96 | 97 | 98 | class VxRailCluster(): 99 | def __init__(self): 100 | self.vxm_ip = module.params.get('vxmip') 101 | self.timeout = module.params.get('timeout') 102 | self.vc_admin = module.params.get('vcadmin') 103 | self.vc_password = module.params.get('vcpasswd') 104 | self.api_version_number = module.params.get('api_version_number') 105 | self.system_url = VxrailClusterUrls(self.vxm_ip) 106 | # Configure HTTP basic authorization: basicAuth 107 | self.configuration = vxrail_ansible_utility.Configuration() 108 | self.configuration.username = self.vc_admin 109 | self.configuration.password = self.vc_password 110 | self.configuration.verify_ssl = False 111 | self.configuration.host = self.system_url.set_host() 112 | self.api_version_string = "v?" 113 | 114 | # Obtains the response for the given module path with specified api_version_number or highest found version 115 | def get_versioned_response(self, api_instance, module_path): 116 | # Set api version string and version number if undefined 117 | if self.api_version_number is None: 118 | self.api_version_string = utils.get_highest_api_version_string(self.vxm_ip, module_path, LOGGER) 119 | self.api_version_number = int(self.api_version_string.split('v')[1]) 120 | else: 121 | self.api_version_string = utils.get_api_version_string(self.vxm_ip, self.api_version_number, module_path, LOGGER) 122 | 123 | call_string = self.api_version_string + '_vc_vc_mode_get' 124 | LOGGER.info("Using utility method: %s\n", call_string) 125 | api_system_get = getattr(api_instance, call_string) 126 | return api_system_get() 127 | 128 | def get_vc_mode(self): 129 | VCModeInfo = {} 130 | # create an instance of the API class 131 | api_instance = vxrail_ansible_utility.VCenterServerModeApi(vxrail_ansible_utility.ApiClient(self.configuration)) 132 | try: 133 | # query VC Mode information 134 | response = self.get_versioned_response(api_instance, "GET /vc/mode") 135 | except ApiException as e: 136 | LOGGER.error("Exception when calling VCenterServerModeApi->%s_vc_vc_mode_get: %s\n", self.api_version_string, e) 137 | return 'error' 138 | LOGGER.info("%s/vc/mode api response: %s\n", self.api_version_string, response) 139 | data = response 140 | VCModeInfo['vc_mode'] = data.vc_mode 141 | VCModeInfo['psc_mode'] = data.psc_mode 142 | return dict(VCModeInfo.items()) 143 | 144 | 145 | def main(): 146 | ''' Entry point into execution flow ''' 147 | result = '' 148 | global module 149 | # define available arguments/parameters a user can pass to the module 150 | module_args = dict( 151 | vxmip=dict(required=True), 152 | vcadmin=dict(required=True), 153 | vcpasswd=dict(required=True, no_log=True), 154 | api_version_number=dict(type='int'), 155 | timeout=dict(type='int', default=60) 156 | ) 157 | module = AnsibleModule( 158 | argument_spec=module_args, 159 | supports_check_mode=True, 160 | ) 161 | result = VxRailCluster().get_vc_mode() 162 | if result == 'error': 163 | module.fail_json(msg="Call /vc/mode API failed,please see log file /tmp/vxrail_ansible_vc_mode_info.log for more error details.") 164 | vx_facts = {'VC_PSC_Mode': result} 165 | vx_facts_result = dict(changed=False, VC_Mode_API=vx_facts) 166 | module.exit_json(**vx_facts_result) 167 | 168 | 169 | if __name__ == "__main__": 170 | main() 171 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "config:recommended" 5 | ], 6 | "baseBranches": [ 7 | "$default" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | setuptools==69.0.3 2 | urllib3==2.2.2 3 | PyYAML==6.0.1 4 | -------------------------------------------------------------------------------- /sanity-test-requirements.txt: -------------------------------------------------------------------------------- 1 | pycodestyle 2 | pylint 3 | voluptuous 4 | yamllint 5 | vxrail_ansible_utility -------------------------------------------------------------------------------- /scripts/infoUpdate.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved 4 | # 5 | # This software contains the intellectual property of Dell Inc. or is licensed to Dell Inc. from third parties. 6 | # Use of this software and the intellectual property contained therein is expressly limited to the terms and 7 | # conditions of the License Agreement under which it is provided by or on behalf of Dell Inc. or its subsidiaries. 8 | 9 | echo '************************** update readme.md and galaxy.yml **************************' 10 | target_word=$1 11 | tag=$2 12 | target_index=$(grep -Pon '(\| [a-z 0-9\<\>\.\+]+){5} \|' README.md | cut --delimiter=":" --fields=1) 13 | if [[ -z $target_index ]]; then 14 | echo "Target index not found" 15 | exit 1 16 | else 17 | sed -i "${target_index}s/.*/${target_word}/g" README.md 18 | sed -i "s/version:.*/version: ${tag}/g" galaxy.yml 19 | cat README.md 20 | fi 21 | -------------------------------------------------------------------------------- /scripts/lint-ansible.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved 4 | # 5 | # This software contains the intellectual property of Dell Inc. or is licensed to Dell Inc. from third parties. 6 | # Use of this software and the intellectual property contained therein is expressly limited to the terms and 7 | # conditions of the License Agreement under which it is provided by or on behalf of Dell Inc. or its subsidiaries. 8 | 9 | set -e 10 | 11 | echo ">>>>>>>>>>>> ansible lint" 12 | 13 | ansible-lint docs/samples/ 14 | -------------------------------------------------------------------------------- /scripts/lint-python.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved 4 | # 5 | # This software contains the intellectual property of Dell Inc. or is licensed to Dell Inc. from third parties. 6 | # Use of this software and the intellectual property contained therein is expressly limited to the terms and 7 | # conditions of the License Agreement under which it is provided by or on behalf of Dell Inc. or its subsidiaries. 8 | 9 | set -e 10 | 11 | echo ">>>>>>>>>>>> lint python project" 12 | flake8 "./" 13 | -------------------------------------------------------------------------------- /scripts/sanity-test.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved 4 | 5 | # This software contains the intellectual property of Dell Inc. or is licensed to Dell Inc. from third parties. 6 | # Use of this software and the intellectual property contained therein is expressly limited to the terms and 7 | # conditions of the License Agreement under which it is provided by or on behalf of Dell Inc. or its subsidiaries. 8 | 9 | set -e 10 | 11 | BUILD_OUTPUT_FOLDER="build-output/" 12 | echo ">>>>>>>>>>>> sanity tests" 13 | 14 | mkdir "${BUILD_OUTPUT_FOLDER}" 15 | ansible-galaxy collection build --output-path "${BUILD_OUTPUT_FOLDER}" -f 16 | 17 | tar_file=$(find ${BUILD_OUTPUT_FOLDER} -type f -name "*.tar.gz" | head -1) 18 | if [ "$tar_file" == "" ]; then 19 | echo "Failed to build ansible galaxy collection! Exit!" 20 | exit 1 21 | fi 22 | 23 | ansible-galaxy collection install "$tar_file" -f | tee temp.log 24 | collection_folder=$(< temp.log grep "Installing" | sed "s#.*to ##g;s#'##g" ) 25 | if [ "$collection_folder" == "" ]; then 26 | echo "Failed to install ansible galaxy collection! Exit!" 27 | exit 1 28 | fi 29 | 30 | git config --global http.sslVerify false 31 | git config --global url."https://${GITHUB_USER}:$GITHUB_API_TOKEN@${GITHUB_HOST}".insteadOf "https://${GITHUB_HOST}" 32 | git clone "${UTILITY_REPO_URL}" "${UTILITY_REPO_NAME}" 33 | 34 | pushd "${UTILITY_REPO_NAME}" 35 | pip install . 36 | popd 37 | pip install -r sanity-test-requirements.txt 38 | 39 | pushd "$collection_folder" 40 | ansible-test sanity --skip-test import --skip-test validate-modules plugins/modules/*.py --python 3.8 41 | popd 42 | --------------------------------------------------------------------------------