aboutsummaryrefslogtreecommitdiff
path: root/roles/libvirt
diff options
context:
space:
mode:
Diffstat (limited to 'roles/libvirt')
-rw-r--r--roles/libvirt/tasks/vm-install.yml13
-rw-r--r--roles/libvirt/vars/main.yml20
2 files changed, 20 insertions, 13 deletions
diff --git a/roles/libvirt/tasks/vm-install.yml b/roles/libvirt/tasks/vm-install.yml
index b1d9de8..c0611e5 100644
--- a/roles/libvirt/tasks/vm-install.yml
+++ b/roles/libvirt/tasks/vm-install.yml
@@ -1,12 +1,19 @@
-- name: Copy kickstart file to destination filesystem
+- name: Copy kickstart file to destination filesystem (if defined)
ansible.builtin.template:
src: "kickstart/{{ libvirt_vm_kickstart_file }}"
dest: "/{{ libvirt_vm_destination }}/{{ libvirt_vm_kickstart_file }}"
+ when: libvirt_vm_kickstart_file|length > 0
-- name: Create VM in destination filesystem
+- name: Create VM from kickstart in destination filesystem
ansible.builtin.command: 'virt-install --name {{ libvirt_vm_name }} --memory {{ libvirt_vm_memory }} --vcpus {{ libvirt_vm_vcpus }} --network {{ libvirt_vm_network }} --disk size={{ libvirt_vm_disk_size }},path=/{{ libvirt_vm_destination }}/{{ libvirt_vm_name }}.img,format={{ libvirt_vm_disk_format }} --location {{ libvirt_vm_location_path }}{{ libvirt_vm_location_arguments }} --os-variant {{ libvirt_vm_os }} --initrd-inject=/{{ libvirt_vm_destination }}/{{ libvirt_vm_kickstart_file }} --extra-args="inst.ks=file:/{{ libvirt_vm_kickstart_file }}"'
+ when: libvirt_vm_kickstart_file|length > 0
-- name: Remove kickstart file from destination filesystem
+- name: Create VM without kickstart in destination filesystem
+ ansible.builtin.command: 'virt-install --name {{ libvirt_vm_name }} --memory {{ libvirt_vm_memory }} --vcpus {{ libvirt_vm_vcpus }} --network {{ libvirt_vm_network }} --disk size={{ libvirt_vm_disk_size }},path=/{{ libvirt_vm_destination }}/{{ libvirt_vm_name }}.img,format={{ libvirt_vm_disk_format }} --location {{ libvirt_vm_location_path }}{{ libvirt_vm_location_arguments }} --os-variant {{ libvirt_vm_os }}'
+ when: libvirt_vm_kickstart_file|length == 0
+
+- name: Remove kickstart file from destination filesystem (if defined)
ansible.builtin.file:
path: "/{{ libvirt_vm_destination }}/{{ libvirt_vm_kickstart_file }}"
state: absent
+ when: libvirt_vm_kickstart_file|length > 0
diff --git a/roles/libvirt/vars/main.yml b/roles/libvirt/vars/main.yml
index 54fd9e7..1c26e68 100644
--- a/roles/libvirt/vars/main.yml
+++ b/roles/libvirt/vars/main.yml
@@ -1,15 +1,15 @@
libvirt_vm_name: "{{ inventory_hostname }}"
-libvirt_vm_memory: "{{ memory_mb }}"
-libvirt_vm_vcpus: "{{ cpus }}"
-libvirt_vm_disk_size: "{{ disk_gb }}"
-libvirt_vm_disk_format: "{{ disk_format }}"
-libvirt_vm_os: "{{ os }}"
-libvirt_vm_kickstart_file: "{{ kickstart }}"
+libvirt_vm_memory: "{{ memory_mb if memory_mb is defined else '1024' }}"
+libvirt_vm_vcpus: "{{ cpus if cpus is defined else '1' }}"
+libvirt_vm_disk_size: "{{ disk_gb if disk_gb is defined else '20' }}"
+libvirt_vm_disk_format: "{{ disk_format if disk_format is defined else 'qcow2' }}"
+libvirt_vm_os: "{{ os if os is defined else 'rhel8-unknown' }}"
+libvirt_vm_kickstart_file: "{{ kickstart if kickstart is defined }}"
libvirt_vm_location_path: "{{ iso_path }}"
libvirt_vm_destination: "{{ parent_dataset }}/{{ inventory_hostname }}"
-libvirt_vm_network: "{{ network }}"
+libvirt_vm_network: "{{ network if network is defined else 'default' }}"
libvirt_kickstart_hostname: "{{ inventory_hostname }}"
-libvirt_kickstart_timezone: "{{ timezone }}"
-libvirt_kickstart_root_ssh_key: "{{ ssh_key }}"
-libvirt_kickstart_root_password: "{{ root_password }}"
+libvirt_kickstart_timezone: "{{ timezone if timezone is defined else 'Etc/GMT' }}"
+libvirt_kickstart_root_ssh_key: "{{ ssh_key if ssh_key is defined }}"
+libvirt_kickstart_root_password: "{{ root_password if root_password is defined else lookup('password', '/dev/null length=32 chars=ascii_letters,digits') }}"