From eb054ac701ff3ed57dccafea5a4a2e67d6bdbb60 Mon Sep 17 00:00:00 2001 From: Yibo Cai Date: Tue, 7 Nov 2017 13:27:38 +0800 Subject: deploy/template/vm: support aarch64 VM - Use architecture specific host-ARCH.xml if available, otherwise fallback to default host.xml(x86_64). - Add "--nvram" to undefine UEFI enabled VMs. Change-Id: I89a0eb3875f98d18a28463bbf1004f5eca5de324 Signed-off-by: Yibo Cai --- deploy/host_virtual.sh | 31 ++++++++++++++++++-- deploy/template/vm/host-aarch64.xml | 58 +++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 deploy/template/vm/host-aarch64.xml (limited to 'deploy') diff --git a/deploy/host_virtual.sh b/deploy/host_virtual.sh index bd2f49af..03a1230f 100755 --- a/deploy/host_virtual.sh +++ b/deploy/host_virtual.sh @@ -13,14 +13,32 @@ function tear_down_machines() { IFS=, for i in $HOSTNAMES; do sudo virsh destroy $i - sudo virsh undefine $i + if [ "$COMPASS_ARCH" = "aarch64" ]; then + # --nvram is required for UEFI enabled VM + sudo virsh undefine --nvram $i + else + sudo virsh undefine $i + fi rm -rf $host_vm_dir/$i done IFS=$old_ifs } function reboot_hosts() { - log_warn "reboot_hosts do nothing" + # We do need it for aarch64 + if [ "$COMPASS_ARCH" = "aarch64" ]; then + old_ifs=$IFS + IFS=, + for i in $HOSTNAMES; do + sudo virsh destroy $i + sleep 3 + sudo virsh start $i + sleep 3 + done + IFS=$old_ifs + else + log_warn "reboot_hosts do nothing" + fi } function launch_host_vms() { @@ -28,6 +46,13 @@ function launch_host_vms() { IFS=, #function_bod mac_array=($machines) + + # Select vm template per arch + vm_template_dir="$COMPASS_DIR/deploy/template/vm" + vm_template_file="$vm_template_dir/host.xml" + vm_template_arch="$vm_template_dir/host-$COMPASS_ARCH.xml" + [ -f $vm_template_arch ] && vm_template_file=$vm_template_arch + log_info "bringing up pxe boot vms" i=0 for host in $HOSTNAMES; do @@ -43,7 +68,7 @@ function launch_host_vms() { -e "s/REPLACE_BOOT_MAC/${mac_array[i]}/g" \ -e "s/REPLACE_NET_INSTALL/install/g" \ -e "s/REPLACE_NET_IAAS/external_nat/g" \ - $COMPASS_DIR/deploy/template/vm/host.xml\ + "$vm_template_file" \ > $vm_dir/libvirt.xml sudo virsh define $vm_dir/libvirt.xml diff --git a/deploy/template/vm/host-aarch64.xml b/deploy/template/vm/host-aarch64.xml new file mode 100644 index 00000000..7f32a198 --- /dev/null +++ b/deploy/template/vm/host-aarch64.xml @@ -0,0 +1,58 @@ + + REPLACE_NAME + REPLACE_MEM + REPLACE_MEM + REPLACE_CPU + + hvm + /usr/share/AAVMF/AAVMF_CODE.fd + + + + + + + + + destroy + restart + restart + + /usr/bin/qemu-system-aarch64 + + + + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + + + + -- cgit 1.2.3-korg