跳转到主要内容

构建一个用于在容器中运行软件的独立测试实验室。

项目描述

https://img.shields.io/pypi/v/labtest.svg https://img.shields.io/travis/CityOfBoston/labtest.svg Documentation Status
自由软件

BSD许可证

文档

https://labtest.readthedocs.io.

概述

简而言之,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为波士顿市创建,使用了Cookiecutterlgiordani/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 (279.4 kB 查看散列)

上传

构建分布

labtest-0.4.8-py2.py3-none-any.whl (31.9 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者