Guest User

Untitled

a guest
Dec 16th, 2011
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.53 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. make_pw() {
  4.     LEN=16
  5.     PW=`openssl rand -hex $LEN`
  6.     echo $PW
  7. }
  8.  
  9. if [[ ! $EUID -eq 0 ]]; then
  10.     echo "You need to be running this as root..."
  11.     exit 1
  12. fi
  13.  
  14. #various config and users and stuff...
  15. NOW=`date`
  16. DEST=${DEST:-/opt/stack}
  17. LOG_LOC="/tmp"
  18. USERMADE="stack"
  19.  
  20. #take the first IP we find as the ip to use... (not localhost)
  21. MYIP=`ifconfig  | grep -i 'inet addr:' | grep -v '127.0.0.1' | cut -d: -f2 | awk '{print $1}' | head -n 1`
  22.  
  23. if [ -z "$MYIP" ]; then
  24.     echo "You have no IP?"
  25.     exit 1
  26. fi
  27.  
  28. echo "Doing devstack install on $NOW"
  29.  
  30. #this might fail...
  31. PW=`getent passwd $USERMADE`
  32.  
  33. #now turn erroring on...
  34. set -o errexit
  35.  
  36. echo "Generating passwords..."
  37. LOGFILE=$LOG_LOC/devstack-install.log
  38. MYSQL_PASSWORD=$(make_pw)
  39. RABBIT_PASSWORD=$(make_pw)
  40. SERVICE_TOKEN=$(make_pw)
  41. ADMIN_PASSWORD=$(make_pw)
  42. SWIFT_HASH=$(make_pw)
  43.  
  44. #branch support, ie replace with "master@{2011-12-14 12:00}"
  45. BRANCH=""
  46.  
  47. echo "Settings are the following..."
  48. echo "LOGFILE = $LOGFILE"
  49. echo "IP = $MYIP"
  50. echo "MYSQL_PASSWORD = $MYSQL_PASSWORD"
  51. echo "RABBIT_PASSWORD = $MYSQL_PASSWORD"
  52. echo "SERVICE_TOKEN = $SERVICE_TOKEN"
  53. echo "ADMIN_PASSWORD = $ADMIN_PASSWORD"
  54. echo "SWIFT_HASH = $SWIFT_HASH"
  55.  
  56. if [ -n "$BRANCH" ]; then
  57.     echo "USING BRANCH = $BRANCH"
  58. fi
  59.  
  60. #give chance to see settings...
  61. sleep 5
  62.  
  63. if [ -n "$PW" ]; then
  64.    
  65.     echo "Cleaning up old instances..."
  66.  
  67.     SCREENS=`sudo -u $USERMADE screen  -list 2>/dev/null | grep -Pi "\\d+\.stack" |  cut -f 2`
  68.    
  69.     for scr in $SCREENS
  70.     do
  71.         echo "Killing screen $scr..."
  72.         sudo -u $USERMADE screen -r $scr -X kill
  73.         sleep 5
  74.         echo "Quitting screen $scr..."
  75.         sudo -u $USERMADE screen -r $scr -X quit
  76.         sleep 5
  77.     done
  78.    
  79. fi
  80.  
  81. echo "Purging the database..."
  82.  
  83. #this seems harsh but its what i go to work..
  84. apt-get -y purge mysql*  
  85.  
  86. echo "Removing installed directories & some files adjusted/created by devstack..."
  87.  
  88. rm -rf devstack $DEST/* /var/cache/pip /etc/mysql/my.cnf  
  89.  
  90. echo "Autoremoving any other packages..."
  91.  
  92. apt-get -y autoremove
  93.  
  94. echo "Installing new packages..."
  95.  
  96. apt-get install -y openssh-server git apache2  
  97.  
  98. echo "Cloning git..."
  99.  
  100. git clone git://github.com/cloudbuilders/devstack.git
  101.  
  102. echo "Making directory location at $LOG_LOC for logfile $LOGFILE..."
  103.  
  104. mkdir -pv $LOG_LOC/
  105.  
  106. echo "Saving local overrides..."
  107.  
  108. echo "#Local overrides" >> ./devstack/localrc
  109. echo "MYSQL_PASSWORD=$MYSQL_PASSWORD" >> ./devstack/localrc
  110. echo "RABBIT_PASSWORD=$RABBIT_PASSWORD" >> ./devstack/localrc
  111. echo "SERVICE_TOKEN=$SERVICE_TOKEN" >> ./devstack/localrc
  112. echo "SWIFT_HASH=$SWIFT_HASH" >> ./devstack/localrc
  113. echo "ADMIN_PASSWORD=$ADMIN_PASSWORD" >> ./devstack/localrc
  114. echo "LOGFILE=$LOGFILE" >> ./devstack/localrc
  115. echo "HOST_IP=$MYIP" >> ./devstack/localrc
  116.  
  117. #pickup from tags/branch
  118. if [ -n "$BRANCH" ]; then
  119.     echo "Using branch $BRANCH"
  120.     echo "KEYSTONE_BRANCH=$BRANCH"   >> ./devstack/localrc
  121.     echo "GLANCE_BRANCH=$BRANCH"   >> ./devstack/localrc
  122.     echo "SWIFT_KEYSTONE_BRANCH=$BRANCH"   >> ./devstack/localrc
  123.     #echo "NOVNC_BRANCH=$BRANCH"   >> ./devstack/localrc
  124.     echo "NOVA_BRANCH=$BRANCH"   >> ./devstack/localrc
  125.     echo "HORIZON_BRANCH=$BRANCH"   >> ./devstack/localrc
  126.     echo "QUANTUM_BRANCH=$BRANCH"   >> ./devstack/localrc
  127.     #echo "OPENSTACKX_BRANCH=$BRANCH"   >> ./devstack/localrc
  128. fi
  129.  
  130. echo "About to install devstack..."
  131.  
  132. echo "Giving you 5 seconds to abort..."
  133.  
  134. sleep 5
  135.  
  136. echo "Installing devstack..."
  137.  
  138. #go!
  139. cd devstack && ./stack.sh
Advertisement
Add Comment
Please, Sign In to add comment