119 lines
3.7 KiB
YAML
119 lines
3.7 KiB
YAML
---
|
|
|
|
- name: obtain SSO token with using username/password credentials
|
|
ovirt.ovirt.ovirt_auth:
|
|
url: "{{ lookup('env', 'OVIRT_URL')|default(ovirt.url, true) }}"
|
|
username: "{{ lookup('env', 'OVIRT_USERNAME')|default(ovirt.username, true) }}"
|
|
password: "{{ lookup('env', 'OVIRT_PASSWORD')|default(ovirt.password, true) }}"
|
|
insecure: yes
|
|
|
|
- include_tasks: preflight_check_pre29.yml
|
|
when: ansible_version.full is version('2.9', '<')
|
|
|
|
- include_tasks: preflight_check.yml
|
|
when: ansible_version.full is version('2.9', '>=')
|
|
|
|
# remove existing template
|
|
- block:
|
|
|
|
- include_tasks: remove_template.yml
|
|
|
|
when:
|
|
- template_force|bool
|
|
- template_found|bool
|
|
|
|
- block:
|
|
- include_tasks: make_iso.yml
|
|
|
|
- include_tasks: provision_vm.yml
|
|
|
|
- name: refresh inventory
|
|
meta: refresh_inventory
|
|
|
|
- name: clear gathered facts
|
|
meta: clear_facts
|
|
|
|
- name: clear any host errors
|
|
meta: clear_host_errors
|
|
|
|
- name: add host
|
|
add_host:
|
|
hostname: template_host
|
|
ansible_host: "{{ template_vm_ip_address }}"
|
|
ansible_user: "{{ unattend.local_accounts[0].name }}"
|
|
ansible_password: "{{ unattend.local_accounts[0].password }}"
|
|
ansible_port: "{{ vm_ansible_port | default('5986') }}"
|
|
ansible_connection: winrm
|
|
ansible_winrm_transport: "{{ vm_ansible_winrm_transport | default('credssp') }}"
|
|
ansible_winrm_server_cert_validation: ignore
|
|
ansible_winrm_operation_timeout_sec: 250
|
|
ansible_winrm_read_timeout_sec: 280
|
|
ansible_win_async_startup_timeout: 60
|
|
|
|
- include_role:
|
|
name: "{{ windows_build_role }}"
|
|
apply:
|
|
vars:
|
|
target_ovirt: yes
|
|
install_updates: yes
|
|
remove_apps: yes
|
|
clean_up_components: yes
|
|
upgrade_powershell: "{{ vm_upgrade_powershell | default('no') }}"
|
|
delegate_to: template_host
|
|
|
|
- name: refresh SSO credentials
|
|
ovirt.ovirt.ovirt_auth:
|
|
url: "{{ lookup('env', 'OVIRT_URL')|default(ovirt.url, true) }}"
|
|
username: "{{ lookup('env', 'OVIRT_USERNAME')|default(ovirt.username, true) }}"
|
|
password: "{{ lookup('env', 'OVIRT_PASSWORD')|default(ovirt.password, true) }}"
|
|
insecure: yes
|
|
|
|
- include_tasks: stop_vm.yml
|
|
|
|
- include_tasks: convert_to_template.yml
|
|
|
|
- include_tasks: export_ovf.yml
|
|
when: export_ovf|bool
|
|
|
|
rescue:
|
|
- name: refresh SSO credentials
|
|
ovirt.ovirt.ovirt_auth:
|
|
url: "{{ lookup('env', 'OVIRT_URL')|default(ovirt.url, true) }}"
|
|
username: "{{ lookup('env', 'OVIRT_USERNAME')|default(ovirt.username, true) }}"
|
|
password: "{{ lookup('env', 'OVIRT_PASSWORD')|default(ovirt.password, true) }}"
|
|
insecure: yes
|
|
|
|
- include_tasks: remove_template.yml
|
|
when: remove_vm_on_error|bool
|
|
|
|
- name: set vm_failed variable
|
|
set_fact:
|
|
vm_failed: yes
|
|
|
|
always:
|
|
- name: refresh SSO credentials
|
|
ovirt.ovirt.ovirt_auth:
|
|
url: "{{ lookup('env', 'OVIRT_URL')|default(ovirt.url, true) }}"
|
|
username: "{{ lookup('env', 'OVIRT_USERNAME')|default(ovirt.username, true) }}"
|
|
password: "{{ lookup('env', 'OVIRT_PASSWORD')|default(ovirt.password, true) }}"
|
|
insecure: yes
|
|
|
|
- include_tasks: remove_vm.yml
|
|
when: remove_vm_on_error|bool or (not remove_vm_on_error|bool and not vm_failed|bool)
|
|
|
|
- include_tasks: datastore_iso_remove.yml
|
|
|
|
- name: remove temporary directory
|
|
file:
|
|
path: "{{ temp_directory }}"
|
|
state: absent
|
|
|
|
- name: logout from oVirt
|
|
ovirt.ovirt.ovirt_auth:
|
|
state: absent
|
|
ovirt_auth: "{{ ovirt_auth }}"
|
|
|
|
- name: fail if needed
|
|
fail:
|
|
msg: "fail to create a template."
|
|
when: vm_failed|bool |