update
This commit is contained in:
parent
c417a6f3f9
commit
33a439173c
17 changed files with 1298 additions and 95 deletions
|
@ -23,11 +23,22 @@ yamllint -c $BASE_SRC_ANSIBLE/.yamllint.rc $BASE_SRC_ANSIBLE/hosts.yml|| {
|
|||
|
||||
# put these values in $BASE_SRC_ANSIBLE/hosts.yml
|
||||
[ -n "$BOX_NBD_OVERLAY_NAME" ] || \
|
||||
BOX_NBD_OVERLAY_NAME=$( /usr/local/bin/ansible_get_inventory.bash BOX_NBD_OVERLAY_NAME $BOX)
|
||||
BOX_NBD_OVERLAY_NAME=$( /usr/local/bin/ansible_get_inventory.bash BOX_NBD_OVERLAY_NAME $BOX)
|
||||
|
||||
if virsh list | grep "$BOX_NBD_OVERLAY_NAME" ; then
|
||||
ERROR "$BOX_NBD_OVERLAY_NAME" is running - please virsh destroy "$BOX_NBD_OVERLAY_NAME"
|
||||
exit 2
|
||||
fi
|
||||
if virsh list --all | grep "$BOX_NBD_OVERLAY_NAME" ; then
|
||||
ERROR "$BOX_NBD_OVERLAY_NAME" is running - please virsh undefine "$BOX_NBD_OVERLAY_NAME"
|
||||
exit 3
|
||||
fi
|
||||
|
||||
|
||||
[ -n "$BOX_NBD_BASE_PUBKEY" ] || \
|
||||
BOX_NBD_BASE_PUBKEY=$( /usr/local/bin/ansible_get_inventory.bash BOX_NBD_BASE_PUBKEY $BOX)
|
||||
[ -n "$BOX_NBD_BASE_QCOW" ] || \
|
||||
BOX_NBD_BASE_QCOW=$( /usr/local/bin/ansible_get_inventory.bash BOX_NBD_BASE_QCOW $BOX)
|
||||
[ -n "$BOX_NBD_OVERLAY_BASE" ] || \
|
||||
BOX_NBD_OVERLAY_BASE=$( /usr/local/bin/ansible_get_inventory.bash BOX_NBD_OVERLAY_BASE $BOX)
|
||||
[ -n "$BOX_NBD_OVERLAY_GB" ] || \
|
||||
BOX_NBD_OVERLAY_GB=$( /usr/local/bin/ansible_get_inventory.bash BOX_NBD_OVERLAY_GB $BOX)
|
||||
[ -n "$BOX_NBD_OVERLAY_CPUS" ] || \
|
||||
|
@ -43,8 +54,8 @@ yamllint -c $BASE_SRC_ANSIBLE/.yamllint.rc $BASE_SRC_ANSIBLE/hosts.yml|| {
|
|||
[ -n "$BOX_NBD_OVERLAY_PASS" ] || \
|
||||
BOX_NBD_OVERLAY_PASS=$( /usr/local/bin/ansible_get_inventory.bash BOX_NBD_OVERLAY_PASS $BOX)
|
||||
|
||||
[ ! -f "$BOX_NBD_BASE_QCOW" ] && \
|
||||
ERROR BOX_NBD_BASE_QCOW=$BOX_NBD_BASE_QCOW must exist && exit 3
|
||||
[ ! -f "$BOX_NBD_OVERLAY_BASE" ] && \
|
||||
ERROR BOX_NBD_OVERLAY_BASE=$BOX_NBD_OVERLAY_BASE must exist && exit 3
|
||||
[ ! -d "$BOX_NBD_OVERLAY_DIR" ] && \
|
||||
ERROR BOX_NBD_OVERLAY_DIR=$BOX_NBD_OVERLAY_DIR must exist && exit 5
|
||||
|
||||
|
@ -58,7 +69,7 @@ export BOX_NBD_OVERLAY_DIR
|
|||
DBUG bash toxcore_create-vm.bash \
|
||||
-n $BOX_NBD_OVERLAY_NAME \
|
||||
-k $BOX_NBD_BASE_PUBKEY \
|
||||
-i $BOX_NBD_BASE_QCOW \
|
||||
-i $BOX_NBD_OVERLAY_BASE \
|
||||
-s $BOX_NBD_OVERLAY_GB \
|
||||
-b $BOX_NBD_OVERLAY_BR \
|
||||
-c $BOX_NBD_OVERLAY_CPUS \
|
||||
|
@ -69,7 +80,7 @@ DBUG bash toxcore_create-vm.bash \
|
|||
bash toxcore_create-vm.bash \
|
||||
-n $BOX_NBD_OVERLAY_NAME \
|
||||
-k $BOX_NBD_BASE_PUBKEY \
|
||||
-i $BOX_NBD_BASE_QCOW \
|
||||
-i $BOX_NBD_OVERLAY_BASE \
|
||||
-s $BOX_NBD_OVERLAY_GB \
|
||||
-b $BOX_NBD_OVERLAY_BR \
|
||||
-c $BOX_NBD_OVERLAY_CPUS \
|
||||
|
@ -83,8 +94,8 @@ retval=$?
|
|||
INFO $BOX_NBD_OVERLAY_DIR/images/$BOX_NBD_OVERLAY_NAME.img || {
|
||||
ERROR NO $BOX_NBD_OVERLAY_DIR/images/$BOX_NBD_OVERLAY_NAME.img ; exit 2$retval ; }
|
||||
|
||||
INFO virsh define $BOX_NBD_OVERLAY_NAME
|
||||
virsh define $BOX_NBD_OVERLAY_DIR/$BOX_NBD_OVERLAY_NAME.img
|
||||
INFO virsh define $BOX_NBD_OVERLAY_DIR/xml/$BOX_NBD_OVERLAY_NAME.xml
|
||||
virsh define $BOX_NBD_OVERLAY_DIR/xml/$BOX_NBD_OVERLAY_NAME.xml
|
||||
sleep 5
|
||||
INFO virsh net-dhcp-leases default
|
||||
sudo virsh net-dhcp-leases default
|
||||
|
|
|
@ -13,6 +13,11 @@
|
|||
prog=`basename $0 .bash`
|
||||
PREFIX=/usr/local
|
||||
ROLE=toxcore
|
||||
if which genisoimage >/dev/null 2>/dev/null ; then
|
||||
have_genisoimage=true
|
||||
else
|
||||
have_genisoimage=false
|
||||
fi
|
||||
|
||||
# create-vm - Quickly create guest VMs using cloud image files and cloud-init.
|
||||
|
||||
|
@ -136,8 +141,11 @@ mkdir -p "$BOX_NBD_OVERLAY_DIR"/{images,xml,init,base} || exit 2
|
|||
|
||||
echo "Creating a qcow2 image file ${BOX_NBD_OVERLAY_DIR}/images/${HOSTNAME}.img that uses the cloud image file ${IMG_FQN} as its base"
|
||||
|
||||
INFO qemu-img create -b "${IMG_FQN}" -f qcow2 -F qcow2 "${BOX_NBD_OVERLAY_DIR}/images/${HOSTNAME}.img" "${STORAGE}G"
|
||||
qemu-img create -b "${IMG_FQN}" -f qcow2 -F qcow2 "${BOX_NBD_OVERLAY_DIR}/images/${HOSTNAME}.img" "${STORAGE}G" || exit 3
|
||||
INFO qemu-img create -b "${IMG_FQN}" -f qcow2 -F qcow2 \
|
||||
"${BOX_NBD_OVERLAY_DIR}/images/${HOSTNAME}.img" "${STORAGE}G"
|
||||
qemu-img create -b "${IMG_FQN}" -f qcow2 -F qcow2 \
|
||||
"${BOX_NBD_OVERLAY_DIR}/images/${HOSTNAME}.img" "${STORAGE}G" || \
|
||||
exit 3
|
||||
|
||||
echo "Creating meta-data file $BOX_NBD_OVERLAY_DIR/init/meta-data"
|
||||
cat > "$BOX_NBD_OVERLAY_DIR/init/meta-data" << EOF
|
||||
|
@ -246,6 +254,7 @@ done
|
|||
#grep gentoo /etc/shadow
|
||||
EOF
|
||||
|
||||
if $have_genisoimage ; then
|
||||
echo "Generating the cidata ISO file $BOX_NBD_OVERLAY_DIR/images/${HOSTNAME}-cidata.iso"
|
||||
(
|
||||
cd "$BOX_NBD_OVERLAY_DIR/init/"
|
||||
|
@ -257,6 +266,7 @@ echo "Generating the cidata ISO file $BOX_NBD_OVERLAY_DIR/images/${HOSTNAME}-cid
|
|||
-input-charset utf-8 \
|
||||
user-data meta-data
|
||||
) || exit 5
|
||||
fi
|
||||
|
||||
MACCMD=
|
||||
if [[ -n $MAC ]]; then
|
||||
|
@ -264,7 +274,9 @@ if [[ -n $MAC ]]; then
|
|||
fi
|
||||
|
||||
[ -f ${BOX_NBD_OVERLAY_DIR}/images/${HOSTNAME}.img ] || exit 5
|
||||
[ -f $BOX_NBD_OVERLAY_DIR/images/${HOSTNAME}-cidata.img ] || exit 6
|
||||
if $have_genisoimage ; then
|
||||
[ -f $BOX_NBD_OVERLAY_DIR/images/${HOSTNAME}-cidata.img ] || exit 6
|
||||
fi
|
||||
|
||||
# libvirt.libvirtError: /usr/lib/qemu/qemu-bridge-helper --use-vnet --br=-c --fd=31: failed to communicate with bridge helper: stderr=failed to parse default acl file `/etc/qemu/bridge.conf'
|
||||
if [ ! -f "/etc/qemu/bridge.conf" ] ; then
|
||||
|
@ -288,38 +300,14 @@ sudo ifconfig -a | grep $BRIDGE && \
|
|||
NETWORK="--network bridge=${BRIDGE},model=virtio" || \
|
||||
WARN bridge $BRIDGE not running. not adding a network
|
||||
NETWORK="--network network=default,model=virtio"
|
||||
NETWORK="--interface type=network,source.network=default,model.type=virtio"
|
||||
|
||||
INFO virt-install \
|
||||
--name="${HOSTNAME}" \
|
||||
--osinfo "$OSINFO" \
|
||||
--import \
|
||||
--name="${HOSTNAME}" \
|
||||
--disk "path=${BOX_NBD_OVERLAY_DIR}/images/${HOSTNAME}.img,format=qcow2" \
|
||||
--disk "path=$BOX_NBD_OVERLAY_DIR/images/${HOSTNAME}-cidata.img,device=cdrom" \
|
||||
--ram="${RAM}" \
|
||||
--vcpus="${VCPUS}" \
|
||||
--autostart \
|
||||
--hvm \
|
||||
--arch x86_64 \
|
||||
--accelerate \
|
||||
--check-cpu \
|
||||
--force \
|
||||
--watchdog=default \
|
||||
--graphics spice,listen=socket \
|
||||
--channel spicevmc,target.type=virtio,target.name=com.redhat.spice.0 \
|
||||
--channel type=unix,target.type=virtio,target.name=org.qemu.guest_agent.0 \
|
||||
--network "bridge=${BRIDGE},model=virtio" \
|
||||
--rng /dev/urandom \
|
||||
--os-variant detect=on,name=$OSINFO \
|
||||
--noautoconsole
|
||||
|
||||
# squelch warnings
|
||||
python3.sh `which virt-install` \
|
||||
declare -a LARGS
|
||||
LARGS=(
|
||||
--name="${HOSTNAME}" \
|
||||
--osinfo "$OSINFO" \
|
||||
--import \
|
||||
--disk "path=${BOX_NBD_OVERLAY_DIR}/images/${HOSTNAME}.img,format=qcow2" \
|
||||
--disk "path=$BOX_NBD_OVERLAY_DIR/images/${HOSTNAME}-cidata.img,device=cdrom" \
|
||||
--ram="${RAM}" \
|
||||
--vcpus="${VCPUS}" \
|
||||
--autostart \
|
||||
|
@ -332,12 +320,24 @@ python3.sh `which virt-install` \
|
|||
--graphics spice,listen=socket \
|
||||
--filesystem /,/mnt/linuxPen19 \
|
||||
--channel spicevmc,target.type=virtio,target.name=com.redhat.spice.0 \
|
||||
--channel unix,target.type=virtio,target.name=org.qemu.guest_agent.0 \
|
||||
$NETWORK \
|
||||
--channel type=unix,target.type=virtio,target.name=org.qemu.guest_agent.0 \
|
||||
--rng /dev/urandom \
|
||||
--os-variant detect=on,name=$OSINFO \
|
||||
--noautoconsole \
|
||||
|| exit 7
|
||||
)
|
||||
if [ -n "$NETWORK" ] ; then
|
||||
LARGS+=(
|
||||
$NETWORK \
|
||||
)
|
||||
if $have_genisoimage ; then
|
||||
LARGS+=(
|
||||
--disk "path=$BOX_NBD_OVERLAY_DIR/images/${HOSTNAME}-cidata.img,device=cdrom" \
|
||||
)
|
||||
fi
|
||||
|
||||
INFO virt-install "${LARGS[@]}"
|
||||
# squelch warnings
|
||||
python3.sh `which virt-install` "${LARGS[@]}" || exit 7
|
||||
# --debug
|
||||
#? --shmem name=shmem_server,type="memfd",mode="shared"
|
||||
# --shmem name=shmem0 ivshmem device is not supported with this QEMU binary
|
||||
|
|
11
roles/toxcore/overlay/Linux/usr/local/bin/toxcore_libvirt_test_ga.bash
Executable file
11
roles/toxcore/overlay/Linux/usr/local/bin/toxcore_libvirt_test_ga.bash
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
ROLE=toxcore
|
||||
MODE=host
|
||||
TOX_PLAY=/o/var/local/src/play_tox
|
||||
|
||||
sudo virsh list | grep running | while read a elt b ; do
|
||||
echo INFO testing $elt
|
||||
ansible -i $TOX_PLAY/hosts.yml -c libvirt_qemu -m setup $elt
|
||||
done
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue