简化服务器部署的Fabric命令
项目描述
Burlap - 设计用于简单和速度的配置管理
概述
Burlap是一个配置管理工具和框架,用于将软件部署到服务器。
它使用Python编写,并建立在Fabric之上,通过SSH远程运行命令。
与以牺牲大量复杂性为代价针对大型“Web-scale”平台的Chef或Ansible不同,Burlap针对中小型平台,并保持其配置简单。
大量代码也受到了Fabtools的影响,另一个基于Fabric的工具包。
通过版本0.9.54支持Python 2.7。
安装
使用以下命令通过pip安装软件包:
pip install burlap
要使用boto软件包进行AWS支持,请使用pip install burlap[aws]
安装。
快速入门 & 使用
基本调用格式
fab <role> <task>
任务是一个Fabric命令,可以执行任意操作。
角色是一种特殊类型的任务,定义了以下任务应应用于哪些服务器。
角色定义在名为'roles'的顶级目录中,其中每个子目录代表一个角色的名称。
此目录中的settings.yaml
文件定义了此角色的所有设置。
要创建具有示例角色的基本Burlap骨架项目,请运行burlap-admin.py skel myproject
。
可以有任意数量的名为
fab staging rabbitmq.configure cron.configure apache.configure service.post_deploy
任务组织在称为“背包”的类别中。这使得它们可以共享状态,并具有更规范的命名方案。
例如,所有与Apache相关的任务都在Apache背包中,因此要停止、部署您的Apache配置,然后重启预发布服务器,您将执行
fab staging apache.stop apache.configure apache.restart
然而,这比这还要简单。如果您将apache
添加到roles/staging/settings.yaml
中的services
列表,那么Burlap将跟踪更改,并在您运行时自动部署它们
fab staging deploy.push
每个背包定义了如何跟踪其更改,这些更改以清单的形式报告。
Burlap在部署前后检索每个背包的清单,并计算差异以确定哪些背包有需要部署的未完成更改。
背包可以定义依赖关系,告诉Burlap以特定顺序运行某些任务。
例如,托管在Apache上的Django项目需要在部署任何Django项目代码之前部署Apache配置。
这允许角色包含任意数量的背包,其部署可以自动计算。
然而,这个自动部署器无法预见所有用例,如果出现异常,您可以重置Burlap的最后清单,隐含地告诉它,“所有需要部署的内容都已部署”,但运行
fab <role> deploy.fake
几乎所有的Burlap任务都支持一个dryrun
参数,当设置时,只会输出命令而不会对服务器应用任何实质性更改。它激活方式如下
fab <role> some_task:dryrun=1
大多数Burlap任务也支持一个verbose
参数,它将根据每个背包的定义激活额外的调试信息。它激活方式如下
fab <role> some_task:verbose=1
几乎所有的Burlap内置任务都在幕后运行Bash命令。因此,通过激活dryrun模式并隐藏所有不必要的输出(除了生成的Bash命令),可以将Burlap调用转换为Bash脚本。为此,设置环境变量BURLAP_COMMAND_PREFIX=0
,激活dryrun,并将输出捕获到文件中。例如
BURLAP_COMMAND_PREFIX=0 BURLAP_SHELL_PREFIX=1 fab staging some_task:dryrun=1 > myscript.sh
运行所有测试
tox -c tox-full.ini
在特定环境中运行所有测试
tox -c tox-full.ini -e py312-ubuntu_22_04_64
在特定环境中运行特定测试
tox -c tox-full.ini -e py312-ubuntu_22_04_64 -- -s <path_to_file>::<TestCaseName>::<test_name>
例如
tox -c tox-full.ini -e py312-ubuntu_22_04_64 -- -s burlap/tests/test_apache.py::ApacheTests::test_diff
项目详情
burlap-0.9.124.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3ff7b973678ee98ae26e027e5b38ada316b6aa2106f8622203744b989f8302bd |
|
MD5 | d801fea2612b75bf9c89dd1ed341ce11 |
|
BLAKE2b-256 | 0cbf169606385a413a8312763f84b2de37bc971c5390320a1db1b10583d9da28 |