Advertisement
Guest User

Untitled

a guest
Dec 4th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.90 KB | None | 0 0
  1. from fabric.api import sudo, run, cd
  2. from fabtools import require, supervisor
  3.  
  4.  
  5. def setup():
  6.     sudo('apt-get update')
  7.     sudo('apt-get install -y git')
  8.     sudo('apt-get install -y postgresql postgresql-contrib libpq-dev')
  9.     sudo('apt-get install -y nginx')
  10.     sudo('apt-get install -y nodejs')
  11.     sudo('ln -s /usr/bin/nodejs /usr/bin/node')
  12.     sudo('apt-get install -y npm')
  13.     sudo('npm install -g bower')
  14.     sudo('apt-get install -y python-pip')
  15.     sudo('apt-get install -y python-dev')
  16.     sudo('pip install virtualenv')
  17.     sudo('pip install virtualenvwrapper')
  18.     sudo('pip install supervisor')
  19.  
  20.     postgres_user = 'office_application'
  21.     postgres_database = 'office_database'
  22.     postgres_password = '123'
  23.     sudo('psql -c "CREATE USER {} WITH PASSWORD \'{}\'"'
  24.          .format(postgres_user, postgres_password), user='postgres')
  25.     sudo('psql -c "CREATE DATABASE {} WITH OWNER {}"'
  26.          .format(postgres_database, postgres_user), user='postgres')
  27.  
  28.     sudo('mkvirtualenv office')
  29.  
  30.     sudo('chown -R hamik:developers /srv')
  31.     sudo('chmod -R 775 /srv')
  32.  
  33.     with cd('/srv/office/server'):
  34.         sudo('workon office && pip install -r requirements.txt')
  35.  
  36.     with cd('/srv/office/client'):
  37.         run('bower install')
  38.     require.supervisor.process(
  39.         name='office',
  40.         command='/home/hamik/.virtualenvs/office/bin/python \
  41.            /home/hamik/.virtualenvs/office/bin/gunicorn \
  42.            -b 0.0.0.0:5000 core:app',
  43.         directory='/srv/office/server',
  44.         stdout_logfile='/srv/office_supervisor.log',
  45.         user='hamik')
  46.     supervisor.restart_process('office')
  47.  
  48.     require.nginx.site(
  49.         server_name='office',
  50.         template_source='/srv/office/fabfile/nginx.template',
  51.         port=5000,
  52.         service_folder='office')
  53.     require.nginx.disable('default')
  54.     require.nginx.enable('office')
  55.     sudo('service nginx restart')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement