类似capistrano的布料调配配方

fabric_deplo的Python项目详细描述


#布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布宜布是的阶段。

%fab development deploy.setup


将应用程序部署到“开发”阶段。

%fab development deploy

>回滚到以前部署的应用程序。

%fab development deploy.rollback

##特权配置

此配方假定默认情况下,您可以按名为“deploy”和“app”的用户进行ssh。

*deploy(user)
**用于应用程序部署。
**与应用程序属于同一组。
**应授予sudo(8)而不使用密码。
*用于运行应用程序的应用程序(runner)
**属于同一组。部署时。
**不需要sudo(8)。

此exaple由两个文件组成。

*./fabfile/\\uu init\.py-部署的基本配置
*。/fabfile/deploy.py-部署的重写任务

./fabfile/\\uu init\.py

from fabric.api import*
from fabric deploy import options

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


kill-hup`cat%(supervisord pid)s`)%(virtualenv)s/bin/supervisords-c%(supervisord conf)s
“%var('virtualenv','supervisordpid','supervisordconf'),user=fetch('runner')


\author

yamashita,yuu<;yamashita@geishatokyo.com>;

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java以编程方式添加了不出现在片段中的元素   servlet中的java URL模式“/”vs“/*”vs blank   java在ANTLR中递归处理规则   使用deltatime的java LibGdx更新不精确   java仅在安卓应用程序中使用FireBase数据库   java多枚举初始化   基于Java的Spring配置不扫描我的控制器映射   java GWT DataGrid不会显示并引发异常(仅在Google Chrome中)   java访问Springboot数据JPA中的字段[private int]时出错?   java Apple PassKit、Web服务调用了数百次   java TextWatcher addTextChangedListener添加多个侦听器   java Scala库初始化设计   java节省计时器时间并在onResume上恢复   java线程安全Servlet