inception/bin/procedures

127 lines
3.7 KiB
Plaintext

(*) Physical machine
# check CPU auto scaling
grep -E '^model name|^cpu MHz' /proc/cpuinfo
# disable CPU auto scaling if enabled
for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do
[ -f $CPUFREQ ] || continue
echo -n performance > $CPUFREQ
done
sudo sed -i \
-e 's/echo -n ondemand > $CPUFREQ/echo -n performance > $CPUFREQ/' \
/etc/init.d/ondemand;
(*) OS image
# switch_kernel.sh (deprecated)
sudo apt-get -y update && sudo apt-get -y upgrade
(*) Basic software and configuration
sudo apt-get -y install \
emacs \
htop \
iftop \
iotop \
sysstat \
arping \
cpu-checker \
build-essential \
git \
python-dev
# enabel IP forwarding
sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' \
/etc/sysctl.conf && sudo sysctl net.ipv4.ip_forward=1
# enable fast ssh login
sudo sed -i.orig \
-e 's/#GSSAPIAuthentication no/GSSAPIAuthentication no\nUseDNS no/' \
/etc/ssh/sshd_config && sudo service ssh restart
# shorten failsafe sleep time
sudo sed -i \
-e 's/sleep 20/sleep 1/' \
-e 's/sleep 40/sleep 1/' \
-e 's/sleep 59/sleep 1/' \
/etc/init/failsafe.conf
(*) Chef server (following steps can be done either manually, or via chef-client)
# install_chefserver_deps.sh (skip-able)
install_chefserver.sh
configure_knife.sh
setup_chef_repo.sh
(*) Open vSwitch
# install_openvswitch.sh (deprecated)
sudo apt-get -y install openvswitch-switch
(*) libvirt, kvm
# install_libvirt.sh (deprecated)
sudo apt-get -y install libvirt-bin kvm qemu
sudo virsh net-destroy default
sudo virsh net-undefine default
# enable libvirt for VM live migration
sudo sed -i.orig /etc/libvirt/libvirtd.conf \
-e 's/#listen_tls = 0/listen_tls = 0/g' \
-e 's/#listen_tcp = 1/listen_tcp = 1/g' \
-e 's/#auth_tcp = "sasl"/auth_tcp = "none"/g'
sudo sed -i.orig /etc/init/libvirt-bin.conf \
-e 's/env libvirtd_opts="-d"/env libvirtd_opts="-d -l"/g'
sudo sed -i.orig /etc/default/libvirt-bin \
-e 's/libvirtd_opts="-d"/libvirtd_opts="-d -l"/g'
sudo service libvirt-bin restart
# /etc/nova/nova.conf
# live_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE
# libvirt_cpu_mode=custom
# libvirt_cpu_model=kvm64
(*) ZooKeeper
install_zookeeper.sh
(*) docker
sudo apt-get -y install docker.io lxc udhcpc arping
# enable lxc as backend driver
sudo sed -i /etc/default/docker.io \
-e 's/#DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4"/DOCKER_OPTS="-e lxc"/'
sudo service docker.io restart
# download and setup pipework
wget https://raw.githubusercontent.com/jpetazzo/pipework/master/pipework -P /root/
sed -i.orig -e 's/docker/docker.io/' /root/pipework
chmod +x /root/pipework
(*) VXLAN tunnels
ovs-vsctl add-br obr1; ovs-vsctl add-br obr2; ovs-vsctl add-br obr3; ovs-vsctl set Bridge obr1 stp_enable=true; ovs-vsctl set Bridge obr2 stp_enable=true; ovs-vsctl set Bridge obr3 stp_enable=true; ovs-vsctl add-port obr1 eth1p; ovs-vsctl add-port obr2 eth2p; ovs-vsctl add-port obr3 eth3p
prefix_ip=10.255; postfix_ip_1=100; postfix_ip_2=64; for i in 1 2 3; do ovs-vsctl --may-exist add-port obr${i} obr${i}_${postfix_ip_1}_${postfix_ip_2} -- set interface obr${i}_${postfix_ip_1}_${postfix_ip_2} type=vxlan options:remote_ip=${prefix_ip}.${postfix_ip_1}.${postfix_ip_2} options:key=${i}; done
DC=2; prefix_ip=135.207; postfix_ip_1=223; postfix_ip_2=152; for i in 1 2 3; do ovs-vsctl --may-exist add-port obr${i} gateway${i}_${DC} -- set interface gateway${i}_${DC} type=vxlan options:remote_ip=${prefix_ip}.${postfix_ip_1}.${postfix_ip_2} options:key=${i}; done
(*) Ryu WL2 controller
sudo pip install kazoo oslo.config netaddr eventlet webob routes
wget https://github.com/att/ryu.git
(*) Launch guest VMs (or use OpenStack)
launch_libvirt_instance.py
launch_docker_instance.py