mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
152 lines
5.0 KiB
Bash
152 lines
5.0 KiB
Bash
#!/bin/bash
|
|
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
fileSvr="http://download.cloud.com/templates/devcloud/"
|
|
install_xen() {
|
|
aptitude update
|
|
echo "install xen"
|
|
aptitude -y install linux-headers-3.2.0-23-generic-pae
|
|
aptitude -y install xen-hypervisor-4.1-i386 xcp-xapi
|
|
echo "configure xen"
|
|
|
|
sed -i -e 's/xend_start$/#xend_start/' -e 's/xend_stop$/#xend_stop/' /etc/init.d/xend
|
|
update-rc.d xendomains disable
|
|
|
|
sed -i 's/GRUB_DEFAULT=.\+/GRUB_DEFAULT="Xen 4.1-i386"/' /etc/default/grub
|
|
echo 'GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=512M,max:512M"' | cat /etc/default/grub - >> /etc/default/newgrub
|
|
mv /etc/default/newgrub /etc/default/grub
|
|
update-grub
|
|
|
|
mkdir /usr/share/qemu
|
|
ln -s /usr/share/qemu-linaro/keymaps /usr/share/qemu/keymaps
|
|
|
|
cat > /etc/network/interfaces << EOF
|
|
# The loopback network interface
|
|
auto lo
|
|
iface lo inet loopback
|
|
|
|
# The primary network interface
|
|
auto xenbr0
|
|
iface xenbr0 inet dhcp
|
|
gateway 10.0.2.2
|
|
bridge_ports eth0
|
|
|
|
|
|
auto eth0
|
|
iface eth0 inet dhcp
|
|
pre-up iptables-save < /etc/iptables.save
|
|
pre-up /etc/init.d/ebtables load
|
|
EOF
|
|
|
|
echo TOOLSTACK=xapi > /etc/default/xen
|
|
echo bridge > /etc/xcp/network.conf
|
|
|
|
echo "set root password"
|
|
echo "root:password" | chpasswd
|
|
|
|
echo "reboot"
|
|
reboot
|
|
}
|
|
|
|
postsetup() {
|
|
#check xen dom0 is working
|
|
xe host-list > /dev/null
|
|
if [ $? -gt 0 ]; then
|
|
print "xen dom0 is not running, make sure dom0 is installed"
|
|
exit 1
|
|
fi
|
|
|
|
#disable virtualbox dhcp server for Vms created by cloudstack
|
|
apt-get install ebtables
|
|
iptables -A POSTROUTING -t mangle -p udp --dport bootpc -j CHECKSUM --checksum-fill
|
|
mac=`ifconfig xenbr0 |grep HWaddr |awk '{print $5}'`
|
|
ebtables -I FORWARD -d ! $mac -i eth0 -p IPV4 --ip-prot udp --ip-dport 67:68 -j DROP
|
|
iptables-save > /etc/iptables.save
|
|
/etc/init.d/ebtables save
|
|
|
|
echo "configure NFS server"
|
|
aptitude -y install nfs-server
|
|
if [ ! -d /opt/storage/secondary ];then
|
|
mkdir -p /opt/storage/secondary
|
|
mkdir -p /opt/storage/secondary/template/tmpl/1/1
|
|
mkdir -p /opt/storage/secondary/template/tmpl/1/5
|
|
|
|
echo "/opt/storage/secondary *(rw,no_subtree_check,no_root_squash,fsid=0)" > /etc/exports
|
|
wget $fileSvr/defaulttemplates/1/dc68eb4c-228c-4a78-84fa-b80ae178fbfd.vhd -P /opt/storage/secondary/template/tmpl/1/1/
|
|
wget $fileSvr/defaulttemplates/1/template.properties -P /opt/storage/secondary/template/tmpl/1/1/
|
|
wget $fileSvr/defaulttemplates/5/ce5b212e-215a-3461-94fb-814a635b2215.vhd -P /opt/storage/secondary/template/tmpl/1/5/
|
|
wget $fileSvr/defaulttemplates/5/template.properties -P /opt/storage/secondary/template/tmpl/1/5/
|
|
/etc/init.d/nfs-kernel-server restart
|
|
fi
|
|
|
|
echo "configure local storage"
|
|
if [ ! -d /opt/storage/primary ]; then
|
|
mkdir -p /opt/storage/primary
|
|
hostuuid=`xe host-list |grep uuid|awk '{print $5}'`
|
|
xe sr-create host-uuid=$hostuuid name-label=local-storage shared=false type=file device-config:location=/opt/storage/primary
|
|
fi
|
|
|
|
echo "generate ssh key"
|
|
ssh-keygen -A -q
|
|
|
|
echo "configure xcp"
|
|
wget $fileSvr/echo -P /usr/lib/xcp/plugins/
|
|
chmod -R 777 /usr/lib/xcp
|
|
|
|
sed -i 's/VNCTERM_LISTEN=.\+/VNCTERM_LISTEN="-v 0.0.0.0:1"/' /usr/lib/xcp/lib/vncterm-wrapper
|
|
|
|
echo "install cloudstack "
|
|
|
|
if [ ! -d /opt/cloudstack ];then
|
|
aptitude -y install git unzip openjdk-6-jdk mysql-server ant
|
|
mkdir /opt/cloudstack
|
|
cd /opt/cloudstack
|
|
git clone https://git-wip-us.apache.org/repos/asf/incubator-cloudstack.git
|
|
mkdir incubator-cloudstack/target
|
|
mkdir incubator-cloudstack/dist
|
|
wget http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.32/bin/apache-tomcat-6.0.32.zip -P /opt/cloudstack/
|
|
unzip apache-tomcat-6.0.32.zip
|
|
echo "export CATALINA_HOME=/opt/cloudstack/apache-tomcat-6.0.32" >> /root/.bashrc
|
|
cd ~
|
|
fi
|
|
|
|
echo "devCloud is ready to use"
|
|
}
|
|
usage() {
|
|
print "$0 -p: presetup enviroment, e.g. install xen, configure xcp etc"
|
|
print "$0 -P: postsetup, install cloudstack, prepare template etc"
|
|
}
|
|
|
|
while getopts "pP" OPTION
|
|
do
|
|
case $OPTION in
|
|
p)
|
|
install_xen
|
|
exit 0
|
|
;;
|
|
P)
|
|
postsetup
|
|
exit 0
|
|
;;
|
|
?)
|
|
usage
|
|
exit
|
|
;;
|
|
esac
|
|
done
|