Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from __future__ import with_statement
- from fabric.api import *
- PROJECT_NUM = '0000'
- PROJECT_NAME = 'hyperinteraktiv'
- VIRTUALENV_NAME = '%s-%s' % (PROJECT_NUM, PROJECT_NAME)
- # Enviroments
- def test():
- """Configure credentials to test server."""
- env.hosts = ['tuxedo.hyperinteraktiv.no']
- env.user = 'django'
- env.password = 'jkui99'
- env.virtualenv_path = '~/djangoprosjekter/'
- env.project_path = '~/djangoprosjekter/%s/%s/' % (VIRTUALENV_NAME, PROJECT_NAME)
- def production():
- """Configure credentials to production server."""
- env.hosts = ['monty.hyperinteraktiv.no']
- env.user = 'skeidarju2'
- env.password = '3nrjn9Yzbm'
- env.project_path = ''
- # Functionality
- def deploy():
- with cd(env.project_path):
- local('git push origin master')
- run('git pull origin master')
- run('touch ../apache/django.wsgi')
- def reload():
- sudo('/etc/init.d/httpd reload', shell=False, pty=True)
- def init_git():
- # setup git
- with cd('~/git/'):
- # Create remote git repo
- run('mkdir %s.git' % VIRTUALENV_NAME)
- run('git init --bare %s.git' % VIRTUALENV_NAME)
- # Create local git repo
- local('git init')
- local('git remote add origin django@tuxedo.hyperinteraktiv.no:git/%s.git' % VIRTUALENV_NAME)
- local('git add .')
- local('git commit -am "Initial commit"')
- local('git push origin master')
- def setup():
- if env.host == 'tuxedo.hyperinteraktiv.no':
- _setup_tuxedo()
- elif env.host == 'monty.hyperinteraktiv.no':
- _setup_monty()
- def delete():
- with cd(env.virtualenv_path):
- # delete project dir
- run('rm -rf %s' % VIRTUALENV_NAME)
- # delete git repo
- run('rm -rf ../git/%s.git' % VIRTUALENV_NAME)
- # remove vhost
- #run('sed -i "s/%s//g" /etc/httpd/conf.d/djangovirtualhosts.conf' % _get_vhost_config())
- # Internal functions
- def _setup_tuxedo():
- with cd(env.virtualenv_path):
- run('virtualenv --no-site-packages %s' % VIRTUALENV_NAME)
- # add git ignore
- # git clone
- run('git clone ~/git/%s.git %s/%s' % (VIRTUALENV_NAME, VIRTUALENV_NAME, PROJECT_NAME))
- # add local_settings.py
- run('export PIP_REQUIRE_VIRTUALENV=false')
- run('export PIP_RESPECT_VIRTUALENV=false')
- run('source %s/bin/activate' % VIRTUALENV_NAME)
- run('pip install -E %s -r %srequirements.txt' % (VIRTUALENV_NAME, env.project_path))
- # setup apache and mod_wsgi
- # create apache dir
- run('mkdir %s/apache' % VIRTUALENV_NAME)
- # add django.wsgi
- wsgi = _get_wsgi_config()
- run('echo "%s" >> %s/apache/django.wsgi' % (wsgi, VIRTUALENV_NAME))
- # add vhost for this site
- vhost = _get_vhost_config()
- run('echo "%s" >> /etc/httpd/conf.d/djangovirtualhosts.conf' % vhost)
- def _setup_monty():
- pass
- def _get_wsgi_config():
- return """
- import os,sys, site
- site.addsitedir('/home/django/djangoprosjekter/%(vhost_name)s/lib/python2.6/site-packages/')
- sys.path.remove('/opt2/python2.6/lib/python2.6/site-packages')
- sys.path.append('/home/django/djangoprosjekter/%(vhost_name)s')
- sys.path.append('/home/django/djangoprosjekter/%(vhost_name)s/%(project_name)s')
- sys.path.append('/home/django/djangoprosjekter/%(vhost_name)s/%(project_name)s/apps')
- os.environ['DJANGO_SETTINGS_MODULE'] = '%(project_name)s.settings'
- import django.core.handlers.wsgi
- application = django.core.handlers.wsgi.WSGIHandler()
- """ % {"vhost_name": VIRTUALENV_NAME, "project_name": PROJECT_NAME}
- def _get_vhost_config():
- return """
- # %(vhost_name)s
- <VirtualHost *:80>
- ServerName %(project_name)s.tuxedo.hyperinteraktiv.no
- WSGIDaemonProcess %(project_num)s user=django group=django threads=25
- WSGIProcessGroup %(project_num)s
- Alias /media/ /home/django/djangoprosjekter/%(vhost_name)s/%(project_name)s/media/
- <Directory /home/django/djangoprosjekter/%(vhost_name)s/%(project_name)s/media>
- Order deny,allow
- Allow from all
- </Directory>
- WSGIScriptAlias / /home/django/djangoprosjekter/%(vhost_name)s/apache/django.wsgi
- <Directory /home/django/djangoprosjekter/%(vhost_name)s/apache>
- Order deny,allow
- Allow from all
- </Directory>
- </VirtualHost>
- """ % {"project_num": PROJECT_NUM,"vhost_name": VIRTUALENV_NAME, "project_name": PROJECT_NAME}
Add Comment
Please, Sign In to add comment