Updated install scripts

Migrate to stackforge/compass-core. If the installation is based
on local, now run './install.sh --source=local'. If the source
variable is not specified, the installer will download it from the
public repo.

Change-Id: Ic4dd746642a4231b11d5618fff8c5cda4cc39630
This commit is contained in:
Xicheng Chang 2014-01-23 10:31:17 -08:00
parent ccefdc1b6f
commit 7c31e6a7fd
6 changed files with 55 additions and 52 deletions

View File

@ -13,7 +13,9 @@ sudo mkdir /root/backup # create backup folder
sudo cp /etc/ntp.conf /root/backup/
# update ntp.conf
sudo sed -i 's/^#server[ \t]\+127.127.1.0/server 127.127.1.0/g' /etc/ntp.conf
sudo service ntpd restart
sudo service ntpd stop
sudo ntpdate 0.centos.pool.ntp.org
sudo service ntpd start
# configure xinetd
sudo cp /etc/xinetd.d/tftp /root/backup/
@ -38,8 +40,10 @@ sudo cp /etc/cobbler/dhcp.template /root/backup/cobbler/
# Dumps the variables to dhcp template
subnet=$(ipcalc $SUBNET -n |cut -f 2 -d '=')
sudo sed -i "s/subnet 192.168.1.0 netmask 255.255.255.0/subnet $subnet netmask 255.255.255.0/g" /etc/cobbler/dhcp.template
sudo sed -i "/option routers/c\ option routers $OPTION_ROUTER;" /etc/cobbler/dhcp.template
sudo sed -i "s/subnet 192.168.1.0 netmask 255.255.255.0/subnet $subnet netmask $netmask/g" /etc/cobbler/dhcp.template
sudo sed -i "/option routers[ \t]\+[a-zA-Z0-9]\+.[a-zA-Z0-9]\+.[a-zA-Z0-9]\+.[a-zA-Z0-9]\+/c\ option routers $OPTION_ROUTER;" /etc/cobbler/dhcp.template
sudo sed -i "s/option subnet-mask[ \t]\+255.255.255.0/option subnet-mask $netmask/g" /etc/cobbler/dhcp.template
sudo sed -i "/option domain-name-servers/c\ option domain-name-servers $ipaddr;" /etc/cobbler/dhcp.template
sudo sed -i "/range dynamic-bootp/c\ range dynamic-bootp $IP_RANGE;" /etc/cobbler/dhcp.template
sudo sed -i 's/^\([ \t]*\).*fixed-address.*$/\1#pass/g' /etc/cobbler/dhcp.template
sudo sed -i "/allow bootp/a deny unknown-clients;\nlocal-address $ipaddr;" /etc/cobbler/dhcp.template
@ -53,7 +57,8 @@ sudo sed -i 's/manage_tftpd:[ \t]\+0/manage_tftpd: 1/g' /etc/cobbler/settings
sudo sed -i 's/anamon_enabled:[ \t]\+0/anamon_enabled: 1/g' /etc/cobbler/settings
sudo sed -i "s/default_name_servers:.*/default_name_servers: \['$ipaddr'\]/g" /etc/cobbler/settings
sudo sed -i 's/enable_menu:[ \t]\+1/enable_menu: 0/g' /etc/cobbler/settings
sudo sed -i "s/manage_forward_zones:.*/manage_forward_zones: \['ods.com'\]/g" /etc/cobbler/settings
domains=$(echo $NAMESERVER_DOMAINS | sed "s/,/','/g")
sudo sed -i "s/manage_forward_zones:.*/manage_forward_zones: \['$domains'\]/g" /etc/cobbler/settings
sudo sed -i 's/pxe_just_once:[ \t]\+0/pxe_just_once: 1/g' /etc/cobbler/settings
sudo sed -i "s,^default_password_crypted:[ \t]\+\"\(.*\)\",default_password_crypted: \"$cobbler_passwd\",g" /etc/cobbler/settings
sudo sed -i 's/^RewriteRule/# RewriteRule/g' /etc/httpd/conf.d/cobbler_web.conf
@ -75,7 +80,8 @@ CBLR_PASSWD=${CBLR_PASSWD:-"cobbler"}
(echo -n "$CBLR_USER:Cobbler:" && echo -n "$CBLR_USER:Cobbler:$CBLR_PASSWD" | md5sum - | cut -d' ' -f1) >> /etc/cobbler/users.digest
sudo sed -i "s/listen-on[ \t]\+.*;/listen-on port 53 \{ $ipaddr; \};/g" /etc/cobbler/named.template
sudo sed -i "s/allow-query[ \t]\+.*/allow-query\t\{ 127.0.0.0\/8; 10.0.0.0\/8; 192.168.0.0\/16; 172.16.0.0\/12; $subnet; \};/g" /etc/cobbler/named.template
subnet_escaped=$(echo $SUBNET | sed -e 's/[\/&]/\\&/g')
sudo sed -i "s/allow-query[ \t]\+.*/allow-query\t\{ 127.0.0.0\/8; 10.0.0.0\/8; 192.168.0.0\/16; 172.16.0.0\/12; $subnet_escaped; \};/g" /etc/cobbler/named.template
echo "$HOSTNAME IN A $ipaddr" >> /etc/cobbler/zone.template

