基于构建的部署使安全和简单

aja的Python项目详细描述


AJA

https://secure.travis-ci.org/pingviini/aja.png

aja提供Fabric任务,用于将buildouts从登台服务器部署到 远程生产服务器:

  • 它假定buildout具有绝对路径(这是buildout默认值)
  • 它假设所有相关路径(python、buildout、shared egons等) 对于登台服务器和生产服务器是相同的
  • 引导和构建始终只在登台服务器上运行
  • 构建是通过推送其bin-、parts-和(本地或共享)来部署的。 使用rsync将eggs目录放入远程生产服务器

安装

aja可以像任何python包一样安装:

$ pip install aja

但请注意,aja具有以下依赖关系

  • 面料
  • 帕拉米科
  • zc.buildout
  • 设置工具
  • ecdsa
  • 密码

因此,建议使用专用的virtualenv。

aja没有自己的可执行文件,但使用fabric的^{tt1}执行$ 命令。当然,可以将其符号化为aja

配置

aja配置有fabfile,例如fabfile.py

importfabric.apifabric.api.env.update({'buildout_directory_prefix':'',# optional'buildout_extends_prefix':'',# optional})fromaja.tasksimport*

buildout_directory_prefix在创建新的 构建或查找其他命令的构建时。

buildout_extends_prefix在创建新的 建造。

使用量

aja将fabric的主机映射到构建中,这样对于每个构建,它都会填充 fabric.api.env包含构建中[aja]部分的变量(这是 非常类似于collective.hostout)。解析的构建文件的其余部分 可在fabric.api.env.buildout找到。

示例[aja]part可能如下所示:

[aja]executable=/usr/local/python/bin/pythonhost_string=buildout@productionkey_filename=/home/buildout/.ssh/id_rsa

这一部分将配置aja任务以使用特定的python virtualenv 运行构建 和 通过使用 给定的密钥文件。

aja用法示例如下:

$ fab create:/var/buildout/plone,/vagrant/plone-4.3.cfg
$ fab -H /var/buildout/plone buildout push

在fabfile中使用以下方便的配置:

importfabric.apifabric.api.env.update({'buildout_directory_prefix':'/var/buildout','buildout_extends_prefix':'/vagrant',})fromaja.tasksimport*

前面的示例用法可能如下所示:

$ fab create:plone,plone-4.3.cfg
$ fab -H plone buildout push

注意

buildout_extends_prefix也可以是类似于 http://myserver/buildouts/

延伸

aja只提供最基本的fabric任务,但它提供了 任务类aja.tasks.AjaTask,它提供解析的构建 在fabric.api.env.buildout处。这使得定义自定义任务变得容易 在您的fab文件中,例如

fromfabricimportapifromfabric.operationsimportrunfromaja.tasksimportAjaTask@task(task_class=AjaTask)defpurge():buildout_bin=api.env.buildout['buildout'].get('bin-directory')buildout_parts=api.env.buildout['buildout'].get('parts-directory')run('rm -rf {0:s}'.format(buildout_bin))run('rm -rf {0:s}'.format(buildout_parts))purge.__doc__= \
    """Clean bin- and parts-directories (e.g. before push)
    """

更改日志

0.9.2(2017-05-10)

  • 添加对bootstrap cmd的支持以读取setuptools和zc.buildout版本 从建筑开始 [数据库]

0.9.1(2016-04-26)

  • 将fabric的aja别名添加为控制台脚本 [数据库]

0.9.0(2015-01-14)

  • 第一次释放。

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

推荐PyPI第三方库


热门话题
如何在Java中创建固定大小的泛型数组?   javascript Paypal Braintree订阅付款   使用BufferedReader和PrintWriter实现java数据持久化?   类似于iCloud的java唯一google id   java使用网格布局和抓取组合框   java我的while循环无限运行,当我检查它时,它说while循环没有主体,而我认为它显然没有主体   java LWJGL碰撞3D OpenGL   java将Tibco RV切换到WebSphere MQ?   java如何使用Postman从curl发布REST   java是超级的,在通用通配符中是独占的吗?   在swing 1.5中,java在指定时间后自动关闭非模态对话框   java PrimeFaces饼图在JSF 2.0中不显示   java如何在Spring MVC中提供带有xml配置的默认bean实现?   java在eclipse中使用按钮关闭JFrame   java Sqoop jar已弃用   Java中的Getter方法