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

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 ZK我们可以保存Windows组件状态吗?   java中的xpath比较路径   将字符串解析为长字符串时出现java数字格式异常   Apache CXF中获取异常中的服务器stacktrace的java问题   java我正在用j2me编程,我需要用丰富的格式编写文本以获得帮助屏幕   Android Room数据库中id字段的java名称字段约定   对于API9,java ArrayList<HashMap<String,String>>无法正确转换为JSONArray   api是最初的Java理想死了吗?   opencv java中的python掩码图像   java为什么在实现克隆方法时返回super。克隆()不是此克隆()   java HttpUrlConnection是否存在并发惩罚?   有没有办法将java arraylist对象复制到codemodel生成的源代码中?