mirror of
https://github.com/CloudNebulaProject/zmgr.git
synced 2026-04-10 13:10:42 +00:00
122 lines
2.8 KiB
Bash
122 lines
2.8 KiB
Bash
|
|
#!/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"
|
||
|
|
CIDATA_DIR="/vm/iso/${ZONE}-cidata"
|
||
|
|
ISO="${CIDATA_DIR}.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
|
||
|
|
|
||
|
|
dd if=/zones/oinetentry/root/var/www/dlc/hipster/cloudimage-ttya-openindiana-hipster.raw of=/dev/zvol/rdsk/rpool/vm/${ZONE}d0 bs=1M status=progress
|
||
|
|
|
||
|
|
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="acpi"
|
||
|
|
set type="string"
|
||
|
|
set value="off"
|
||
|
|
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
|
||
|
|
|
||
|
|
mkdir -p $CIDATA_DIR
|
||
|
|
|
||
|
|
cat<<EOF > $CIDATA_DIR/user-data
|
||
|
|
#cloud-config
|
||
|
|
|
||
|
|
users:
|
||
|
|
- name: root
|
||
|
|
ssh_authorized_keys:
|
||
|
|
- "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQBmEXyfBHRiQogrAEgFp8Lr1TDEKdRRcpwqHOiujzTAFqszxutMPzuFlyU0Ljh28VqeDD9cIyS6VGfKG3iASQbIZd61yE0NHPNC6IPTFTggGK+3PzKt4T+t1ZdIhdrCGcsrq8c+44kSyIutvbruB0UmRjq4XqqkCDFEZMzBF/KUcu0M7oSEawFuzbtl7xoaDY83F7+HXTxbBKuRwSJw58d8MqsI7KlW6zUKJi0bgmYJOFjjDLPVTo7lqdNYfTRAHZYaCUADfrUqBCOLHSDET1Zrs3ibr6l8oMqOvctfwvuGpNT8vs05Z0P/ETUiZ/SzTyvoRyxXG0JTKlNSRmxcYA2J toasty_rsa"
|
||
|
|
- "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILcp4Wgea5V8N750xcRGil1rrdd+mCpwYBspNwwb45SN toasty_ed25519"
|
||
|
|
- "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBrXXxL7WUfh5UjSGV2uANb9E4LP9jl/cEt3NpC87g6h a.wacknitz@gmx.de"
|
||
|
|
EOF
|
||
|
|
|
||
|
|
ZONE_UUID=$(zoneadm -z ${ZONE} list -p | cut -d ":" -f 5)
|
||
|
|
|
||
|
|
cat<<EOF > $CIDATA_DIR/meta-data
|
||
|
|
instance-id: "${ZONE_UUID}"
|
||
|
|
hostname: "${ZONE}"
|
||
|
|
EOF
|
||
|
|
|
||
|
|
MAC_ADDRESS=$(dladm show-vnic ${NICNAME} -p -o macaddress)
|
||
|
|
|
||
|
|
|
||
|
|
cat<<EOF > $CIDATA_DIR/network-config
|
||
|
|
network:
|
||
|
|
version: 1
|
||
|
|
config:
|
||
|
|
- type: physical
|
||
|
|
name: ${NICNAME}
|
||
|
|
mac_address: '${MAC_ADDRESS}'
|
||
|
|
subnets:
|
||
|
|
- type: static
|
||
|
|
address: ${IP_ADDRESS_CIDR}
|
||
|
|
gateway: ${GATEWAY}
|
||
|
|
dns_nameservers:
|
||
|
|
- 9.9.9.9
|
||
|
|
- 149.112.112.112
|
||
|
|
- 2620:fe::fe
|
||
|
|
- 2620:fe::9
|
||
|
|
dns_search:
|
||
|
|
- openindiana.org
|
||
|
|
EOF
|
||
|
|
|
||
|
|
vim $CIDATA_DIR/network-config
|
||
|
|
|
||
|
|
(cd ${CIDATA_DIR}; mkisofs -graft-points -dlrDJN -relaxed-filenames -o ${ISO} -V cidata user-data meta-data network-config)
|
||
|
|
|
||
|
|
zoneadm -z $ZONE install
|
||
|
|
zoneadm -z $ZONE boot
|
||
|
|
|
||
|
|
zlogin -C $ZONE
|