zmgr/create_ipxe_vm.sh

67 lines
1 KiB
Bash
Raw Normal View History

#!/usr/bin/bash
set -ex
ZONE=$1
IP_ADDRESS_CIDR="${2}/16"
NICNAME="${ZONE}0"
INTERNALSTUB="oinetint0"
GATEWAY="10.1.0.1"
RAM="16G"
VCPUS="8"
DISK="60G"
ISO="/vm/iso/ipxe-oi-internal.iso"
if ! dladm show-vnic $NICNAME > /dev/null; then
dladm create-vnic -l $INTERNALSTUB $NICNAME
fi
if ! zfs get name rpool/vm/${ZONE}d0 > /dev/null;then
zfs create -V ${DISK} rpool/vm/${ZONE}d0
fi
cat <<EOF | zonecfg -z $ZONE
create -b
set zonepath=/zones/$ZONE
set brand=bhyve
set autoboot=true
set ip-type=exclusive
add fs
set dir="/vm/iso"
set special="/vm/iso"
set type="lofs"
add options ro
add options nodevices
end
add net
set physical="$NICNAME"
end
add device
set match="/dev/zvol/rdsk/rpool/vm/${ZONE}d0"
end
add attr
set name="bootdisk"
set type="string"
set value="rpool/vm/${ZONE}d0"
end
add attr
set name="ram"
set type="string"
set value="${RAM}"
end
add attr
set name="vcpus"
set type="string"
set value="${VCPUS}"
end
add attr
set name="cdrom"
set type="string"
set value="${ISO}"
end
EOF
zoneadm -z $ZONE install
zoneadm -z $ZONE boot
zlogin -C $ZONE