Created
August 27, 2015 19:21
-
-
Save srgrn/db199e863f5e2ccd0c45 to your computer and use it in GitHub Desktop.
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
| # set enviroment | |
| sudo chown `id -u` /etc/environment | |
| cat <<EOT > /etc/environment | |
| PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games" | |
| LANG=en_US.UTF-8 | |
| LANGUAGE=en_US.UTF-8 | |
| LANG=en_US.UTF-8 | |
| LC_ALL=en_US.UTF-8 | |
| EOT | |
| sudo apt-get update | |
| sudo apt-get upgrade -y | |
| # install python | |
| sudo apt-get install -y git python-cairo gcc-multilib g++-multilib libffi-dev libffi6 libffi6-dbg python-crypto python-mox3 python-pil python-ply libssl-dev zlib1g-dev libbz2-dev libexpat1-dev libbluetooth-dev libgdbm-dev dpkg-dev quilt autotools-dev libreadline-dev libtinfo-dev libncursesw5-dev tk-dev blt-dev libssl-dev zlib1g-dev libbz2-dev libexpat1-dev libbluetooth-dev libsqlite3-dev libgpm2 mime-support netbase net-tools bzip2 | |
| wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz | |
| tar xfz Python-2.7.10.tgz | |
| cd Python-2.7.10/ | |
| ./configure | |
| make | |
| sudo make install | |
| wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py | |
| sudo python get-pip.py | |
| # install graphite | |
| cd /usr/local/src | |
| sudo git clone https://github.com/graphite-project/graphite-web.git | |
| sudo git clone https://github.com/graphite-project/carbon.git | |
| sudo pip install -r /usr/local/src/graphite-web/requirements.txt | |
| cd /usr/local/src/carbon/ | |
| sudo python setup.py install | |
| cd /usr/local/src/graphite-web/ | |
| sudo python setup.py install | |
| # install nginx and uwsgi | |
| sudo apt-get install nginx | |
| sudo pip install uwsgi | |
| sudo touch /etc/init/uwsgi.conf | |
| sudo chown `id -u` /etc/init/uwsgi.conf | |
| cat <<EOT > /etc/init/uwsgi.conf | |
| # Emperor uWSGI script | |
| description "uWSGI Emperor" | |
| start on runlevel [2345] | |
| stop on runlevel [06] | |
| pre-start script | |
| mkdir -p /var/log/uwsgi | |
| end script | |
| respawn | |
| exec uwsgi --master --die-on-term --emperor /etc/uwsgi/apps-enabled --logto /var/log/uwsgi/emperor.log | |
| EOT | |
| sudo chown root /etc/init/uwsgi.conf | |
| sudo mkdir -p /etc/uwsgi/apps-enabled | |
| sudo mkdir -p /etc/uwsgi/apps-available | |
| sudo touch /etc/uwsgi/apps-available/graphite.ini | |
| sudo chown `id -u` /etc/uwsgi/apps-available/graphite.ini | |
| cat <<EOT > /etc/uwsgi/apps-available/graphite.ini | |
| [uwsgi] | |
| processes = 2 | |
| chmod-socket = 664 | |
| socket = /opt/graphite/uwsgi.sock | |
| http = 0.0.0.0:8080 | |
| http-to = /opt/graphite/uwsgi.sock | |
| gid = www-data | |
| uid = www-data | |
| chdir = /opt/graphite/webapp | |
| mount = /graphite=graphite/wsgi.py | |
| EOT | |
| sudo ln -s /etc/uwsgi/apps-available/graphite.ini /etc/uwsgi/apps-enables/graphite.ini | |
| sudo chown root /etc/uwsgi/apps-available/graphite.ini | |
| sudo touch /etc/nginx/apps-available/graphite | |
| sudo chown `id -u` /etc/nginx/apps-available/graphite | |
| cat <<EOT > /etc/nginx/apps-available/graphite | |
| upstream graphite { | |
| server unix:///opt/graphite/uwsgi.sock; | |
| } | |
| server { | |
| server_name rumble-monitor.eastus.cloudapp.azure.com; | |
| access_log /var/log/nginx/graphite-access.log; | |
| error_log /var/log/nginx/graphite-error.log; | |
| charset utf-8; | |
| location /static { | |
| alias /opt/graphite/static; | |
| } | |
| location /graphite { | |
| uwsgi_pass graphite; | |
| include uwsgi_params; | |
| } | |
| } | |
| EOT | |
| sudo chown root /etc/nginx/apps-available/graphite | |
| sudo ln -s /etc/nginx/apps-available/graphite /etc/nginx/apps-enabled/graphite | |
| sudo touch /etc/uwsgi | |
| sudo chown `id -u` /etc/init/carbon-cache.conf | |
| sudo service nginx restart | |
| sudo service uwsgi start | |
| # setting graphite and carbon | |
| sudo cp /opt/graphite/conf/storage-schemas.conf.example /opt/graphite/conf/storage-schemas.conf | |
| sudo cp /opt/graphite/conf/storage-aggregation.conf.example /opt/graphite/conf/storage-aggregation.conf | |
| sudo cp /opt/graphite/conf/carbon.conf.example /opt/graphite/conf/carbon.conf | |
| sudo touch /etc/init/carbon-cache.conf | |
| sudo chown `id -u` /etc/init/carbon-cache.conf | |
| cat <<EOT > /etc/init/carbon-cache.conf | |
| # carbon-cache-a upstart job | |
| # | |
| # Daniel Beckham | |
| # @dbeckham | |
| # https://github.com/dbeckham | |
| description "Graphite carbon-cache-a instance." | |
| author "Puppet" | |
| start on runlevel [2345] | |
| stop on runlevel [016] | |
| # GRAPHITE_ROOT is required by the Twisted plugin | |
| emv GRAPHITE_ROOT=/opt/graphite | |
| env PYTHONPATH=/opt/graphite/lib | |
| pre-start script | |
| mkdir -p \$GRAPHITE_ROOT/storage/log/carbon-cache/carbon-cache-a | |
| end script | |
| script | |
| exec twistd \ | |
| --nodaemon \ | |
| --reactor=epoll \ | |
| --no_save \ | |
| carbon-cache \ | |
| --config \$GRAPHITE_ROOT/conf/carbon.conf \ | |
| 2>&1 >> \$GRAPHITE_ROOT/storage/log/carbon-cache/carbon-cache-a/console.log | |
| end script | |
| EOT | |
| sudo chown root /etc/init/carbon-cache.conf | |
| # setting up graphite web | |
| sudo chown `id -u` /opt/graphite/webapp/graphite | |
| SECRET=`strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 100 | tr -d '\n'; echo` | |
| cat <<EOT > /opt/graphite/webapp/graphite/local_settings.py | |
| URL_PREFIX = '/graphite' | |
| SECRET_KEY = '${SECRET}' | |
| EOT | |
| sudo chown -R www-data:www-data /opt/graphite/ | |
| cd /opt/graphite/webapp | |
| sudo -u www-data PYTHONPATH=/opt/graphite/webapp django-admin.py collectstatic --noinput --settings=graphite.settings | |
| sudo -u www-data PYTHONPATH=/opt/graphite/webapp django-admin.py syncdb --settings=graphite.settings | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment