Advertisement
Guest User

Untitled

a guest
Mar 28th, 2016
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/bash
  2. ##########################################
  3. # Version: 03b
  4. # Status: Functional
  5. # Notes: 4.2.4 Upgrade Working & more 14.04 Support
  6. # Zenoss: Core 4.2.5 (v2108) + ZenPacks
  7. # OS: Ubuntu/Debian 64-Bit
  8. ##########################################
  9.  
  10. # Beginning Script Message
  11. clear
  12. echo && echo "Welcome to the Zenoss 4.2.5 core-autodeploy script for Ubuntu and Debian! (http://hydruid-blog.com/?p=710)" && echo
  13. echo "*WARNING*: This script will update your OS and for Debian users it will install the "Testing" version of some packages."
  14. echo " Make sure to make a backup and/or take a snapshot!" && echo && sleep 5
  15. echo "...Begin, we will, learn you must." && sleep 1
  16.  
  17. # Installer variables
  18. ZENOSSHOME="/home/zenoss"
  19. DOWNDIR="/tmp"
  20. UPGRADE="no" # Valid options are "yes" and "no"
  21. ZVER="425"
  22. ZVERb="4.2.5"
  23. ZVERc="2108"
  24. DVER="03c"
  25. PACKAGECLEANUP="yes" # Valid options are "yes" and "no"
  26.  
  27. # Upgrade Message
  28. if [ $UPGRADE = "yes" ]; then
  29. echo && echo "...The upgrade process from 4.2.4 to 4.2.5 is still a work in progress. Use at your own risk and MAKE A BACKUP!" && sleep 5
  30. fi
  31.  
  32. # Update OS
  33. apt-get update && apt-get dist-upgrade -y
  34. if [ $PACKAGECLEANUP = "yes" ]; then
  35. apt-get autoremove -y
  36. fi
  37.  
  38. # Setup zenoss user and build environment
  39. useradd -m -U -s /bin/bash zenoss
  40. mkdir $ZENOSSHOME/zenoss$ZVER-srpm_install
  41. rm -f $ZENOSSHOME/zenoss$ZVER-srpm_install/variables.sh
  42. wget --no-check-certificate -N https://raw.github.com/hydruid/zenoss/master/core-autodeploy/$ZVERb/misc/variables.sh -P $ZENOSSHOME/zenoss$ZVER-srpm_install/
  43. . $ZENOSSHOME/zenoss$ZVER-srpm_install/variables.sh
  44. mkdir $ZENHOME && chown -cR zenoss:zenoss $ZENHOME
  45.  
  46. # OS compatibility tests
  47. detect-os && detect-arch && detect-user && hostname-verify
  48.  
  49. # Upgrade Preparation
  50. if [ $UPGRADE = "yes" ]; then
  51. /etc/init.d/zenoss stop
  52. cp $ZENHOME/etc/global.conf $ZENOSSHOME
  53. fi
  54.  
  55. # Install Package Dependencies
  56. if [ $curos = "ubuntu" ]; then
  57. multiverse-verify
  58. if [ $idos = "14" ]; then
  59. apt-get install software-properties-common -y && sleep 1
  60. else
  61. apt-get install python-software-properties -y && sleep 1
  62. fi
  63. echo | add-apt-repository ppa:webupd8team/java && sleep 1 && apt-get update
  64. apt-get install rrdtool libmysqlclient-dev nagios-plugins erlang subversion autoconf swig unzip zip g++ libssl-dev maven libmaven-compiler-plugin-java build-essential libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev oracle-java7-installer python-twisted python-gnutls python-twisted-web python-samba libsnmp-base snmp-mibs-downloader bc rpm2cpio memcached libncurses5 libncurses5-dev libreadline6-dev libreadline6 librrd-dev python-setuptools python-dev erlang-nox redis-server -y
  65. pkg-fix
  66. export DEBIAN_FRONTEND=noninteractive
  67. apt-get install mysql-server mysql-client mysql-common -y
  68. mysql-conn_test
  69. pkg-fix
  70. fi
  71. if [ $curos = "debian" ]; then
  72. apt-get install python-software-properties -y && sleep 1
  73. echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
  74. echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
  75. apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
  76. apt-get update
  77. apt-get install rrdtool libmysqlclient-dev nagios-plugins erlang subversion autoconf swig unzip zip g++ libssl-dev maven libmaven-compiler-plugin-java build-essential libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev oracle-java7-installer python-twisted python-gnutls python-twisted-web python-samba libsnmp-base bc rpm2cpio memcached libncurses5 libncurses5-dev libreadline6-dev libreadline6 librrd-dev python-setuptools python-dev erlang-nox smistrip redis-server -y
  78. debian-testing-repo
  79. wget -N http://ftp.us.debian.org/debian/pool/non-free/s/snmp-mibs-downloader/snmp-mibs-downloader_1.1_all.deb
  80. dpkg -i snmp-mibs-downloader_1.1_all.deb
  81. export DEBIAN_FRONTEND=noninteractive
  82. apt-get install mysql-server mysql-client mysql-common -y
  83. mysql-conn_test
  84. pkg-fix
  85. fi
  86.  
  87. # Download Zenoss DEB and install it
  88. wget -N http://softlayer-dal.dl.sourceforge.net/project/zenossforubuntu/zenoss-core-425-2108_03c_amd64.deb -P $DOWNDIR/
  89. if [ $UPGRADE = "no" ]; then
  90. dpkg -i $DOWNDIR/zenoss-core-425-2108_03c_amd64.deb
  91. fi
  92. if [ $UPGRADE = "yes" ]; then
  93. echo "...The follow errors are normal, still working to suppress them" && sleep 5
  94. dpkg -r zenoss-core-424-1897
  95. dpkg -i $DOWNDIR/zenoss-core-425-2108_03c_amd64.deb
  96. fi
  97. rm -f $ZENOSSHOME/zenoss$ZVER-srpm_install/variables.sh
  98. wget --no-check-certificate -N https://raw.github.com/hydruid/zenoss/master/core-autodeploy/$ZVERb/misc/variables.sh -P $ZENOSSHOME/zenoss$ZVER-srpm_install/
  99. chown -R zenoss:zenoss $ZENHOME && chown -R zenoss:zenoss $ZENOSSHOME
  100.  
  101. # Import the MySQL Database and create users
  102. if [ $UPGRADE = "no" ]; then
  103. if [ $mysqlcred = "yes" ]; then
  104. mysql -u$MYSQLUSER -p$MYSQLPASS -e "create database zenoss_zep"
  105. mysql -u$MYSQLUSER -p$MYSQLPASS -e "create database zodb"
  106. mysql -u$MYSQLUSER -p$MYSQLPASS -e "create database zodb_session"
  107. echo && echo "...The 1305 MySQL import error below is safe to ignore"
  108. mysql -u$MYSQLUSER -p$MYSQLPASS zenoss_zep < $ZENOSSHOME/zenoss_zep.sql
  109. mysql -u$MYSQLUSER -p$MYSQLPASS zodb < $ZENOSSHOME/zodb.sql
  110. mysql -u$MYSQLUSER -p$MYSQLPASS zodb_session < $ZENOSSHOME/zodb_session.sql
  111. mysql -u$MYSQLUSER -p$MYSQLPASS -e "CREATE USER 'zenoss'@'localhost' IDENTIFIED BY 'zenoss';"
  112. mysql -u$MYSQLUSER -p$MYSQLPASS -e "GRANT REPLICATION SLAVE ON *.* TO 'zenoss'@'localhost' IDENTIFIED BY PASSWORD '*3715D7F2B0C1D26D72357829DF94B81731174B8C';"
  113. mysql -u$MYSQLUSER -p$MYSQLPASS -e "GRANT ALL PRIVILEGES ON zodb.* TO 'zenoss'@'localhost';"
  114. mysql -u$MYSQLUSER -p$MYSQLPASS -e "GRANT ALL PRIVILEGES ON zenoss_zep.* TO 'zenoss'@'localhost';"
  115. mysql -u$MYSQLUSER -p$MYSQLPASS -e "GRANT ALL PRIVILEGES ON zodb_session.* TO 'zenoss'@'localhost';"
  116. mysql -u$MYSQLUSER -p$MYSQLPASS -e "GRANT SELECT ON mysql.proc TO 'zenoss'@'localhost';"
  117. mysql -u$MYSQLUSER -p$MYSQLPASS -e "CREATE USER 'zenoss'@'%' IDENTIFIED BY 'zenoss';"
  118. mysql -u$MYSQLUSER -p$MYSQLPASS -e "GRANT REPLICATION SLAVE ON *.* TO 'zenoss'@'%' IDENTIFIED BY PASSWORD '*3715D7F2B0C1D26D72357829DF94B81731174B8C';"
  119. mysql -u$MYSQLUSER -p$MYSQLPASS -e "GRANT ALL PRIVILEGES ON zodb.* TO 'zenoss'@'%';"
  120. mysql -u$MYSQLUSER -p$MYSQLPASS -e "GRANT ALL PRIVILEGES ON zenoss_zep.* TO 'zenoss'@'%';"
  121. mysql -u$MYSQLUSER -p$MYSQLPASS -e "GRANT ALL PRIVILEGES ON zodb_session.* TO 'zenoss'@'%';"
  122. mysql -u$MYSQLUSER -p$MYSQLPASS -e "GRANT SELECT ON mysql.proc TO 'zenoss'@'%';"
  123. rm $ZENOSSHOME/*.sql && echo
  124. fi
  125. if [ $mysqlcred = "no" ]; then
  126. mysql -u$MYSQLUSER -e "create database zenoss_zep"
  127. mysql -u$MYSQLUSER -e "create database zodb"
  128. mysql -u$MYSQLUSER -e "create database zodb_session"
  129. echo && echo "...The 1305 MySQL import error below is safe to ignore"
  130. mysql -u$MYSQLUSER zenoss_zep < $ZENOSSHOME/zenoss_zep.sql
  131. mysql -u$MYSQLUSER zodb < $ZENOSSHOME/zodb.sql
  132. mysql -u$MYSQLUSER zodb_session < $ZENOSSHOME/zodb_session.sql
  133. mysql -u$MYSQLUSER -e "CREATE USER 'zenoss'@'localhost' IDENTIFIED BY 'zenoss';"
  134. mysql -u$MYSQLUSER -e "GRANT REPLICATION SLAVE ON *.* TO 'zenoss'@'localhost' IDENTIFIED BY PASSWORD '*3715D7F2B0C1D26D72357829DF94B81731174B8C';"
  135. mysql -u$MYSQLUSER -e "GRANT ALL PRIVILEGES ON zodb.* TO 'zenoss'@'localhost';"
  136. mysql -u$MYSQLUSER -e "GRANT ALL PRIVILEGES ON zenoss_zep.* TO 'zenoss'@'localhost';"
  137. mysql -u$MYSQLUSER -e "GRANT ALL PRIVILEGES ON zodb_session.* TO 'zenoss'@'localhost';"
  138. mysql -u$MYSQLUSER -e "GRANT SELECT ON mysql.proc TO 'zenoss'@'localhost';"
  139. mysql -u$MYSQLUSER -e "CREATE USER 'zenoss'@'%' IDENTIFIED BY 'zenoss';"
  140. mysql -u$MYSQLUSER -e "GRANT REPLICATION SLAVE ON *.* TO 'zenoss'@'%' IDENTIFIED BY PASSWORD '*3715D7F2B0C1D26D72357829DF94B81731174B8C';"
  141. mysql -u$MYSQLUSER -e "GRANT ALL PRIVILEGES ON zodb.* TO 'zenoss'@'%';"
  142. mysql -u$MYSQLUSER -e "GRANT ALL PRIVILEGES ON zenoss_zep.* TO 'zenoss'@'%';"
  143. mysql -u$MYSQLUSER -e "GRANT ALL PRIVILEGES ON zodb_session.* TO 'zenoss'@'%';"
  144. mysql -u$MYSQLUSER -e "GRANT SELECT ON mysql.proc TO 'zenoss'@'%';"
  145. rm $ZENOSSHOME/*.sql && echo
  146. fi
  147. fi
  148.  
  149. # Rabbit install and config
  150. wget -N http://www.rabbitmq.com/releases/rabbitmq-server/v3.3.0/rabbitmq-server_3.3.0-1_all.deb -P $DOWNDIR/
  151. dpkg -i $DOWNDIR/rabbitmq-server_3.3.0-1_all.deb
  152. chown -R zenoss:zenoss $ZENHOME && echo
  153. rabbitmqctl add_user zenoss zenoss
  154. rabbitmqctl add_vhost /zenoss
  155. rabbitmqctl set_permissions -p /zenoss zenoss '.*' '.*' '.*' && echo
  156.  
  157. # Post Install Tweaks
  158. os-fixes
  159. echo && ln -s /usr/local/zenoss /opt
  160. apt-get install libssl1.0.0 libssl-dev -y
  161. ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 /usr/lib/libssl.so.10
  162. ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /usr/lib/libcrypto.so.10
  163. ln -s /usr/local/zenoss/zenup /opt
  164. chmod +x /usr/local/zenoss/zenup/bin/zenup
  165. echo 'watchdog True' >> $ZENHOME/etc/zenwinperf.conf
  166. touch $ZENHOME/var/Data.fs && echo
  167. wget --no-check-certificate -N https://raw2.github.com/hydruid/zenoss/master/core-autodeploy/$ZVERb/misc/zenoss -P $DOWNDIR/
  168. cp $DOWNDIR/zenoss /etc/init.d/zenoss
  169. chmod 755 /etc/init.d/zenoss
  170. update-rc.d zenoss defaults && sleep 2
  171. echo && touch /etc/insserv/overrides/zenoss
  172. cat > /etc/insserv/overrides/zenoss << EOL
  173. ### BEGIN INIT INFO
  174. # Provides: zenoss-stack
  175. # Required-Start: $local_fs $network $remote_fs
  176. # Required-Stop: $local_fs $network $remote_fs
  177. # Should-Start: $all
  178. # Should-Stop: $all
  179. # Default-Start: 2 3 4 5
  180. # Default-Stop: 0 1 6
  181. # Short-Description: Start/stop Zenoss-stack
  182. # Description: Start/stop Zenoss-stack
  183. ### END INIT INFO
  184. EOL
  185. echo && chown -c root:zenoss /usr/local/zenoss/bin/pyraw
  186. chown -c root:zenoss /usr/local/zenoss/bin/zensocket
  187. chown -c root:zenoss /usr/local/zenoss/bin/nmap
  188. chmod -c 04750 /usr/local/zenoss/bin/pyraw
  189. chmod -c 04750 /usr/local/zenoss/bin/zensocket
  190. chmod -c 04750 /usr/local/zenoss/bin/nmap && echo
  191. wget --no-check-certificate -N https://raw.github.com/hydruid/zenoss/master/core-autodeploy/$ZVERb/misc/secure_zenoss_ubuntu.sh -P $ZENHOME/bin
  192. chown -c zenoss:zenoss $ZENHOME/bin/secure_zenoss_ubuntu.sh && chmod -c 0700 $ZENHOME/bin/secure_zenoss_ubuntu.sh
  193. su -l -c "$ZENHOME/bin/secure_zenoss_ubuntu.sh" zenoss
  194. if [ $UPGRADE = "yes" ]; then
  195. su -l -c "zeneventserver stop && cd $ZENHOME/var/zeneventserver/index && rm -rf summary && rm -rf archive && zeneventserver start" zenoss
  196. fi
  197. echo '#max_allowed_packet=16M' >> /etc/mysql/my.cnf
  198. echo 'innodb_buffer_pool_size=256M' >> /etc/mysql/my.cnf
  199. echo 'innodb_additional_mem_pool_size=20M' >> /etc/mysql/my.cnf
  200. sed -i 's/mibs/#mibs/g' /etc/snmp/snmp.conf
  201. wget --no-check-certificate -N https://raw.githubusercontent.com/hydruid/zenoss/master/core-autodeploy/$ZVERb/misc/backup.sh -P $ZENOSSHOME
  202.  
  203. # Check log for errors
  204. check-log
  205.  
  206. # End of Script Message
  207. FINDIP=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'`
  208. echo && echo "The Zenoss $ZVERb core-autodeploy script for Ubuntu is complete!!!"
  209. echo "A backup script (backup.sh) has been placed in the zenoss user home directory." && echo
  210. echo "Browse to $FINDIP:8080 to access your new Zenoss install."
  211. echo "The default login is:"
  212. echo " username: admin"
  213. echo " password: zenoss"
  214.  
  215. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement