├── .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 | Parameter |
26 | Choices/Defaults
27 | |
28 | Comments |
29 |
30 |
31 |
32 |
34 | vxmip
35 |
38 |
39 | type=string
40 |
41 | required=true
42 |
43 | |
44 |
45 | |
46 |
47 | The IP address of the VxRail Manager System
48 | |
49 |
50 |
51 |
52 |
54 | vcadmin
55 |
58 |
59 | type=string
60 |
61 | required=true
62 |
63 | |
64 |
65 | |
66 |
67 | Administrative account of the vCenter Server the VxRail Manager is registered to
68 | |
69 |
70 |
71 |
72 |
74 | vcpasswd
75 |
78 |
79 | type=string
80 |
81 | required=true
82 |
83 | |
84 |
85 | |
86 |
87 | The password for the administrator account provided in vcadmin
88 | |
89 |
90 |
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 | Key |
121 | Returned |
122 | Description |
123 |
124 |
125 |
126 |
127 | VLCM_COMMIT_DRAFT_API
128 |
129 |
130 | complex
131 |
132 | |
133 | |
134 |
135 | The commit vLCM draft info from the cluster
136 |
137 | |
138 |
139 |
140 | |
141 |
142 |
143 | result
144 |
145 |
146 | type=string
147 |
148 | |
149 | |
150 |
151 | The result of committing vlcm draft
152 | |
153 |
154 |
155 |
156 | msg
157 |
158 |
159 | type=string
160 |
161 | |
162 | |
163 |
164 | End of committing vLCM draft. Please see the /tmp/vxrail_ansible_lcm_vlcm_commit_draft.log for more details
165 |
166 | |
167 |
168 |
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 | Parameter |
26 | Choices/Defaults
27 | |
28 | Comments |
29 |
30 |
31 |
32 |
34 | vxmip
35 |
38 |
39 | type=string
40 |
41 | required=true
42 |
43 | |
44 |
45 | |
46 |
47 | The IP address of the VxRail Manager System
48 | |
49 |
50 |
51 |
52 |
54 | vcadmin
55 |
58 |
59 | type=string
60 |
61 | required=true
62 |
63 | |
64 |
65 | |
66 |
67 | Administrative account of the vCenter Server the VxRail Manager is registered to
68 | |
69 |
70 |
71 |
72 |
74 | vcpasswd
75 |
78 |
79 | type=string
80 |
81 | required=true
82 |
83 | |
84 |
85 | |
86 |
87 | The password for the administrator account provided in vcadmin
88 | |
89 |
90 |
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 | Key |
122 | Returned |
123 | Description |
124 |
125 |
126 |
127 |
128 | VLCM_INFO
129 |
130 |
131 | complex
132 |
133 | |
134 | |
135 |
136 | The vLCM info from the cluster
137 |
138 | |
139 |
140 |
141 | |
142 |
143 |
144 | enable
145 |
146 |
147 | type=boolean
148 |
149 | |
150 | |
151 |
152 | The vlcm enable status in the cluster
153 | |
154 | |
155 |
156 |
157 | cluster_name
158 |
159 |
160 | type=string
161 |
162 | |
163 | |
164 |
165 | The name of cluster
166 | |
167 |
168 |
169 | msg
170 |
171 |
172 | type=string
173 |
174 | |
175 | |
176 |
177 | Retrieve vLCM informations success. Please see the /tmp/vxrail_ansible_lcm_vlcm.log for more details
178 |
179 | |
180 |
181 |
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 |
--------------------------------------------------------------------------------