织物工具
Hemp的Python项目详细描述
用于Fabric的环境感知配置和工具。
安装
pip install hemp
什么是大麻
大麻被包裹着
使织物具有一定的环保意识,并允许使用配置
设置要在结构脚本中使用的公共或每个环境变量的文件。
大麻被认为是稳定的,可以生产。
它由MobileCashout内部使用,并且已经被
用于执行数以千计的生产部署和无数的自动化
跨多个平台的任务,目前为止没有任何问题。
用法
hemp可执行文件包装织物并对
如何加载和执行结构,即
在结构执行之前加载默认任务和配置文件。
命令行界面与fabric本身没有任何不同,
因此,运行任务
像往常一样,用hemp替换fab应该可以从
盒子。
与面料的区别
fabfile位置
默认情况下,fabric将从当前工作加载fabfile.py。
目录或任何父目录。
hemp扩展了这个功能,包括位于
$HOME当前用户。这允许您在
一个文件,在不指定文件的情况下使用它们
使用hemp时明确定位。
HEMP文件
hemp从hemp配置文件加载配置
hemp.yml。默认情况下,它们从$HOME
加载
当前用户和当前工作目录。
ifhemp.ymlif在用户的主目录和
当前工作目录,两个文件都将加载并
它们的内容递归地与^{tt7}的内容合并$
以当前工作目录为准。
默认阶段
默认情况下,指定阶段需要加载阶段配置
在执行任何其他任务之前。它可以完成
使用一个预定义的阶段任务或自定义
一个,将名称作为参数传递给ontask。
考虑这些示例:
hemp development [task]
hemp on:development [task]
最终将使用developmentstage。
示例环境配置
hemp:environments:staging:roles:web:['web0.host.com']db:['web0.host.com']production:roles:web:['web1.host.com','web2.host.com','web3.host.com','web4.host.com']db:['web1.host.com']development:roles:web:['web5.host.lan']db:['web5.host.lan']# [...]
加载主机和角色
当用一个stage任务或ontask调用时,hemp将
将适当的配置加载到fabric的env字典。例如,加载stagingstage将填充env
衰减值:env.hosts=['web0.host.com']env.roledefs['web']=['web0.host.com']env.roledefs['db']=['web0.host.com']
主机和角色定义合并
hemp将合并所有值,而不是重写
已经位于env字典中,两个都用于主机和角色定义。
当用一个stage任务或ontask调用时,hemp将
将适当的配置加载到fabric的env字典。
例如,加载stagingstage将填充env
衰减值:
主机和角色定义合并
hemp将合并所有值,而不是重写
已经位于env字典中,两个都用于主机和角色定义。
hemp将合并所有值,而不是重写
已经位于env字典中,两个都用于主机
和角色定义。
附加env设置
hemp.yml文件的所有根键都将加载到fabric的 env字典。例如,具有像
hosts:['a.com','b.com']hemp:[# ...]
将导致env.hosts填充a.com和 b.com
许可证
根据Apache2.0许可的条款和条件许可。