ansible - 如何自动测试配置管理脚本?

标签 ansible puppet devops configuration-management

我正在使用 Puppet/Chef/Ansible 等工具来设置和配置开发环境和生产服务器。

每当我更新配置时,我都会针对我的开发环境运行该工具并登录以手动检查事情是否按预期工作。

但是这样做很乏味,而且我无法每次都测试所有内容,那么有什么方法可以自动化测试吗?

最佳答案

有针对此的基础设施测试框架:

  • ServerSpec/InSpec - 基于 ruby 。著名、大社区、长相漂亮、类最好的。
  • BATS - Bash 自动化测试系统,更简单一些。
  • TestInfra - 基于Python的基础设施测试框架。仍然很年轻,社区很小。 Intro .
  • Goss - 快速(用 Go 编写),用于验证服务器/基础设施配置的小工具。测试场景用 yaml 编写。

自动化:

  • 有有趣的Molecule项目 - 由 Cisco 设计的一些用于测试 Ansible 角色的自动化。还没试过。
  • 更进一步,可以使用 TestKitchen它处理自动化以启动 Vagrant 或 Docker 甚至 AWS 实例,并使用 Rspec/BATS 针对刚刚启动的机器测试 Puppet/Chef/Ansible。

那么您需要什么 - 选择框架,编写测试并针对模拟虚拟机运行您的剧本/食谱和测试。

理想的情况是将您的“基础设施作为代码”保存在 中并配置一旦您在存储库中进行了新的更改,就像 TravisCI 一样为每个 PR 运行测试。 您甚至可以关注这里:首先编写测试,让它们失败,然后在您最喜欢的配置管理工具中编写实际实现,看看该更改是否使测试成功/通过。


MOAR 基础设施测试和自动化!

关于ansible - 如何自动测试配置管理脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36998112/

相关文章:

amazon-web-services - Ansible 配置在 Ubuntu 16.04LTS 中失败

linux - 工头数据库导入失败

mysql - puppetlabs 仪表板模块中已弃用 mysql::server 模块,如何修复?

node.js - Dockerfile 应该执行 "npm install"和 "npm run build"还是应该只复制这些文件?

ssl - kolla-ansible TLS 部署失败

ansible - 复制时对多个源和目标使用 with_fileglob

docker - 在AWS ec2实例中Docker上的Splunk安装失败

java - Blowfish 加密 : Java vs. Ruby

azure 管道-根据触发的分支设置变量

java - 在多个环境之间管理配置文件的方法