适用于fabric的类似Capistrano的部署配置
项目描述
# fabric_deploy
## 简介
为Fabric提供的类似Capistrano的部署配置。
## 要求
* Fabric
## 使用方法
这个配置仅是基本部署过程的模板。
您可能需要在自己的fabfile.py中覆盖自己的任务。
为"开发"阶段初始化目录结构。
% fab development deploy.setup
将应用程序部署到"开发"阶段。
% fab development deploy
回滚到之前部署的应用程序。
% fab development deploy.rollback
清理旧应用程序。
% fab development deploy.cleanup
## 权限配置
此配置假定您可以使用名为"deploy"的用户和"app"默认SSH。
* deploy (用户)
** 用于应用程序部署。
** 属于与应用程序相同的组。
** sudo(8) 应授予无需密码。
* app (运行者)
** 用于运行应用程序。
** 属于与deploy相同的组。
** 无需sudo(8)。
您可以通过覆盖"用户"和"运行者"选项来更改这些名称。
## 示例
以下是多阶段部署("开发"和"生产")的示例任务。
使用"supervisord"进行服务管理。此示例由2个文件组成。
* ./fabfile/\__init\__.py - 部署的基本配置
* ./fabfile/deploy.py - 覆盖您部署的任务
./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'))
结果 = 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'), 用户=fetch('runner'))
## 作者
山田,祐 <yamashita@geishatokyo.com>
## 简介
为Fabric提供的类似Capistrano的部署配置。
## 要求
* Fabric
## 使用方法
这个配置仅是基本部署过程的模板。
您可能需要在自己的fabfile.py中覆盖自己的任务。
为"开发"阶段初始化目录结构。
% fab development deploy.setup
将应用程序部署到"开发"阶段。
% fab development deploy
回滚到之前部署的应用程序。
% fab development deploy.rollback
清理旧应用程序。
% fab development deploy.cleanup
## 权限配置
此配置假定您可以使用名为"deploy"的用户和"app"默认SSH。
* deploy (用户)
** 用于应用程序部署。
** 属于与应用程序相同的组。
** sudo(8) 应授予无需密码。
* app (运行者)
** 用于运行应用程序。
** 属于与deploy相同的组。
** 无需sudo(8)。
您可以通过覆盖"用户"和"运行者"选项来更改这些名称。
## 示例
以下是多阶段部署("开发"和"生产")的示例任务。
使用"supervisord"进行服务管理。此示例由2个文件组成。
* ./fabfile/\__init\__.py - 部署的基本配置
* ./fabfile/deploy.py - 覆盖您部署的任务
./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'))
结果 = 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'), 用户=fetch('runner'))
## 作者
山田,祐 <yamashita@geishatokyo.com>
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
fabric_deploy-0.4.6.tar.gz (5.9 kB 查看哈希值)
构建分布
fabric_deploy-0.4.6-py2.7.egg (15.5 kB 查看哈希值)
关闭
fabric_deploy-0.4.6.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 72449481d3f57b393ff4761d621aa5b969a9d62b5307799b56adf103416c36e0 |
|
MD5 | 173f9f66bd2f57e34f5f303be3cc60d2 |
|
BLAKE2b-256 | 7a35b5e6461224a3f96ee434870c27712c181d779b88cb6e8dfd76cb496a7cee |
关闭
fabric_deploy-0.4.6-py2.7.egg的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 75f2880c663e80e18a2fd0ec62937c2e124ba199ccd29cb9fe1db1ea69fa528d |
|
MD5 | 621f85ba8a539f46b5c188f4ecd30823 |
|
BLAKE2b-256 | 9d337b17ca599a242a479dcbd1e75ac472ce721545ec7a57228e73df0ff402b6 |