用于将fabric与ploy集成的插件。

ploy_fabric的Python项目详细描述


概述

ploy_fabric插件提供了Fabricploy的集成。

安装

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]

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

推荐PyPI第三方库


热门话题
创建大十进制对象时发生java错误   java为什么netty日志不显示正确的类和包信息   java AWS Lambda,如何正确实例化AmazonHttpClient?   java如何防止控制器中的Put API受到CheckMarx扫描中反映的XSS攻击?   java如何在Android上滚动时更改图像   java为什么通知没有显示在API 28中?   java分配问题OCJP;为什么我不能将int传递给short?   java在非静态内部类中使用泛型   正则表达式从Java字符串中提取word中指定的日期值   java Primefaces selectManyCheckbox未在bean中填充   美化javaxml输出   java带2个箭头的按位移位和带3个箭头的按位移位有什么区别?   使用JAXB和SpringMVC进行java XML绑定   Java高级功能weblogic中的Web服务   java IIN插入HQL中   缺少java PrintCommandListener   java如何模拟SpringBean的自动连接列表?   javasocket服务器、客户端检测服务器已死亡   将按钮添加到使用java图形的contentPane   java EJB3在第一次运行时调用计时器超时时出错