跳转到主要内容

基础设施中间件。

项目描述

PythonPackage ContainerImage CodeQL

经纪人

基础设施中间件

描述

Broker是一个工具,旨在提供一个或多个提供虚拟机或容器的服务的通用接口。它是一个抽象层,允许您忽略大多数实现细节,只需获取您所需的内容。

文档

Broker的文档可以在本存储库的wiki中找到: https://github.com/SatelliteQE/broker/wiki

快速入门

使用dnf install cmake安装cmake

注意:我们建议使用uv来管理您的Broker安装。

使用uv作为工具安装Broker uv tool install broker

或使用pip pip install broker

注意:如果您使用pip安装,建议在虚拟环境中进行。

(可选) 如果您使用容器提供程序,根据您选择的容器运行时安装额外的依赖项,使用... install broker[podman]... install broker[docker]

(可选) 如果您使用Beaker提供程序,使用dnf install krb5-devel安装额外的依赖项,然后使用... install broker[beaker]

首次运行Broker时,例如使用broker --version,它将检查您是否已经在它期望的位置有broker_settings.yaml文件。如果没有,它将帮助您设置一个并放置在默认的Broker目录~/.broker/

如果您想使Broker在不同的位置运行,请使用BROKER_DIRECTORY环境变量导出所需路径。

您可以在任何时候使用broker --version来验证它正在寻找其配置文件的位置。

基本CLI使用方法

检出VM或容器 检出具有任意参数的单个VM

broker checkout --workflow test-workflow --workflow-arg1 something --workflow-arg2 else

一次性检出多个VM

broker checkout --workflow test-workflow --count 3

传递复杂的数据结构

broker checkout --container-host my-image --args-file tests/data/broker_args.json --extra tests/data/args_file.yaml

昵称

Broker允许您为检出VM定义可配置的昵称。只需将其添加到setting.yaml中,并使用--nick选项调用即可。

broker checkout --nick rhel7

列出您的VM和容器

Broker维护您已检出的VM和容器的本地库存。您可以使用inventory命令查看这些信息。

broker inventory

要同步来自支持提供程序的工具,请使用--sync选项。

broker inventory --sync AnsibleTower

要同步特定实例的工具,请使用以下语法与--sync一起使用。

broker inventory --sync Container::<instance name>

扩展VM的租期

支持扩展VM租期的提供程序通过extend子命令提供该功能。

broker extend 0
broker extend hostname
broker extend vmname
broker extend --all

检出VM和容器

您还可以使用checkin命令将VM返回到其提供程序。以这种方式检出的容器将被完全删除,无论其状态如何。您可以使用本地ID(broker inventory)、主机名或“all”来检出所有内容。

broker checkin my.host.fqdn.com
broker checkin 0
broker checkin 1 3 my.host.fqdn.com
broker checkin --all

获取Broker提供程序的信息

Broker的providers命令允许您收集有关可用提供程序及其操作的信息。此外,您还可以使用此命令查找有关提供程序操作的各个参数的信息。

broker providers --help
broker providers AnsibleTower --help
broker providers AnsibleTower --workflows
broker providers AnsibleTower --workflow test-workflow

运行任意操作

如果提供程序操作不导致主机创建/删除,Broker允许您执行该操作。还有几个输出选项可用。当使用容器提供程序执行时,将启动一个新的容器,运行您的命令(如果指定),然后清理。

broker execute --help
broker execute --workflow my-awesome-workflow --additional-arg True
broker execute -o raw --workflow my-awesome-workflow --additional-arg True --artifacts last

机器可处理输出

如果在CI或其他自动化环境中运行,Broker提供将重要输出信息存储在输出文件中的选择。这是json格式的数据。请注意,任何具有匹配路径和名称的现有文件都将被删除。

broker --output-file output.json checkout --nick rhel7
broker --output-file inventory.json inventory

在后台运行Broker

某些Broker操作可以在后台运行,这些目前是:checkout、checkin和execute。以这种方式运行命令时,它将启动一个新的Broker进程,不再记录到stderr。要检查进度,您仍然可以跟踪Broker的日志文件。请注意,后台模式将与execute的输出选项冲突,因为它无法打印到stdout。这些应该保持日志模式。

broker checkout --background --nick rhel7
broker checkin -b --all
broker execute -b --workflow my-awesome-workflow --artifacts

开发设置

使用dnf install cmake安装cmake

克隆Broker存储库,并使用uv pip install "broker[dev] @ ."本地安装。

将示例设置文件复制到broker_settings.yaml并编辑它。

要在外部运行Broker的基本目录,请使用BROKER_DIRECTORY环境变量指定目录。

项目详细信息


发布历史 发布通知 | RSS源

下载文件

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

源代码分发

broker-0.5.7.tar.gz (92.4 kB 查看哈希值)

上传时间 源代码

构建分发

broker-0.5.7-py3-none-any.whl (80.2 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面