X-Git-Url: http://git.onelab.eu/?p=myops.git;a=blobdiff_plain;f=web%2Fsetup.sh;fp=web%2Fsetup.sh;h=6dadeb41ea1331e4efc46419013e925de2b638e2;hp=0000000000000000000000000000000000000000;hb=85070b3d456667f238051af1a2f1f2a0c12300ab;hpb=607f0e13927eb18075c375fa9ba5527da4fcbb44 diff --git a/web/setup.sh b/web/setup.sh new file mode 100644 index 0000000..6dadeb4 --- /dev/null +++ b/web/setup.sh @@ -0,0 +1,149 @@ +#/bin/bash + +if ! rpm -q bzr &> /dev/null ; then + echo "bzr is not installed" + exit +fi + +if [ ! -d graphite ] ; then + # just picked latest revno on 6/27/2011 for a static config + echo "bzr branch -r revno:409 lp:graphite" + bzr branch -r revno:409 lp:graphite + cd graphite/ + ./check-dependencies.py +fi + +if [ ! -d deps ] ; then + mkdir deps + pushd deps/ + + wget http://launchpad.net/graphite/1.0/0.9.8/+download/graphite-web-0.9.8.tar.gz + wget http://launchpad.net/graphite/1.0/0.9.8/+download/carbon-0.9.8.tar.gz + wget http://launchpad.net/graphite/1.0/0.9.8/+download/whisper-0.9.8.tar.gz + wget http://launchpad.net/txamqp/trunk/0.3/+download/python-txamqp_0.3.orig.tar.gz + + tar -xvf python-txamqp_0.3.orig.tar.gz + tar -zxvf whisper-0.9.8.tar.gz + tar -zxvf carbon-0.9.8.tar.gz + tar -zxvf graphite-web-0.9.8.tar.gz + + pushd python-txamqp-0.3/ + python setup.py install + popd + + pushd whisper-0.9.8 + python setup.py install + popd + + pushd carbon-0.9.8 + python setup.py install + popd + + pushd graphite-web-0.9.8 + python setup.py install + cp examples/example-graphite-vhost.conf /etc/httpd/conf.d/graphite-vhost.conf + + sed -i -e 's|WSGIScriptAlias / /opt/graphite/conf/graphite.wsgi|WSGIScriptAlias /graphite /opt/graphite/conf/graphite.wsgi|g' /etc/httpd/conf.d/graphite-vhost.conf + echo "WSGISocketPrefix /var/run/" >> /etc/httpd/conf.d/graphite-vhost.conf + echo "RedirectMatch ^/graphite$ /graphite/" >> /etc/httpd/conf.d/graphite-vhost.conf + + # move /opt/graphite/webapp refs to /var/www/html + ln -s /opt/graphite/webapp/content/ /var/www/html/ + ln -s /opt/graphite/webapp/graphite/ /var/www/html/ + ln -s /opt/graphite/webapp/graphite_web-0.9.8-py2.6.egg-info /var/www/html/ + sed -i -e 's|DocumentRoot ".*|DocumentRoot "/var/www/html"|g' /etc/httpd/conf.d/graphite-vhost.conf + sed -i -e 's|Alias /content/ .*|Alias /content/ /var/www/html/content/|g' /etc/httpd/conf.d/graphite-vhost.conf + cp /opt/graphite/conf/graphite.wsgi.example /opt/graphite/conf/graphite.wsgi + cp /opt/graphite/conf/carbon.conf.example /opt/graphite/conf/carbon.conf + cp /usr/share/myops/web/view/storage-schemas.conf /opt/graphite/conf/ + + popd + + popd # deps + ./check-dependencies.py + +fi + + +# NOTE: TEMP hack for testing... +sed -i -e 's/2003/3003/g' -e 's/2004/3004/g' -e 's/7002/6002/g' /opt/graphite/conf/carbon.conf +sed -i -e 's/2003/3003/g' /usr/bin/sar2graphite.py +sed -i -e 's/2003/3003/g' /usr/share/myops/web/collect/server/*.py + + +# setup db for graphite application +cd /opt/graphite/webapp/graphite +/usr/bin/yes "no" | python manage.py syncdb + +# start carbon cache +cd /opt/graphite/bin +chown -R apache.apache /opt/graphite/storage/ +./carbon-cache.py start + +# restart on reboot +if ! grep carbon-cache /etc/rc.local ; then + + cat <> /etc/rc.local +cd /opt/graphite/bin +./carbon-cache.py start +EOF + +fi + + +export HOST=`hostname` +sed -i -e 's/HOSTNAME/'$HOST'/g' /var/www/html/PlanetLabConf/sysstat.cron +sed -i -e 's/HOSTNAME/'$HOST'/g' /etc/cron.d/sysstat.cron +sed -i -e 's/HOSTNAME/'$HOST'/g' /usr/share/myops/web/collect/server/load-graphite.py +sed -i -e 's/HOSTNAME/'$HOST'/g' /var/www/html/view/urllist.txt +sed -i -e 's/HOSTNAME/'$HOST'/g' /etc/cron.hourly/load_all_couchdb.sh + +# QUERY/COUCHAPP + +wget http://python-distribute.org/distribute_setup.py +python distribute_setup.py +easy_install pip + +#OMFG, couchapp install requires gcc... +yum groupinstall -y Development\ Tools +# for ONE .c file! + +pip install couchapp + +export IP=`ip addr show eth0 | grep -E "eth0$" | tr '/' ' ' | awk '{print $2}'` +sed -i -e 's/;bind_address = 127.0.0.1/bind_address = '$IP'/g' /etc/couchdb/local.ini +export PASSWORD=makethisrandom1 +sed -i -e 's/;admin = .*/admin = '$PASSWORD'/g' /etc/couchdb/local.ini + +service couchdb restart +chkconfig couchdb on + +sleep 10 +pushd /usr/share/myops/web/query +echo "couchapp push . http://admin:$PASSWORD@$HOST:5984/myops" +couchapp push . http://admin:$PASSWORD@$HOST:5984/myops + +# COLLECT; probably need a better way to set IPADDR... +sed -i -e 's/IPADDR/'$IP'/g' /usr/share/myops/web/collect/client/collect.sh +sed -i -e 's/IPADDR/'$IP'/g' /usr/share/myops/web/collect/client/upload.sh + +if [ ! -f /etc/httpd/conf.d/php.conf ] ; then + # enable php scripts + cp /usr/share/myops/web/collect/server/php.conf /etc/httpd/conf.d/php.conf +fi + +mkdir -p /var/www/html/uploadlogs/raw +chown -R apache.apache /var/www/html/uploadlogs + +sed -i -e 's/IPADDR/'$IP'/g' /usr/share/myops/web/collect/server/load_couch.py + + +chkconfig crond on +service crond start + +chkconfig httpd on +service httpd start + +# NOTE: there are other logging servers... :-/ +chkconfig sysklogd on +service sysklogd start