kvm: add support for booting uefi instances

In order to boot UEFI instances successfully, the OVMF image
must be installed and located at the path that is hardcoded
inside Nova.

This patch takes care of installing the OVMF images and sets
up links to point towards the hardcoded path for operating
systems that don't install at the expected path.

Change-Id: I62f4aa26ffd0d2f3ba4aa19fbdb72578ef0223e4
Closes-Bug: #1825386
Closes-Bug: #1831279
This commit is contained in:
Mohammed Naser 2019-05-31 15:30:15 -04:00
parent 53682cebcb
commit 739647dffa
4 changed files with 28 additions and 0 deletions

View File

@ -158,3 +158,28 @@
- nova-kvm
- nova-libvirt
- nova-kvm-virsh-net
# NOTE(mnaser): These 2 tasks should disappear once the following bug is fixed
# https://bugs.launchpad.net/nova/+bug/1825386
- name: Create UEFI firmware folder
file:
path: /usr/share/OVMF
state: directory
when:
- ansible_os_family == 'Suse'
tags:
- nova-config
- nova-kvm
- nova-libvirt
- name: Symlink UEFI firmware files
file:
src: "{{ (ansible_os_family == 'RedHat') | ternary('/usr/share/OVMF/OVMF_CODE.secboot.fd', '/usr/share/qemu/ovmf-x86_64-ms-code.bin') }}"
dest: /usr/share/OVMF/OVMF_CODE.fd
state: link
when:
- ansible_os_family in ['RedHat', 'Suse']
tags:
- nova-config
- nova-kvm
- nova-libvirt

View File

@ -93,6 +93,7 @@ nova_compute_kvm_distro_packages:
- qemu-utils
- qemu-user
- qemu-kvm
- ovmf
nova_compute_kvm_packages_to_symlink:
- python-libvirt

View File

@ -73,6 +73,7 @@ nova_compute_kvm_distro_packages:
- python-libguestfs
- qemu-img-ev
- sysfsutils
- "{{ (ansible_architecture == 'aarch64') | ternary('AAVMF', 'OVMF') }}"
nova_compute_kvm_packages_to_symlink:
- libvirt-python

View File

@ -79,6 +79,7 @@ nova_compute_kvm_distro_packages:
- qemu-block-iscsi
- qemu-block-rbd
- qemu-block-ssh
- qemu-ovmf-x86_64
- libvirt-python
- nfs-utils
- python-libguestfs