Add certificate generation
This commit is contained in:
84
roles/ovirt.manageiq/tasks/deploy_qcow2.yml
Normal file
84
roles/ovirt.manageiq/tasks/deploy_qcow2.yml
Normal file
@@ -0,0 +1,84 @@
|
||||
- name: Check if {{ miq_image_path }} is directory
|
||||
stat:
|
||||
path: "{{ miq_image_path }}"
|
||||
register: image_path_st
|
||||
|
||||
- name: Download the qcow image
|
||||
get_url:
|
||||
url: "{{ miq_qcow_url }}"
|
||||
dest: "{{ image_path_st.stat.isdir | ternary( miq_image_path~'/'~miq_qcow_url.rpartition('/')[-1], miq_image_path) | regex_replace('//', '/') }}"
|
||||
checksum: "{{ miq_image_checksum | default(omit) }}"
|
||||
register: downloaded_file
|
||||
|
||||
- name: Check file type
|
||||
command: "/usr/bin/file {{ downloaded_file.dest | quote }}"
|
||||
changed_when: false
|
||||
register: filetype
|
||||
|
||||
- name: Fail if image is not qcow
|
||||
fail:
|
||||
msg: "The downloaded file is not a valid QCOW file."
|
||||
when: '"QCOW" not in filetype.stdout'
|
||||
|
||||
- name: Calculate image size in GiB
|
||||
set_fact:
|
||||
miq_image_size_gib: "{{ filetype.stdout_lines[0].split()[5] | int // 2**30 }}"
|
||||
|
||||
#
|
||||
# Find default disk size for miq disk:
|
||||
#
|
||||
- block:
|
||||
- name: Extract integer from miq_vm_disk_size
|
||||
set_fact:
|
||||
miq_vm_disk_size_gib: "{{ miq_vm_disk_size | regex_replace('GiB$') }}"
|
||||
|
||||
- name: Fail if miq_vm_disk_size is less than qcow size
|
||||
fail:
|
||||
msg: "Setting a disk size ({{ miq_vm_disk_size }}) lower than the image size ({{ miq_image_size_gib }}GiB) may result in disk corruption."
|
||||
when: "miq_vm_disk_size_gib < miq_image_size_gib"
|
||||
when: "miq_vm_disk_size is defined"
|
||||
|
||||
#
|
||||
# Find default data storage domain for Miq disk:
|
||||
#
|
||||
- block:
|
||||
- name: Fetch storages
|
||||
ovirt_storage_domain_facts:
|
||||
auth: "{{ ovirt_auth }}"
|
||||
pattern: "Clusters.name={{ miq_vm_cluster }} and status=active"
|
||||
|
||||
- name: Find data domain
|
||||
set_fact:
|
||||
disk_storage_domain: "{{ ovirt_storage_domains | json_query(the_query) | list | first }}"
|
||||
vars:
|
||||
the_query: "[?type=='data']"
|
||||
when: miq_vm_disk_storage is undefined
|
||||
|
||||
- name: Check if VM already exists
|
||||
ovirt_vm_facts:
|
||||
auth: "{{ ovirt_auth }}"
|
||||
pattern: "name={{ miq_vm_name }}"
|
||||
|
||||
- block:
|
||||
- name: Deploy the qcow image to oVirt engine
|
||||
ovirt_disk:
|
||||
auth: "{{ ovirt_auth }}"
|
||||
name: "{{ miq_vm_disk_name | default(miq_vm_name) }}"
|
||||
interface: "{{ miq_vm_disk_interface }}"
|
||||
size: "{{ miq_vm_disk_size | default(miq_image_size_gib + 'GiB') }}"
|
||||
format: "{{ miq_vm_disk_format }}"
|
||||
image_path: "{{ downloaded_file.dest }}"
|
||||
storage_domain: "{{ disk_storage_domain.name if disk_storage_domain is defined else miq_vm_disk_storage }}"
|
||||
force: "{{ ovirt_vms | length == 0 }}"
|
||||
register: ovirt_disk
|
||||
|
||||
rescue:
|
||||
- name: Remove failed disk
|
||||
ovirt_disk:
|
||||
auth: "{{ ovirt_auth }}"
|
||||
state: absent
|
||||
name: "{{ miq_vm_disk_name | default(miq_vm_name) }}"
|
||||
|
||||
- name: Set miq_disk_deploy_failed
|
||||
set_fact:
|
||||
miq_disk_deploy_failed: true
|
||||
Reference in New Issue
Block a user