Skip to main content
# fabric_deploy

## Overview

Capistrano like deploy recipe for Fabric.


## Requirements

* Fabric


## Usage

This recipe is just a template for basic deploy procedures.
You may need to override your own tasks in your fabfile.py.

Initialize directory structure for "development" stage.

% fab development deploy.setup

Deploy application to "development" stage.

% fab development deploy

Rollback to previously deployed application.

% fab development deploy.rollback

Clean up old applications.

% fab development deploy.cleanup


## Privilege configurations

This recipe assumes that you can ssh by user named "deploy" and "app" by default.

* deploy (user)
** Used for application deployment.
** Belongs same group as app.
** sudo(8) should be granted without password.
* app (runner)
** Used for running applications
** Belongs same group as deploy.
** No sudo(8) required.

You can change these names by overriding "user" and "runner" options.


## Examples

Following is a sample tasks for multistage deployment ("development" and "production").
Uses "supervisord" for service management. This exapmle consists from 2 files.

* ./fabfile/\__init\__.py - Basic configuration for deployment
* ./fabfile/deploy.py - Overridden tasks for your deployment

./fabfile/\__init\__.py

from fabric.api import *
from fabric_deploy import options
import deploy

options.set('scm', 'git')
options.set('application', 'myapp')
options.set('repository', 'git@githum.com:yyuu/myapp.git')
options.set('supervisord_pid',
(lambda: '%(dir)s/tmp/pids/supervisord.pid' % dict(dir=options.fetch('current_path'))))
options.set('supervisord_conf',
(lambda: '%(dir)s/supervisord.conf' % dict(dir=options.fetch('current_path'))))

@task
def development():
options.set('current_stage', 'development')
env.roledefs.update({'app': [ 'alpha' ] })

@task
def production():
options.set('current_stage', 'production')
env.roledefs.update({ 'app': [ 'zulu' ] })


./fabfile/deploy.py

from fabric_deploy.deploy import *

@task
@roles('app')
def restart():
with cd(fetch('current_path')):
result = sudo("""
(test -f %(supervisord_pid)s && kill -HUP `cat %(supervisord_pid)s`) || %(virtualenv)s/bin/supervisord -c %(supervisord_conf)s
""" % var('virtualenv', 'supervisord_pid', 'supervisord_conf'), user=fetch('runner'))


## Author

Yamashita, Yuu <yamashita@geishatokyo.com>

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fabric_deploy-0.4.6.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fabric_deploy-0.4.6-py2.7.egg (15.5 kB view details)

Uploaded Egg

File details

Details for the file fabric_deploy-0.4.6.tar.gz.

File metadata

  • Download URL: fabric_deploy-0.4.6.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for fabric_deploy-0.4.6.tar.gz
Algorithm Hash digest
SHA256 72449481d3f57b393ff4761d621aa5b969a9d62b5307799b56adf103416c36e0
MD5 173f9f66bd2f57e34f5f303be3cc60d2
BLAKE2b-256 7a35b5e6461224a3f96ee434870c27712c181d779b88cb6e8dfd76cb496a7cee

See more details on using hashes here.

File details

Details for the file fabric_deploy-0.4.6-py2.7.egg.

File metadata

File hashes

Hashes for fabric_deploy-0.4.6-py2.7.egg
Algorithm Hash digest
SHA256 75f2880c663e80e18a2fd0ec62937c2e124ba199ccd29cb9fe1db1ea69fa528d
MD5 621f85ba8a539f46b5c188f4ecd30823
BLAKE2b-256 9d337b17ca599a242a479dcbd1e75ac472ce721545ec7a57228e73df0ff402b6

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.6 This release

2 files

0.4.5

2 files

0.4.4

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

3 files

0.4.0

3 files

0.3.0

3 files

0.2.1

2 files

0.2.0

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page