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

时间:2016-05-03 07:24:33

标签: ansible puppet devops configuration-management

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

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

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

2 个答案:

答案 0 :(得分:5)

有基础架构测试框架:

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

自动化:

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

所以你需要的东西 - 拿起框架,编写测试并运行你的剧本/食谱&测试模拟虚拟机。

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


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

答案 1 :(得分:0)

如果您能告诉我们,您想要测试的是什么。我们可以提供更好的帮助。

但是, 你检查了干运行模式吗?我认为,Puppet和Ansible支持它,你可以有一个cron或一些自动脚本,它针对单个(测试)节点运行所有puppet / ansible模块。

更多信息:
 1. http://docs.ansible.com/ansible/playbooks_checkmode.html
 2.检查https://docs.puppet.com/puppet/latest/reference/man/agent.html

中的noop模式