构建一个用于在容器中运行软件的独立测试实验室。
项目描述
- 自由软件:
BSD许可证
- 文档:
概述
简而言之,LabTest将分支foo部署到其他人在foo.test.example.com可以访问的服务器上。这种部署称为实验。
换句话说,它是一个框架,可以根据存储在公共代码存储库中的配置提供临时隔离的基础设施。
LabTest有三个部分:服务器架构(或实验室),命令行客户端和实验配置。
实验室。 这是您控制的服务器环境。LabTest有一些模板可以帮助您开始,但最终实验室的环境在您的控制之下。LabTest所需的是SSH访问和Docker。
实验配置。 实验配置指导LabTest如何发布代码实验。它位于代码存储库中,因此任何参与代码开发的开发人员都可以发布新的实验。
客户端。 客户端是一个命令行工具,它使用SSH和实验配置来在实验室中创建、列出、更新和删除实验。
它能做什么?
并行开发。 一个开发者可以在三个不同的分支中完成三个不同的工单,并将三个实验分别提交给三个人进行审查。随着工单的完成,分支可以按任意顺序合并,实验也可以按任意顺序删除。
快速评估新想法。 有时候你只是想尝试一下。LabTest使展示想法变得简单。
向更广泛的受众开放评估。 当实验可以通过互联网访问时,人们不需要站在开发者旁边就能看到进度。
提供一次性使用的应用。 在核心上,LabTest提供隔离的临时基础设施。你可以使用它来简化一次性应用的开发和销毁。
功能原则
在我们开发LabTest的过程中,我们始终关注以下原则,以确保LabTest适合团队使用。
易于开发者使用。 这包括以下几方面。应尽可能减少以下步骤:
接纳新开发者
创建、更新和删除实验
将代码库转换为使用LabTest
易于管理。 LabTest只需对环境进行SSH访问。其他任何事情都由你自己决定。
灵活。 没有两个团队是完全相同的。LabTest通过提供良好的默认设置(便于使用)以及自定义和扩展的能力(使其成为自己的)来拥抱这种多样性。
架构原则
隔离环境。 因为这是一个测试环境,事情可能会出错。你不希望意外伤害到其他环境。这也便于安全原因。由于开发者将具有对测试服务器的SSH访问权限,因此你希望限制黑客在受攻击时可能造成的损害量。
易于重建。 如果出现问题,应使清除一切并从头开始重建变得容易。虽然重建环境可能不方便,但比调试开发者游乐场中发生了什么要容易。
灵活的实验室管理。 默认情况下,LabTest被设计为需要非常少的行政管理。LabTest允许管理员灵活地定义默认设置和扩展功能。是放任自流还是法西斯主义:你可以按自己的方式管理。
通过SSH供开发者访问。 主要原因是命令将通过SSH与每个测试实例进行通信。另一个原因是,有时候开发者有权访问类似生产环境的环境是有利的。能够在服务器上快速轻松地调整事物是一种调试的好方法。
附录
此软件包最初由Corey Oordt为波士顿市创建,使用了Cookiecutter和lgiordani/cookiecutter-pypackage项目模板。
# 更新日志
## 0.4.8 (2018-06-01)
### 新增
添加了before_start_command配置选项。[Corey Oordt]
添加了pytest-html用于生成HTML报告。[Corey Oordt]
### 更新
根据新首页重新组织了文档。[Corey Oordt]
添加到主页的链接,并修复了latex和其他渲染。[Corey Oordt]
将新Boston.gov品牌字体添加到主题。[Corey Oordt]
## 0.4.7 (2018-05-31)
### 新增
添加了在继续之前等待Docker MySQL服务启动的功能。[Corey Oordt]
### 更新
更多文档编辑。[Corey Oordt]
向文档中添加了主页。[Corey Oordt]
重新组织文档以改善可访问性。[Corey Oordt]
## 0.4.6 (2018-05-30)
### 修复
再次更新了测试。[Corey Oordt]
## 0.4.5 (2018-05-30)
### 修复
修复了一个非确定性的测试。[Corey Oordt]
## 0.4.4 (2018-05-30)
### 新增
将环境变量中的字符串 $VIRTUAL_HOST 更改为实际的虚拟主机名时写入环境。 [Corey Oordt]
添加了 docker mysql 测试。 [Corey Oordt]
## 0.4.3 (2018-05-29)
### 修复
修改了 systemd 模板中容器的名称。 [Corey Oordt]
## 0.4.2 (2018-05-29)
### 更新
更改了代码容器的命名约定,以便更容易地操作容器。 [Corey Oordt]
### 修复
在删除实验时,从提供者更改为 service_providers 进行导入。 [Corey Oordt]
为 python 2.7 修改了 ConfigParser 的导入。 [Corey Oordt]
## 0.4.1 (2018-05-29)
[修复]这次实际上合并了 0.4 分支。
## 0.4 (2018-05-29)
### 新增
提供了新的测试和模拟 SSH 服务器。 [Corey Oordt]
添加了本地脚本状态提供者。 [Corey Oordt]
向提供者模块添加了密钥提供者。 [Corey Oordt]
添加了打印版本的版本命令。 [Corey Oordt]
添加了 S3 状态提供者。 [Corey Oordt]
添加了使用 AWS KMS 的基本密钥管理。 [Corey Oordt]
### 更新
更新了测试选项。 [Corey Oordt]
提供了更健壮的服务启动检查。 [Corey Oordt]
在删除和更新实验时提供更好的输出。 [Corey Oordt]
创建了一种设置环境的标准方法。 [Corey Oordt]
对配置进行了一些小的清理。 [Corey Oordt]
更好地检查 MySQL 配置是否已更改,并解释了哪些已更改。 [Corey Oordt]
按字母顺序排列配置,以便更容易查找设置。 [Corey Oordt]
在实验的 URL 和创建成功之前添加了 http://。 [Corey Oordt]
将几个常见的远程文件系统命令重构为单个模块,以便方便使用。 [Corey Oordt]
### 修复
更好地隐藏了一些输出,并在 docker-build 文件上写入正确的模式。 [Corey Oordt]
在使用之前检查 backing_service_configs 是否在 env 中。 [Corey Oordt]
现在使用正确的 docker 命令进行卷和容器的修剪。 [Corey Oordt]
### 其他
添加了用于默认服务器的启动页面。 [Corey Oordt]
添加了自动部分书签,并删除了未使用的手动书签。 [Corey Oordt]
更新了检查服务配置的文档字符串。 [Corey Oordt]
## 0.3.5 (2018-05-25)
### 修复
更新现在正确设置 docker_image。 [Corey Oordt]
## 0.3.4 (2018-05-25)
### 修复
更新现在设置了适当的服务名和网络名。 [Corey Oordt]
## 0.3.3 (2018-05-25)
### 修复
更新现在调用 setup_backing_services。 [Corey Oordt]
## 0.3.2 (2018-05-23)
### 修复
包含了 docker 提供者的模板。 [Corey Oordt]
## 0.3.1 (2018-05-23)
### 修复
修复了打包,以便包含提供者子模块。 [Corey Oordt]
## 0.3.0 (2018-05-21)
### 新增
更新了示例 testserver 云形成文件,包括 rexray。 [Corey Oordt]
为每个实验添加了单独的 Docker 桥接网络。 [Corey Oordt]
为服务、app_build_image 和 app_build_command 添加了默认值。 [Corey Oordt]
创建了一个基本提供者类,以便使用不同的提供者轻松创建不同的后端服务。Docker mysql 是第一个。 [Corey Oordt]
### 更新
更改了实验的布局。改进了控制台状态消息。 [Corey Oordt]
代码现在在名为 'code' 的子目录中检出,以便从其他文件隔离,这些文件可能因状态原因而写入 labtest。
改进了 check-config 命令的输出。提供更好的缩进并加粗字段名称。 [Corey Oordt]
将 aws.py 移入子模块以分离 ECR 和 RDS 等部分。 [Corey Oordt]
更新了说明以使其更有意义。 [Corey Oordt]
将 Fabric 版本设置为 <2.0,因为 2.0 刚发布,需要重大的更改才能更新。 [Corey Oordt]
将有关 OS 服务的函数移动到一个模块中,以保持一致性。 [Corey Oordt]
### 修复
更新了 makefile。 [Corey Oordt]
忽略 SASS 和 node 内容。 [Corey Oordt]
删除了旧的 –links,因为我们已转移到用户定义的桥接网络。 [Corey Oordt]
删除了冗余的 _setup_service。 [Corey Oordt]
包含 instance.list 命令。 [Corey Oordt]
将 cd 命令在 docker build 命令模板中向上移动,以便它在实际的 git 仓库中。 [Corey Oordt]
### 文档
再次修复了可读性主题配置。 [Corey Oordt]
修复了sphinx_readable_theme的未使用导入。[Corey Oordt]
添加了新的zen主题。[Corey Oordt]
API文档、makefile和readme的通用清理。[Corey Oordt]
更新了文档。[Corey Oordt]
删除了一些冗余的PNG文件
更新了一些SVG文件以更好地显示工作流程
在适当的位置为图像添加了标题
修复了admonitions
标准化了配置选项的格式
对标记进行通用清理以提供更好的格式
添加了napoleon插件,以便我可以更好地格式化我的文档字符串。[Corey Oordt]
向sphinx添加了fulltoc插件。[Corey Oordt]
在make命令中将自动生成的API文档移动到API目录。[Corey Oordt]
## 0.2.6 (2018-05-08)
### 修复
将引用从HISTORY.rst更改为CHANGELOG.md。[Corey Oordt]
## 0.2.5 (2018-05-08)
### 更新
将HISTORY.rst重命名为CHANGELOG.md。[Corey Oordt]
### 修复
将io.StringIO编写的字符串转换为unicode。[Corey Oordt]
## 0.2.4 (2018-05-07)
### 修复
修复Click的另一个Python 3问题。[Corey Oordt]
## 0.2.3 (2018-05-07)
### 修复
修复python_requires关键字。[Corey Oordt]
修复配置文件中的存储库和其他内容。[Corey Oordt]
### 其他
在Makefile中创建了用于修补、次要和主版本的发布命令。[Corey Oordt]
由于Click的问题,删除了future unicode literals导入。[Corey Oordt]
## 0.2.2 (2018-05-07)
### 更新
更新MANIFEST.in以包含需求。[Corey Oordt]
## 0.2.1 (2018-05-07)
### 新增
添加了创建和删除命令。[Corey Oordt]
添加了检查branch_name可用性的功能,并在需要时获取它。[Corey Oordt]
添加了更多必需的配置选项。[Corey Oordt]
### 更新
更新travis配置。[Corey Oordt]
更新Fabric命令以使用配置的详细设置运行。[Corey Oordt]
更新了文档。[Corey Oordt]
更新实例以使用新的配置。[Corey Oordt]
更新配置。[Corey Oordt]
更新测试。[Corey Oordt]
更新需求。[Corey Oordt]
### 修复
修复了manifest。[Corey Oordt]
修复了查找默认配置文件的方法。[Corey Oordt]
修复了travis配置中的repo。[Corey Oordt]
### 其他
删除了对Python 3的引用。[Corey Oordt]
Python 3兼容性,当我们可以做到的时候。[Corey Oordt]
如果对环境文件进行了更改,则始终写入其内容。[Corey Oordt]
将hosts配置重命名为host。[Corey Oordt]
添加dotenv支持和配置。[Corey Oordt]
创建初始测试实例的任务。[Corey Oordt]
添加一个动态配置类来管理配置。[Corey Oordt]
将oyaml添加到需求中。[Corey Oordt]
添加用于设置服务和构建容器的模板。[Corey Oordt]
为测试服务器添加了cloudformation模板。[Corey Oordt]
忽略.env文件。[Corey Oordt]
将labtest.py重命名为instance.py。[Corey Oordt]
项目详情
下载文件
下载适合您平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
labtest-0.4.8.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 87bc84b5631ec069561482a21e2ef083a74da2671c861f64e268be92573890fe |
|
MD5 | 08e75397e3f023f38c45d07174153756 |
|
BLAKE2b-256 | e7d22d07fd82f852eec9d7b3b8d073c35ce3e79dd3ee87cf76b4f0f8ba910150 |
labtest-0.4.8-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e3c9b7b6b279042179febcb2c940a011139b75cbc84b7f9caf9faae9988f8249 |
|
MD5 | f4113c976aac108745b7b0c4ecb39653 |
|
BLAKE2b-256 | 346fead812ed18f6d829ed42d9adede16e6606217bc358adcd583cc9170fdfdd |