Guest User

Untitled

a guest
Aug 21st, 2018
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.38 KB | None | 0 0
  1. from __future__ import with_statement
  2. from fabric.api import *
  3.  
  4. PROJECT_NUM = '0000'
  5. PROJECT_NAME = 'hyperinteraktiv'
  6. VIRTUALENV_NAME = '%s-%s' % (PROJECT_NUM, PROJECT_NAME)
  7.  
  8. # Enviroments
  9. def test():
  10. """Configure credentials to test server."""
  11. env.hosts = ['tuxedo.hyperinteraktiv.no']
  12. env.user = 'django'
  13. env.password = 'jkui99'
  14. env.virtualenv_path = '~/djangoprosjekter/'
  15. env.project_path = '~/djangoprosjekter/%s/%s/' % (VIRTUALENV_NAME, PROJECT_NAME)
  16.  
  17.  
  18. def production():
  19. """Configure credentials to production server."""
  20. env.hosts = ['monty.hyperinteraktiv.no']
  21. env.user = 'skeidarju2'
  22. env.password = '3nrjn9Yzbm'
  23. env.project_path = ''
  24.  
  25.  
  26. # Functionality
  27. def deploy():
  28. with cd(env.project_path):
  29. local('git push origin master')
  30. run('git pull origin master')
  31. run('touch ../apache/django.wsgi')
  32.  
  33. def reload():
  34. sudo('/etc/init.d/httpd reload', shell=False, pty=True)
  35.  
  36. def init_git():
  37. # setup git
  38. with cd('~/git/'):
  39. # Create remote git repo
  40. run('mkdir %s.git' % VIRTUALENV_NAME)
  41. run('git init --bare %s.git' % VIRTUALENV_NAME)
  42. # Create local git repo
  43. local('git init')
  44. local('git remote add origin django@tuxedo.hyperinteraktiv.no:git/%s.git' % VIRTUALENV_NAME)
  45. local('git add .')
  46. local('git commit -am "Initial commit"')
  47. local('git push origin master')
  48.  
  49. def setup():
  50. if env.host == 'tuxedo.hyperinteraktiv.no':
  51. _setup_tuxedo()
  52. elif env.host == 'monty.hyperinteraktiv.no':
  53. _setup_monty()
  54.  
  55. def delete():
  56. with cd(env.virtualenv_path):
  57. # delete project dir
  58. run('rm -rf %s' % VIRTUALENV_NAME)
  59.  
  60. # delete git repo
  61. run('rm -rf ../git/%s.git' % VIRTUALENV_NAME)
  62.  
  63. # remove vhost
  64. #run('sed -i "s/%s//g" /etc/httpd/conf.d/djangovirtualhosts.conf' % _get_vhost_config())
  65.  
  66.  
  67. # Internal functions
  68.  
  69. def _setup_tuxedo():
  70. with cd(env.virtualenv_path):
  71. run('virtualenv --no-site-packages %s' % VIRTUALENV_NAME)
  72.  
  73. # add git ignore
  74. # git clone
  75. run('git clone ~/git/%s.git %s/%s' % (VIRTUALENV_NAME, VIRTUALENV_NAME, PROJECT_NAME))
  76.  
  77. # add local_settings.py
  78.  
  79. run('export PIP_REQUIRE_VIRTUALENV=false')
  80. run('export PIP_RESPECT_VIRTUALENV=false')
  81. run('source %s/bin/activate' % VIRTUALENV_NAME)
  82. run('pip install -E %s -r %srequirements.txt' % (VIRTUALENV_NAME, env.project_path))
  83.  
  84. # setup apache and mod_wsgi
  85. # create apache dir
  86. run('mkdir %s/apache' % VIRTUALENV_NAME)
  87.  
  88. # add django.wsgi
  89. wsgi = _get_wsgi_config()
  90. run('echo "%s" >> %s/apache/django.wsgi' % (wsgi, VIRTUALENV_NAME))
  91.  
  92. # add vhost for this site
  93. vhost = _get_vhost_config()
  94. run('echo "%s" >> /etc/httpd/conf.d/djangovirtualhosts.conf' % vhost)
  95.  
  96. def _setup_monty():
  97. pass
  98.  
  99.  
  100. def _get_wsgi_config():
  101. return """
  102. import os,sys, site
  103.  
  104. site.addsitedir('/home/django/djangoprosjekter/%(vhost_name)s/lib/python2.6/site-packages/')
  105.  
  106. sys.path.remove('/opt2/python2.6/lib/python2.6/site-packages')
  107.  
  108. sys.path.append('/home/django/djangoprosjekter/%(vhost_name)s')
  109. sys.path.append('/home/django/djangoprosjekter/%(vhost_name)s/%(project_name)s')
  110. sys.path.append('/home/django/djangoprosjekter/%(vhost_name)s/%(project_name)s/apps')
  111.  
  112. os.environ['DJANGO_SETTINGS_MODULE'] = '%(project_name)s.settings'
  113.  
  114. import django.core.handlers.wsgi
  115. application = django.core.handlers.wsgi.WSGIHandler()
  116.  
  117. """ % {"vhost_name": VIRTUALENV_NAME, "project_name": PROJECT_NAME}
  118.  
  119.  
  120. def _get_vhost_config():
  121. return """
  122. # %(vhost_name)s
  123. <VirtualHost *:80>
  124. ServerName %(project_name)s.tuxedo.hyperinteraktiv.no
  125. WSGIDaemonProcess %(project_num)s user=django group=django threads=25
  126. WSGIProcessGroup %(project_num)s
  127. Alias /media/ /home/django/djangoprosjekter/%(vhost_name)s/%(project_name)s/media/
  128. <Directory /home/django/djangoprosjekter/%(vhost_name)s/%(project_name)s/media>
  129. Order deny,allow
  130. Allow from all
  131. </Directory>
  132. WSGIScriptAlias / /home/django/djangoprosjekter/%(vhost_name)s/apache/django.wsgi
  133. <Directory /home/django/djangoprosjekter/%(vhost_name)s/apache>
  134. Order deny,allow
  135. Allow from all
  136. </Directory>
  137. </VirtualHost>
  138. """ % {"project_num": PROJECT_NUM,"vhost_name": VIRTUALENV_NAME, "project_name": PROJECT_NAME}
Add Comment
Please, Sign In to add comment