用于将fabric与ploy集成的插件。
ploy_fabric的Python项目详细描述
安装
ploy_fabric最好与easy_install、pip或在buildout中与zc.recipe.egg一起安装。
一旦安装,它的功能就可以立即使用ploy。
命令
插件添加了以下命令以进行部署。
- do
使用简化的参数语法运行结构任务。 您只需将位置参数放在任务名称后面的命令行上。 对于关键字参数,请使用name=value语法。 例如:
ploy do something arg key=value
- fab
- 运行结构任务并将命令行选项传递给结构。 这基本上反映了fabric的fab脚本。
选项
实例只获取新的fabfile选项来指定要在哪个文件中查找任务。 位置相对于ploy.conf。
实例方法
对于python端,每个实例都获得do(task, *args, **kwargs)方法。 参数task是应该运行的结构脚本中任务的名称。其余的参数将传递给该任务。
添加到每个实例的另一个助手是一个上下文管理器,可通过实例上的fabric属性访问。 这样,您就可以在fabric任务中切换到与其他用户的新ssh连接:
fromfabric.apiimportenv,rundefsometask():run("whoami")# prints the default user (root)withenv.instance.fabric(user='foo'):run("whoami")# prints 'foo' if the connection workedrun("whoami")# prints the default user (root)<> P>当上下文管理器退出时,对织物环境的所有更改都会恢复。
织物任务装饰器
使用ploy_fabric.context可以将任务修饰为使用具有单独连接的特定用户。 当上下文管理器退出时,对织物环境的所有更改都会恢复。 如果要从另一个任务内部运行任务,这很有用。
fromfabric.apiimportenv,runfromploy_fabricimportcontext@context# always run with the default userdefsometask():run("whoami")# prints the default user (root)@context(user=None)# always run with the default user (alternate syntax)defsomeothertask():env.forward_agent=Truerun("whoami")# prints the default user (root)@context(user='foo')# always run as foo userdefanothertask():env.forward_agent=Falserun("whoami")# prints the default user (user)someothertask()assertenv.forward_agent==False
织物环境
默认情况下,结构环境具有以下设置。
- reject_unknown_hosts
- 始终设置为True,ssh连接由此插件和部署处理。
- disable_known_hosts
- 始终设置为True,由ploy处理。
- host_string
- 当前实例的unique id,只有在知道自己在做什么时才进行操作!
- known_hosts
- 由ploy管理的known_hosts文件的路径。
- instances
- 允许访问其他实例以获取变量或调用方法的字典。
- instance
- 从config属性或其他东西和方法访问变量的当前实例。
- config_base
- 目录ploy.conf。
以fabric-开头的实例的任何选项都将去掉fabric-前缀,并用该名称覆盖环境中的设置。
更改日志
1.1.1-2018-06-07
- 更新要求以阻止结构>;=2,因为它不兼容。 [fschulze]
1.1.0-2014年10月27日
- 要求面料>;=1.4.0,并大大简化必要的修补。 [fschulze]
- 在结构调用后关闭所有新打开的连接。 [fschulze]
- 添加上下文管理器和装饰器以方便地切换结构连接。 [fschulze]
1.0.0-2014年7月19日
- 添加了文档。 [fschulze]
1.0b6-2014年7月15日
- 允许使用前缀为的选项覆盖配置中的fabric env fabric-,即fabric-shell = /bin/sh -c。 [fschulze]
1.0b5-2014年7月8日
- 打包和测试修复。 [fschulze]
- 修复do命令的任务列表。 [fschulze]
1.0b4-2014年7月4日
- 使用主机字符串的唯一ID以避免出现问题。 [fschulze]
- 添加了fab命令,该命令只是fabric的包装器,包含所有选项 并将do命令重写为一个简单的版本只是执行一个任务。 [fschulze]
- 将awsome先生重命名为ploy,将awsome.fabric先生重命名为ploy。 [fschulze]
1.0b3-2014-06-09
- 当依赖于结构时,跳过1.8.3,它在paramiko上添加了版本pin。 [fschulze]
- 仅当无法导入时才需要添加要安装的结构。这样我们 如果已经作为系统包或 维图阿列诺夫。 [fschulze]
1.0b2-2014年5月15日
- 为所有实例注册fabfilemassager。 [fschulze]
- 使用上下文管理器在dohelper中进行输出筛选和筛选。 [fschulze]
- 将setuptools git从setup.py移到.travis.yml,只需要 发布和测试。 [fschulze]
1.0b1-2014年3月24日
- 初次发行 [fschulze]