View File

@ -14,14 +14,34 @@ copygit2dir()
fi
git clone $repo $destdir
}
copylocal2dir()
{
destdir=$1
repo=$2
if [ -d $destdir ];then
echo "$destdir exists"
else
mkdir -p $destdir
fi
sudo \cp -rf $repo/* $destdir
}
cd $SCRIPT_DIR
#export ipaddr=$(ifconfig $NIC | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
##SUBNET=${SUBNET:-$(ip address| grep "global $NIC" |cut -f 6 -d ' ')}
WEB_HOME=${WEB_HOME:-'/tmp/web/'}
ADAPTER_HOME=${ADAPTER_HOME:-'/tmp/adapter/'}
copygit2dir $WEB_HOME 'https://github.com/huawei-cloud/compass-web'
copygit2dir $ADAPTER_HOME 'https://github.com/huawei-cloud/compass-adapters'
## copygit2dir $WEB_HOME 'https://github.com/huawei-cloud/compass-web'
## copygit2dir $ADAPTER_HOME 'https://github.com/huawei-cloud/compass-adapters'
WEB_SOURCE=${WEB_SOURCE:-'https://github.com/stackforge/compass-web'}
ADPATER_SOURCE=${ADAPTER_SOURCE:-'https://github.com/stackforge/compass-adapters'}
if [ $source != local ]; then
copygit2dir $WEB_HOME $WEB_SOURCE
copygit2dir $ADAPTER_HOME $ADAPTER_SOURCE
else
copylocal2dir $WEB_HOME $WEB_SOURCE
copylocal2dir $ADAPTER_HOME $ADAPTER_SOURCE
fi
# download dependences
wget http://github.com/downloads/bitovi/javascriptmvc/$JS_MVC.zip
@ -90,6 +110,7 @@ sudo \cp -rf $COMPASSDIR/conf/setting /etc/compass/
sudo \cp -rf $COMPASSDIR/conf/compassd /etc/init.d/
sudo \cp -rf $COMPASSDIR/bin/*.py /opt/compass/bin/
sudo \cp -rf $COMPASSDIR/bin/*.sh /opt/compass/bin/
sudo \cp -rf $COMPASSDIR/bin/compass /usr/bin/
sudo \cp -rf $COMPASSDIR/bin/chef/* /opt/compass/bin/
sudo \cp -rf $COMPASSDIR/conf/compassd /usr/bin/
sudo \cp -rf $WEB_HOME/public/* /var/www/compass_web/

View File

@ -5,7 +5,7 @@ echo 'Installing Required packages for Compass...'
sudo yum install -y rsyslog ntp iproute openssh-clients python git wget python-setuptools python-netaddr python-flask python-flask-sqlalchemy python-amqplib amqp python-paramiko python-mock mod_wsgi httpd squid dhcp bind rsync yum-utils xinetd tftp-server gcc net-snmp-utils net-snmp python-daemon
sudo easy_install pip==1.2.1
sudo pip install flask-script flask-restful Celery six discover unittest2 pychef
sudo pip install flask-script flask-restful Celery six discover unittest2 pychef requests
sudo chkconfig httpd on
sudo chkconfig squid on

View File

@ -20,6 +20,8 @@ export OPTION_ROUTER=
IP_RANGE=
# TFTP server's IP address(Default: Management Interface/eth0 IP)
export NEXTSERVER=
# the domains covered by nameserver
export NAMESERVER_DOMAINS=
# set the default cobbler user "cobbler" password, if not set, the default will be cobbler/cobbler
CBLR_USER=
@ -44,3 +46,8 @@ export CHEF_PASSWD=root1234
# Set Compass-web and Compass-adpater variables
WEB_HOME=
ADAPTER_HOME=
if [[ -n $source ]] && [ $source = "local" ];then
export WEB_SOURCE=${DIR}/../web
export ADAPTER_SOURCE=${DIR}/../misc
fi

View File

@ -43,12 +43,21 @@ trap 'errtrap $LINENO $?' ERR
# Install figlet
sudo yum -y install figlet >& /dev/null
figlet -ctf slant Compass Installer
while [ $1 ]; do
flags=$1
param=${flags/'--'/''}
var=$(echo $param | cut -d"=" -f1)
val=$(echo $param | cut -d"=" -f2)
export $var=$val
shift
done
# Load variables
source $DIR/install.conf
echo $WEB_SOURCE
echo $ADAPTER_SOURCE
loadvars()
{
varname=${1,,}
@ -81,8 +90,8 @@ loadvars()
fi
}
echo $NIC
loadvars NIC "eth0"
export netmask=$(ifconfig $NIC |grep Mask | cut -f 4 -d ':')
export ipaddr=$(ifconfig $NIC | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
export range=$(echo "$(echo "$ipaddr"|cut -f 1 -d '.').$(echo "$ipaddr"|cut -f 2 -d '.').$(echo "$ipaddr"|cut -f 3 -d '.').100 $(echo "$ipaddr"|cut -f 1 -d '.').$(echo "$ipaddr"|cut -f 2 -d '.').$(echo "$ipaddr"|cut -f 3 -d '.').250")
export ipnet=$(ip address| grep "global $NIC" |cut -f 6 -d ' ')
@ -90,7 +99,7 @@ loadvars SUBNET $(ipcalc $ipnet -n |cut -f 2 -d '=')/$(ipcalc $ipnet -p |cut -f
loadvars OPTION_ROUTER $(route -n | grep '^0.0.0.0' | xargs | cut -d ' ' -f 2)
loadvars IP_RANGE "$range"
loadvars NEXTSERVER $ipaddr
loadvars NAMESERVER_DOMAINS "ods.com"
echo "Install the Dependencies"
source $DIR/dependency.sh

View File

@ -1,40 +0,0 @@
#!/bin/bash
source install.conf
sudo figlet Compass Installer
loadvars()
{
varname=${1,,}
eval var=\$$(echo $1)
if [[ -z $var ]]; then
echo "Please enter the DHCP $varname (Example: $2) "
while read input
do
if [ "$input" == "" ]; then
echo "Default $varname '$2' chosen"
export $(echo $1)="$2"
break
else
if [[ ( "$input" != *.* ) && ( "$1" != "NIC" ) ]]; then
echo "I really expect IP addresses"
exit
elif [ "$1" == "NIC" ]; then
sudo ip addr |grep $input >& /dev/null
if [ $? -ne 0 ]; then
echo "There is not any IP address assigned to the NIC '$input' yet, please assign an IP address first."
exit
fi
fi
echo "You have entered $input"
export $(echo $1)="$input"
break
fi
done
fi
}
loadvars NIC "eth0"