File openstack-quickstart-extranodesetup of Package openstack-quickstart
#!/bin/bash -x
# assumes the openstack-compute-node pattern installed
pw=openstack
mpw=m$pw
# cloud controller's IP-address:
IP=10.10.135.7
echo "Setting up OpenStack demo extra node..."
# use lxc or qemu, if kvm is unavailable
if rpm -q openstack-nova-compute >/dev/null && ! grep -q -e vmx -e svm /proc/cpuinfo ; then
sed -i -e 's/\(--libvirt_type\).*/\1=lxc/' /etc/nova/nova.conf
zypper -n install lxc
modprobe nbd
sed -i -e 's/\(MODULES_LOADED_ON_BOOT="\)/\1nbd\ /' /etc/sysconfig/kernel
echo mount -t cgroup none /cgroup >> /etc/init.d/boot.local
mount -t cgroup none /cgroup
fi
# activate ip-forwarding
sed -i -e 's;IP_FORWARD="no";IP_FORWARD="yes";' /etc/sysconfig/sysctl
sed -i -e 's;net.ipv4.ip_forward.*;net.ipv4.ip_forward = 1;' /etc/sysctl.conf
echo 1 > /proc/sys/net/ipv4/ip_forward
# configure bridge
if [ ! -e /etc/sysconfig/network/ifcfg-br0 ] ; then
echo "net.ipv4.conf.all.proxy_arp = 1" >> /etc/sysctl.conf
/etc/init.d/network stop
ifdown eth0 # because systemd ignores the above
sed -i -e "s/\(BOOTPROTO\).*/\1='static'/" \
-e "s|^\(IPADDR\).*|\1='0.0.0.0\\/32'|" /etc/sysconfig/network/ifcfg-eth0
cat >/etc/sysconfig/network/ifcfg-br0 <<EOF
BOOTPROTO='dhcp4'
BRIDGE='yes'
BRIDGE_FORWARDDELAY='0'
BRIDGE_PORTS='eth0'
BRIDGE_STP='off'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR=''
MTU=''
NETMASK=''
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='onboot'
USERCONTROL='no'
EOF
/etc/init.d/network start
fi
# configure nova
sed -i -e "s;127.0.0.1;$IP;" /etc/nova/api-paste.ini /etc/glance/glance-api.conf /etc/glance/glance-registry.conf /etc/bash.openstackrc
perl -i.bak -pe "s/root:<mysql-password>/nova:$mpw/; s/<IP>/$IP/g; s/(--network_manager).*/\$1=nova.network.manager.FlatDHCPManager/;" /etc/nova/nova.conf
echo "--vncproxy_url=http://$IP:6080" >> /etc/nova/nova.conf
echo '--flat_network_bridge=br0' >> /etc/nova/nova.conf
echo "--image_service=nova.image.glance.GlanceImageService" >> /etc/nova/nova.conf
echo "--glance_api_servers=$IP:9292" >> /etc/nova/nova.conf
SuSEfirewall2 stop # interferes with openstack's network/firewall
insserv -r SuSEfirewall2_setup
insserv -r SuSEfirewall2_init
/etc/init.d/boot.apparmor stop # interferes with openstack-nova-network
insserv -r boot.apparmor
# configure NTP, because we need synchronized time between nodes
grep -q ntp.org /etc/ntp.conf || echo server pool.ntp.org >> /etc/ntp.conf
# start services
for s in ntp libvirtd iscsitarget open-iscsi tgtd openstack-nova-compute
do
i=/etc/init.d/$s
if [ -x $i ] ; then
insserv $s
$i restart
fi
done
grep -q bash.openstackrc /etc/bash.bashrc.local ||\
echo "export HOST_IP=$IP
. /etc/bash.openstackrc
setcreds admin $pw" >> /etc/bash.bashrc.local