Skip to content

Instantly share code, notes, and snippets.

@qpfiffer
Created September 21, 2012 19:51
Show Gist options
  • Save qpfiffer/3763521 to your computer and use it in GitHub Desktop.
Save qpfiffer/3763521 to your computer and use it in GitHub Desktop.
fabfile mine
from __future__ import with_statement
from fabric.api import local, settings, abort, sudo, cd, env
from fabric.context_managers import prefix
from fabric.contrib.console import confirm
code_dir = '/srv/garbagehost/garbagehost'
virtualenv_name = 'garbagehost'
env.sudo_prefix = "sudo -i -S -p '%(sudo_prompt)s' " % env
def pre_requirements():
sudo("apt-get install libvirt-bin python-libvirt python-dev postgresql-client-9.1 postgresql-server-dev-9.1 postgresql-common python-pip")
sudo("pip install virtualenvwrapper")
def setup_virtualenv():
sudo("mkvirtualenv --system-site-packages %s" % virtualenv_name, user="garbagehost")
def install_requirements():
sudo("pip install -Ur requirements.txt",user="garbagehost")
def run_migrations():
sudo("./manage.py syncdb --noinput",user="garbagehost")
sudo("./manage.py migrate",user="garbagehost")
def start_server():
sudo("./manage.py runserver 0.0.0.0:8000",user="garbagehost")
def full_deploy():
pre_requirements()
with settings(warn_only=True):
# Make sure we have a code dir
if sudo("test -d %s" % code_dir,user="garbagehost").failed:
sudo("git clone garbagehost@tired:/var/backups/code/garbagehost/ %s" % code_dir, user="garbagehost")
# Make sure we have the virtual environment
if sudo("test -d ~/.envs/%s" % virtualenv_name,user="garbagehost").failed:
setup_virtualenv()
with prefix("workon %s" % virtualenv_name):
install_requirements()
deploy()
def deploy():
with cd(code_dir):
sudo("git pull",user="garbagehost")
with prefix("workon %s" % virtualenv_name):
run_migrations()
# start_server()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment