XenServer: Add XenServer support

Upstreaming several changes from XenServer CI:
 - Use tty0 as console - thus the user can see what's happening during
   installation over VNC console.
 - Set the number of VCPUs to 6 for the DomU appliance
 - Add prepare_node_xenserver.sh script.
 - Use testing xva 1.1.4 which has trusty.

Change-Id: I56fc4e1af12f3f13fd1aa0b772bd8734b412d3d5
This commit is contained in:
Mate Lakat 2014-09-26 14:47:15 +02:00
parent 2bb19f20ca
commit f941684439
3 changed files with 63 additions and 4 deletions

View File

@ -312,7 +312,7 @@ function generate_xs_installer_grub_config() {
exec tail -n +3 \$0
menuentry 'XenServer installer' {
multiboot $bootfiles/xen.gz dom0_max_vcpus=1-2 dom0_mem=max:752M com1=115200,8n1 console=com1,vga
module $bootfiles/vmlinuz xencons=hvc console=tty0 console=hvc0 make-ramdisk=/dev/sda1 answerfile=$answerfile install
module $bootfiles/vmlinuz xencons=hvc console=tty0 make-ramdisk=/dev/sda1 answerfile=$answerfile install
module $bootfiles/install.img
}
EOF
@ -403,7 +403,9 @@ function start_ubuntu_on_next_boot() {
bootfiles="$1"
sed -ie 's,default xe-serial,default ubuntu,g' $bootfiles/extlinux.conf
sed -ie 's,default xe,default ubuntu,g' $bootfiles/extlinux.conf
log_extlinux $bootfiles/extlinux.conf
}
function start_xenserver_on_next_boot() {
@ -411,7 +413,18 @@ function start_xenserver_on_next_boot() {
bootfiles="$1"
sed -ie 's,default ubuntu,default xe-serial,g' $bootfiles/extlinux.conf
sed -ie 's,default ubuntu,default xe,g' $bootfiles/extlinux.conf
log_extlinux $bootfiles/extlinux.conf
}
function log_extlinux() {
local extlinux_conf
extlinux_conf="$1"
echo "ACTUAL STATE OF EXTLINUX IS"
cat $extlinux_conf
}
function mount_dom0_fs() {
@ -474,6 +487,8 @@ function configure_networking() {
if [ -z "$VM" ]; then
VM=$(xe vm-import filename=/mnt/ubuntu/root/staging_vm.xva)
xe vm-param-set name-label="$APPLIANCE_NAME" uuid=$VM
xe vm-param-set VCPUs-max=6 uuid=$VM
xe vm-param-set VCPUs-at-startup=6 uuid=$VM
APP_IMPORTED_NOW="true"
fi
DNS_ADDRESSES=$(echo "$NAMESERVERS" | sed -e "s/,/ /g")

View File

@ -19,5 +19,5 @@
./convert_node_to_xenserver.sh \
password \
http://downloads.vmd.citrix.com/OpenStack/xenapi-in-the-cloud-appliances/1.0.1.xva \
http://downloads.vmd.citrix.com/OpenStack/xenapi-in-the-cloud-appliances/1.1.4.xva \
devstack

View File

@ -0,0 +1,44 @@
#!/bin/bash -xe
# Copyright (C) 2011-2013 OpenStack Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
#
# See the License for the specific language governing permissions and
# limitations under the License.
HOSTNAME=$1
function tsfilter {
$@ 2>&1 | awk '
{
cmd ="date +\"%Y-%m-%d %H:%M:%S.%3N | \""
cmd | getline now
close("date +\"%Y-%m-%d %H:%M:%S.%3N | \"")
sub(/^/, now)
print
fflush()
}'
}
set -o pipefail
tsfilter ./prepare_node_devstack.sh "$HOSTNAME"
# After the node has been prepared, the hypervisor needs to be halted to make
# sure that the filesystem is in a consistent state.
sudo -u domzero \
ssh \
-o StrictHostKeyChecking=no \
-o UserKnownHostsFile=/dev/null \
root@192.168.33.2 \
halt -p </dev/null