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

sat*_*oru 4 puppet configuration-management ansible devops

我正在使用像Puppet/Chef/Ansible这样的工具来设置和配置开发环境和生产服务器.

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

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

arm*_*rma 5

有基础架构测试框架:

  • ServerSpec/InSpec - 基于ruby.着名的大社区,漂亮的外表和最好的课程.
  • BATS - Bash自动化测试系统,更容易一些.
  • TestInfra - 基于Python的基础设施测试框架.还是年轻,非常小的社区.简介.
  • Goss - Fast(用Go编写),用于验证服务器/ infra配置的小工具.测试场景是用yaml.

自动化:

  • 有一个有趣的Molecule项目 - 一些用于测试Ansible角色的自动化,由思科设计.从未尝试过.
  • 更进一步的是使用TestKitchen处理自动化以启动Vagrant或Docker甚至是AWS实例,并使用Rspec/BATS测试Puppet/Chef/Ansible,而不仅仅是旋转机器.

所以你需要的东西 - 拿起框架,编写测试并运行你的playbooks/recipes和针对模拟VM的测试.

理想情况下,将您的"infra as code"保留在并配置如TravisCI,以便在您的存储库中进行新的更改后为每个PR运行测试.你甚至可以在这里关注:首先编写测试,让它们失败,然后在你最喜欢的配置管理工具中编写实际的实现,看看这个改变是否使测试变为绿色/通过.


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