68 lines
2.2 KiB
YAML
68 lines
2.2 KiB
YAML
---
|
|
- name: Clean vCenter VM
|
|
when: hypervisor_type == "vmware"
|
|
delegate_to: localhost
|
|
become: false
|
|
module_defaults:
|
|
community.vmware.vmware_guest: "{{ _vmware_auth }}"
|
|
community.vmware.vmware_guest_info: "{{ _vmware_auth }}"
|
|
vmware.vmware.vm_powerstate: "{{ _vmware_auth }}"
|
|
no_log: true
|
|
block:
|
|
# shutdown.yml halts the guest without waiting for it, so powering off a VM that
|
|
# vCenter has already stopped raises InvalidPowerState. Wait the shutdown out, and
|
|
# force off only a guest that ignored it.
|
|
- name: Wait for the installer environment to power off
|
|
community.vmware.vmware_guest_info:
|
|
name: "{{ hostname }}"
|
|
register: cleanup_vmware_power
|
|
until: (cleanup_vmware_power.instance.hw_power_status | default('') | lower) == 'poweredoff'
|
|
retries: "{{ cleanup_poweroff_retries }}"
|
|
delay: "{{ cleanup_poweroff_delay }}"
|
|
failed_when: false
|
|
|
|
- name: Force the installer environment off when it did not shut down
|
|
when: (cleanup_vmware_power.instance.hw_power_status | default('') | lower) != 'poweredoff'
|
|
vmware.vmware.vm_powerstate:
|
|
name: "{{ hostname }}"
|
|
state: powered-off
|
|
force: true
|
|
|
|
- name: Remove CD-ROM from VM in vCenter
|
|
community.vmware.vmware_guest:
|
|
name: "{{ hostname }}"
|
|
cdrom: >-
|
|
{{
|
|
[
|
|
{
|
|
'controller_number': 0,
|
|
'unit_number': 0,
|
|
'controller_type': 'sata',
|
|
'type': 'iso',
|
|
'iso_path': boot_iso,
|
|
'state': 'absent'
|
|
}
|
|
]
|
|
+ (
|
|
[
|
|
{
|
|
'controller_number': 0,
|
|
'unit_number': 1,
|
|
'controller_type': 'sata',
|
|
'type': 'iso',
|
|
'iso_path': rhel_iso,
|
|
'state': 'absent'
|
|
}
|
|
]
|
|
if (rhel_iso is defined and rhel_iso | length > 0
|
|
and not (os == 'rhel' and system_cfg.content.source == 'dvd'))
|
|
else []
|
|
)
|
|
}}
|
|
failed_when: false
|
|
|
|
- name: Boot the installed OS
|
|
vmware.vmware.vm_powerstate:
|
|
name: "{{ hostname }}"
|
|
state: powered-on
|