基于Buildout的部署变得安全且简单
项目描述
Aja
Aja为从预发布服务器部署Fabric任务到远程生产服务器提供了buildouts
它假设buildout具有绝对路径(这是buildout的默认设置)
它假设所有相关路径(python、buildout、共享eggs等)在预发布和生产服务器上都是相同的
bootstrap和buildout始终在预发布服务器上运行
通过使用rsync将bin-、parts-和(本地或共享)eggs目录推送到远程生产服务器来部署buildout
安装
Aja可以像任何Python包一样安装
$ pip install aja
但请注意,Aja包含以下依赖项
Fabric
paramiko
zc.buildout
setuptools
ecdsa
pycrypto
因此,建议使用专用虚拟环境。
Aja没有自己的可执行文件,但通过Fabric的fab命令执行。当然,可以将其链接到aja。
配置
Aja使用fabfile进行配置,例如fabfile.py
import fabric.api
fabric.api.env.update({
'buildout_directory_prefix': '', # optional
'buildout_extends_prefix': '', # optional
})
from aja.tasks import *
buildout_directory_prefix在创建新buildout或查找其他命令的buildout时提供可选的便利。
buildout_extends_prefix在创建新buildout时提供可选的便利。
用法
aja 将 Fabric 的主机映射到构建区域,以便为每个构建区域,它使用构建区域中的 [aja] 部分中的变量填充 fabric.api.env(这与 collective.hostout 非常相似)。其余解析的构建区域文件可以在 fabric.api.env.buildout 中找到。
一个示例 [aja] 部分可能如下所示
[aja]
executable = /usr/local/python/bin/python
host_string = buildout@production
key_filename = /home/buildout/.ssh/id_rsa
此部分将配置 Aja 任务使用特定的 Python 虚拟环境来运行构建区域,并通过使用提供的密钥文件执行 rsync 将结果推送到服务器 production。
以下是 Aja 使用的示例
$ fab create:/var/buildout/plone,/vagrant/plone-4.3.cfg
$ fab -H /var/buildout/plone buildout push
并在 fabfile 中有以下方便的配置
import fabric.api
fabric.api.env.update({
'buildout_directory_prefix': '/var/buildout',
'buildout_extends_prefix': '/vagrant',
})
from aja.tasks import *
前面的示例使用可能如下所示
$ fab create:plone,plone-4.3.cfg
$ fab -H plone buildout push
扩展
Aja 只提供最基础的 fabric 任务,但它提供了一个自定义任务类 aja.tasks.AjaTask,它提供解析后的构建区域在 fabric.api.env.buildout。这使得在您的 fabfile 中定义自定义任务变得容易,例如。
from fabric import api
from fabric.operations import run
from aja.tasks import AjaTask
@task(task_class=AjaTask)
def purge():
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 命令的支持,以从构建区域中读取 setuptools 和 zc.buildout 版本 [datakurre]
0.9.1 (2016-04-26)
添加 aja-alias 作为 fabric 的控制台脚本 [datakurre]
0.9.0 (2015-01-14)
第一个版本。
项目详情
aja-0.9.2.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | b889dd09fd450ea0df86b6231a5028456108662a73c2373a1e74cc5870789ee8 |
|
MD5 | e3ec5676ac210c5b28f687bb34929793 |
|
BLAKE2b-256 | 5dae1f7f495910fff6c18b64d675b16919cb60a62adcf445c36ea5ef40f18d87 |