diff options
Diffstat (limited to 'roles/libvirt')
| -rw-r--r-- | roles/libvirt/defaults/main.yml | 4 | ||||
| -rw-r--r-- | roles/libvirt/tasks/vm-install.yml | 2 | ||||
| -rw-r--r-- | roles/libvirt/templates/kickstart/f38.ks | 50 | ||||
| -rw-r--r-- | roles/libvirt/vars/main.yml | 2 |
4 files changed, 56 insertions, 2 deletions
diff --git a/roles/libvirt/defaults/main.yml b/roles/libvirt/defaults/main.yml new file mode 100644 index 0000000..4fbd9d5 --- /dev/null +++ b/roles/libvirt/defaults/main.yml @@ -0,0 +1,4 @@ +# This variable is only needed for custom virt-install --location arguments, such as finding the kernel +# Example usage would be libvirt_vm_location_arguments: ",kernel=/mnt/path/to/vmlinuz,initrd=/mnt/path/to/initrd.img" +# ',' at the beginning is necessary, as this is attached to the virt-install --location /path/to/location command +libvirt_vm_location_arguments: "" diff --git a/roles/libvirt/tasks/vm-install.yml b/roles/libvirt/tasks/vm-install.yml index 1582e30..b1d9de8 100644 --- a/roles/libvirt/tasks/vm-install.yml +++ b/roles/libvirt/tasks/vm-install.yml @@ -4,7 +4,7 @@ dest: "/{{ libvirt_vm_destination }}/{{ libvirt_vm_kickstart_file }}" - name: Create VM 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_iso_path }} --os-variant {{ libvirt_vm_os }} --initrd-inject=/{{ libvirt_vm_destination }}/{{ libvirt_vm_kickstart_file }} --extra-args="inst.ks=file:/{{ libvirt_vm_kickstart_file }}"' + 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 }}"' - name: Remove kickstart file from destination filesystem ansible.builtin.file: diff --git a/roles/libvirt/templates/kickstart/f38.ks b/roles/libvirt/templates/kickstart/f38.ks new file mode 100644 index 0000000..2264720 --- /dev/null +++ b/roles/libvirt/templates/kickstart/f38.ks @@ -0,0 +1,50 @@ +#version=F38 +text +reboot + +# Keyboard layouts +keyboard --vckeymap=us --xlayouts='us' +# System language +lang en_US.UTF-8 + +# Use CDROM installation media +cdrom + +%packages +@^server-product-environment + +%end + +# Network information +network --bootproto=dhcp --device=enp1s0 --noipv6 --activate +network --hostname={{ libvirt_kickstart_hostname }} + +# Run the Setup Agent on first boot +firstboot --enable + +# Generated using Blivet version 3.7.1 +ignoredisk --only-use=vda +autopart +# Partition clearing information +clearpart --none --initlabel + +# System timezone +timezone {{ libvirt_kickstart_timezone }} --isUtc + +# Root password +rootpw --iscrypted {{ libvirt_kickstart_root_password | password_hash("sha512") }} + +%post +mkdir -m0700 /root/.ssh/ + +cat <<EOF >/root/.ssh/authorized_keys +{{ libvirt_kickstart_root_ssh_key }} +EOF + +### set permissions +chmod 0600 /root/.ssh/authorized_keys + +### fix up selinux context +restorecon -R /root/.ssh/ + +%end diff --git a/roles/libvirt/vars/main.yml b/roles/libvirt/vars/main.yml index e809f48..82140c5 100644 --- a/roles/libvirt/vars/main.yml +++ b/roles/libvirt/vars/main.yml @@ -5,7 +5,7 @@ libvirt_vm_disk_size: "{{ disk_gb }}" libvirt_vm_disk_format: "{{ disk_format }}" libvirt_vm_os: "{{ os }}" libvirt_vm_kickstart_file: "{{ kickstart }}" -libvirt_vm_iso_path: "{{ iso_path }}" +libvirt_vm_location_path: "{{ iso_path }}" libvirt_vm_destination: "{{ parent_dataset }}/{{ vm_name }}" libvirt_vm_network: "{{ network }}" libvirt_kickstart_hostname: "{{ vm_name }}" |
