跳转到主要内容

将Fabric与ploy集成的插件。

项目描述

概述

The ploy_fabric plugin provides integration of Fabric with ploy.

安装

ploy_fabric最好通过easy_install、pip或buildout中的zc.recipe.egg安装。

安装后,其功能可以立即与ploy一起使用。

命令

该插件为ploy添加了以下命令。

do

使用简化的参数语法运行Fabric任务。只需在任务名称后面将位置参数放在命令行上即可。对于关键字参数,请使用name=value语法。例如

ploy do something arg key=value
fab

运行Fabric任务并将命令行选项传递给Fabric。这基本上反映了Fabric的fab脚本。

选项

实例仅获得新的fabfile选项来指定查找任务的文件。位置相对于ploy.conf

实例方法

对于Python端,每个实例都获得了 do(task, *args, **kwargs) 方法。其中 task 参数是要运行的 Fabric 脚本中任务的名称。其余参数将传递给该任务。

每个实例还增加了一个可以通过实例上的 fabric 属性访问的上下文管理器。使用它,您可以在 Fabric 任务中切换到具有不同用户的新的 ssh 连接。

from fabric.api import env, run


def sometask():
    run("whoami")  # prints the default user (root)
    with env.instance.fabric(user='foo'):
      run("whoami")  # prints 'foo' if the connection worked
    run("whoami")  # prints the default user (root)

上下文管理器退出时,将撤销对 Fabric 环境的所有更改。

Fabric 任务装饰器

通过 ploy_fabric.context,您可以装饰一个任务以使用具有单独连接的特定用户。上下文管理器退出时,将撤销对 Fabric 环境的所有更改。如果您想在另一个任务内部运行一个任务,这非常有用。

from fabric.api import env, run
from ploy_fabric import context


@context  # always run with the default user
def sometask():
    run("whoami")  # prints the default user (root)


@context(user=None)  # always run with the default user (alternate syntax)
def someothertask():
    env.forward_agent = True
    run("whoami")  # prints the default user (root)


@context(user='foo')  # always run as foo user
def anothertask():
    env.forward_agent = False
    run("whoami")  # prints the default user (user)
    someothertask()
    assert env.forward_agent == False

Fabric 环境

Fabric 环境具有以下默认设置。

reject_unknown_hosts

始终设置为 True,ssh 连接由该插件和 ploy 处理。

disable_known_hosts

始终设置为 True,由 ploy 处理。

host_string

当前实例的唯一 标识符,只有当您知道自己在做什么时才进行操作!

known_hosts

ploy 管理的 known_hosts 文件的路径。

instances

允许访问其他实例以获取变量或调用方法的字典。

instance

当前实例,可以访问 config 属性中的变量或其他东西和方法。

config_base

ploy.conf 的目录。

fabric- 开头的实例任何选项都将移除 fabric- 前缀,并覆盖具有该名称的环境设置。

变更日志

2.0.0 - 2022-08-17

  • 放弃对 Python < 3.7 的支持。[fschulze]

  • 增加对 Python 3.10 的支持。[fschulze]

2.0.0b2 - 2019-06-09

  • 限制 Fabric < 2dev。[fschulze]

  • 放弃对 Python 3.4 的支持。[fschulze]

2.0.0b1 - 2018-02-07

  • 通过 Fabric3 支持 Python 3.x。[fschulze]

  • 支持 ploy 2.0.0。[fschulze]

1.1.1 - 2018-06-07

  • 更新需求以阻止 Fabric >= 2,因为它不兼容。[fschulze]

1.1.0 - 2014-10-27

  • 要求 Fabric >= 1.4.0,并极大地简化了必要的修补。[fschulze]

  • 在 Fabric 调用后关闭所有新打开的连接。[fschulze]

  • 添加上下文管理器和装饰器,以便轻松切换 fabric 连接。[fschulze]

1.0.0 - 2014-07-19

  • 添加文档。[fschulze]

1.0b6 - 2014-07-15

  • 允许使用以 fabric- 为前缀的选项覆盖 fabric 环境配置,例如 fabric-shell = /bin/sh -c。[fschulze]

1.0b5 - 2014-07-08

  • 打包和测试修复。[fschulze]

  • 修复了 do 命令的任务列表。[fschulze]

1.0b4 - 2014-07-04

  • 使用主机字符串的唯一标识符以避免问题。[fschulze]

  • 添加了 fab 命令,该命令只是 Fabric 的包装,具有所有选项,并重写了 do 命令为仅运行任务的简单版本。[fschulze]

  • 将 mr.awsome 重命名为 ploy,将 mr.awsome.fabric 重命名为 ploy_fabric。[fschulze]

1.0b3 - 2014-06-09

  • 当依赖于 Fabric 时,跳过 1.8.3,因为它在 paramiko 上添加了版本限制。[fschulze]

  • 只有当无法导入 Fabric 时才将其添加到 install_requires 中。这样,我们就不必担心它作为系统包或虚拟环境中的包已经安装。[fschulze]

1.0b2 - 2014-05-15

  • 为所有实例注册 fabfile 调整器。[fschulze]

  • do 辅助程序中使用上下文管理器进行输出过滤。[fschulze]

  • 已将setuptools-git从setup.py移至.travis.yml,它仅适用于发布和测试。[fschulze]

1.0b1 - 2014-03-24

  • 初始发布 [fschulze]

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。

源代码分布

ploy_fabric-2.0.0.tar.gz (12.1 kB 查看哈希)

上传时间 源代码

构建分布

ploy_fabric-2.0.0-py2.py3-none-any.whl (9.8 kB 查看哈希)

上传时间 Python 2 Python 3

由以下支持