65 lines
2.2 KiB
Bash
Executable File
65 lines
2.2 KiB
Bash
Executable File
#!/bin/bash -ex
|
|
# In debian-installer's shell run:
|
|
# anna-install network-console
|
|
# it'll bring up password settings and SSH setup after network setup
|
|
# BTW, 172.18.184.58:3142 is a good choice for mirror in cz ;)
|
|
|
|
# After system is booted
|
|
sudo apt-get install libvirt-bin qemu-kvm lvm2
|
|
# Logout/login to get into libvirtd group
|
|
# Fucking https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1343245
|
|
printf ' /dev/vms/* rw,\n /dev/dm-* rw,\n' | sudo tee -a /etc/apparmor.d/abstractions/libvirt-qemu > /dev/null
|
|
# Setup LVM
|
|
virsh pool-define-as vms logical --source-dev /dev/sdc
|
|
virsh pool-build vms
|
|
virsh pool-autostart vms
|
|
virsh pool-start vms
|
|
|
|
# Networks
|
|
virsh net-undefine default
|
|
for net in admin management private public storage; do
|
|
if [ "$net" = "admin" ]; then
|
|
fwd="<ip address='172.20.0.1' prefix='24'></ip>"
|
|
elif [ "$net" = "public" ]; then
|
|
fwd="<forward mode='nat'/><ip address='172.16.0.1' prefix='24'></ip>"
|
|
else
|
|
fwd=""
|
|
fi
|
|
virsh net-define <(echo "<network><name>$net</name>$fwd</network>")
|
|
virsh net-autostart $net
|
|
virsh net-start $net
|
|
done
|
|
|
|
# Master node
|
|
# Download ISO from some node
|
|
virsh vol-create-as vms fuel 100G
|
|
virsh define "$MYDIR/fuel.xml"
|
|
virsh start fuel
|
|
virsh event fuel lifecycle # wait for shutdown on reboot
|
|
virsh event fuel lifecycle --timeout 5 # wait for final shutdown on reboot
|
|
# This error is OK: (see https://www.redhat.com/archives/libvir-list/2015-April/msg00619.html)
|
|
# error: internal error: virsh event: no domain VSH_OT_DATA option
|
|
EDITOR="sed -i '/boot.*cdrom/d; /on_reboot/d'" virsh edit fuel # don't boot from CD, don't destroy on reboot
|
|
virsh start fuel
|
|
virsh autostart fuel
|
|
sleep 600 # let it install everything
|
|
|
|
# Other nodes
|
|
for i in $(seq 1 6); do
|
|
name="controller-$i"
|
|
virsh vol-create-as vms $name 100G
|
|
virsh define <(sed "s/%NAME%/$name/; s/%CPU%/2/; s/%MEMORY%/4/; /-ceph/d" "$MYDIR/node.xml")
|
|
virsh autostart $name
|
|
virsh start $name
|
|
sleep 120
|
|
done
|
|
for i in $(seq 1 6); do
|
|
name="compute-$i"
|
|
virsh vol-create-as vms $name 100G
|
|
virsh vol-create-as vms $name-ceph 100G
|
|
virsh define <(sed "s/%NAME%/$name/; s/%CPU%/4/; s/%MEMORY%/8/" "$MYDIR/node.xml")
|
|
virsh autostart $name
|
|
virsh start $name
|
|
sleep 120
|
|
done
|