基础设施中间件。
项目描述
经纪人
基础设施中间件
描述
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
环境变量指定目录。
项目详细信息
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。