Last active
December 17, 2015 03:39
-
-
Save shaon/b53451a964ae7f553829 to your computer and use it in GitHub Desktop.
re-install eucalyptus on QA system, mainly used on CLC
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
## CONFIG START ## | |
EUCACOMMIT="<eucalyptus commit-yyyy-mm-dd-nn>" | |
ENTRCOMMIT="<enterprise commit-yyyy-mm-dd-nn>" | |
CLCW00="<primary clc walrus ip>" | |
CCSC00="<primary cc sc ip>" | |
NC00="<node controller ip> <node controller ip>" | |
STORAGEBACKEND="das" | |
DASDEVICE="/dev/vg01" # for das backend only | |
# FIXME | |
LBIMGPATH="<load balancer image path>" # if it's downloaded on CLC | |
LBIMGURL="<load balancer image url>" # or download location | |
## CONFIG END ## | |
echo -e "Review configuration\n" | |
echo -e "============================\n" | |
echo -e "Eucalyptus Commit: "$EUCACOMMIT | |
echo -e "Enterprise Commit: "$ENTRCOMMIT | |
echo -e "CLC/Walrus IP: "$CLCW00 | |
echo -e "CC/SC IP: "$CCSC00 | |
echo -e "Node Controlers: "$NC00 | |
echo -e "Storage Backend: "$STORAGEBACKEND | |
echo -e "Das Device (for das backend only)" :$DASDEVICE | |
echo -e "LB Image Path: "$LBIMGPATH | |
echo -e "LB Image URL: "$LBIMGURL | |
echo -e "============================\n" | |
OK="n" | |
read -p "Is this configuration OK? [n/y]: " OK | |
if [ $OK == "n" ]; | |
then | |
exit 1 | |
fi | |
PRIMARYCLC="n" | |
read -p "Is this PRIMARY CLOUD CONTROLLER? [n/y]: " PRIMARYCLC | |
sleep 4 | |
echo -e "Setting up new repositories...\n" | |
sleep 1 | |
cat > /etc/yum.repos.d/eucalyptus.repo <<EOF | |
[eucalyptus] | |
name=eucalyptus | |
baseurl=http://packages.release.eucalyptus-systems.com/yum/builds/eucalyptus/commit/$EUCACOMMIT/centos/6/x86_64 | |
enabled=1 | |
gpgcheck=0 | |
EOF | |
cat > /etc/yum.repos.d/eucalyptus-enterprise.repo <<EOF | |
[eucalyptus-enterprise] | |
name=eucalyptus-enterprise | |
baseurl=http://packages.release.eucalyptus-systems.com/yum/builds/enterprise/commit/$ENTRCOMMIT/centos/6/x86_64 | |
enabled=1 | |
gpgcheck=0 | |
EOF | |
cat > /etc/yum.repos.d/pgrpms.repo <<EOF | |
[pgrpms] | |
name=Extra Repo - pgrpms | |
baseurl=http://packages.release.eucalyptus-systems.com/yum/tags/euca-master-bootstrap/rhel/6/x86_64/ | |
enabled=1 | |
gpgcheck=0 | |
EOF | |
MACHINES=( $CLCW00 $CCSC00 $NC00 ) | |
for i in "${MACHINES[@]}" | |
do | |
echo -e "Copying repositories to $i" | |
scp /etc/yum.repos.d/eucalyptus* root@$i:/etc/yum.repos.d/ | |
scp /etc/yum.repos.d/pgrpms.repo root@$i:/etc/yum.repos.d/ | |
done | |
# delete all volumes | |
#for x in `euca-describe-volumes verbose | cut -f 2`; do euca-delete-volume $x; done | |
# deregister/delete all images | |
echo -e "Deregistering EMIs... \n" | |
for x in `euca-describe-images | cut -f 2 | grep ^e`; do euca-deregister $x; done | |
for x in `euca-describe-images | cut -f 2 | grep ^e`; do euca-deregister $x; done | |
# delete all snapshots | |
for x in `euca-describe-snapshots verbose | cut -f 2`; do euca-delete-snapshot $x; done | |
echo -e "Stopping Components... \n" | |
echo -e "Stopping CLC/Walrus... \n" | |
service eucalyptus-cloud stop | |
sleep 3 | |
echo -e "Stopping SC... \n" | |
ssh root@$CCSC00 service eucalyptus-cloud stop | |
sleep 2 | |
echo -e "Stopping CC... \n" | |
ssh root@$CCSC00 service eucalyptus-cc stop | |
sleep 2 | |
NODECONTROLLERS=( $NC00 ) | |
for n in "${NODECONTROLLERS[@]}" | |
do | |
echo -e "Stopping NC $n... \n" | |
ssh root@$n service eucalyptus-nc stop | |
sleep 2 | |
done | |
echo -e "Removing DB and Keys from $CLCW00 ... \n" | |
rm -rf /var/lib/eucalyptus/db/* | |
for i in "${MACHINES[@]}" | |
do | |
echo -e "Removing DB and Keys from $i ... \n" | |
ssh root@$i rm -rf /var/lib/eucalyptus/keys/* | |
ssh root@$i yum clean expire-cache | |
ssh root@$i yum clean all | |
done | |
yum update "eucalyptus*" -y | |
echo -e "Unsetting environment variables...\n" | |
unset EC2_URL | |
unset S3_URL | |
unset EUARE_URL | |
unset TOKEN_URL | |
unset AWS_AUTO_SCALING_URL | |
unset AWS_CLOUDWATCH_URL | |
unset EUSTORE_URL | |
unset EC2_PRIVATE_KEY | |
unset EC2_CERT | |
unset EC2_JVM_ARGS | |
unset EUCALYPTUS_CERT | |
unset EC2_ACCOUNT_NUMBER | |
unset EC2_ACCESS_KEY | |
unset EC2_SECRET_KEY | |
unset AWS_ACCESS_KEY | |
unset AWS_SECRET_KEY | |
unset AWS_CREDENTIAL_FILE | |
unset EC2_USER_ID | |
sleep 2 | |
for e in "${MACHINES[@]}" | |
do | |
echo -e "Updating Eucalyptus at $e\n" | |
sleep 1 | |
ssh root@$e yum clean expire-cache | |
ssh root@$e yum clean all | |
ssh root@$e yum update "eucalyptus*" -y | |
sleep 1 | |
echo -e "\nEucalyptus UPDATED on $e\n" | |
done | |
sleep 3 | |
if [ $PRIMARYCLC == "y" ]; | |
then | |
euca_conf --initialize | |
fi | |
echo -e "Starting EUCALYPTUS CLOUD CONTROLLER/WALRUS... \n" | |
service eucalyptus-cloud start | |
sleep 240 | |
echo -e "Starting Cluster Controller...\n" | |
ssh root@$CCSC00 service eucalyptus-cc start | |
sleep 3 | |
echo -e "Starting Storage Controller...\n" | |
ssh root@$CCSC00 service eucalyptus-cloud start | |
sleep 15 | |
NODECONTROLLERS=( $NC00 ) | |
for n in "${NODECONTROLLERS[@]}" | |
do | |
echo -e "Starting Node Controller $n" | |
ssh root@$n service eucalyptus-nc start | |
sleep 3 | |
done | |
euca_conf --register-walrus --partition walrus --host $CLCW00 --component w00 | |
sleep 5 | |
echo "Waiting for systems to become ready" | |
sleep 5 | |
euca_conf --register-cluster --partition PARTI00 --host $CCSC00 --component cc00 | |
sleep 5 | |
echo "Waiting for systems to become ready" | |
sleep 20 | |
euca_conf --register-sc --partition PARTI00 --host $CCSC00 --component sc00 | |
sleep 5 | |
echo -e "Waiting for systems to become ready\n" | |
sleep 60 | |
for n in "${NODECONTROLLERS[@]}" | |
do | |
echo -e "Registering Node Controller $n \n" | |
ssh root@$CCSC00 euca_conf --register-nodes $n | |
done | |
sleep 5 | |
echo -e "Downloading new credentials...\n" | |
sleep 1 | |
rm -rf .euca; mkdir .euca; cd .euca; euca_conf --get-credentials admin.zip; unzip admin.zip; source eucarc; cd | |
sleep 1 | |
LOADBALANCEREMI=`eustore-install-image -b loadbalancer -a x86_64 -s loadbalancer -t eucalyptus-load-balancer-image.tgz --hypervisor universal | grep "emi-" | awk '{print $4}'` | |
sleep 2 | |
echo -e $LOADBALANCEREMI'\n' | |
echo -e "Registering loadbalancer EMI\n" | |
euca-modify-property -p loadbalancing.loadbalancer_emi=$LOADBALANCEREMI | |
echo -e "Downloading new credentials...\n" | |
sleep 1 | |
rm -rf .euca; mkdir .euca; cd .euca; euca_conf --get-credentials admin.zip; unzip admin.zip; source eucarc; cd | |
sleep 1 | |
echo -e "Installing CentOS 6.3 EMI from Eustore...\n" | |
eustore-install-image --hypervisor kvm -b centos63 -i 3868652036 | |
echo -e "Set Network Tag property for QA System... \n" | |
euca-modify-property -p cloud.network.global_max_network_tag=639 | |
sleep 2 | |
euca-modify-property -p cloud.network.global_min_network_tag=512 | |
sleep 3 | |
echo -e "Selecting DAS as storage backend... \n" | |
sleep 2 | |
euca-modify-property -p PARTI00.storage.blockstoragemanager=$STORAGEBACKEND | |
sleep 60 | |
if [ $STORAGEBACKEND == "das" ]; then | |
echo -e "Selecting /dev/vg01 as DAS Device... \n" | |
sleep 5 | |
euca-modify-property -p PARTI00.storage.dasdevice=$DASDEVICE | |
sleep 2 | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment