使用 vagrant 测试 Puppet Master

使用 vagrant 测试 Puppet Master

我是 Puppet 的新手。我读了很多书,设法编写了一个简单(可能很笨拙)的清单来配置主机,并编写了一个同样简单的结构脚本来处理 Puppet 的预设置。太好了,是时候更认真了。我在 apache2 下配置了一个 Puppet Master。(我使用的是 ubuntu 14.04,软件包版本为 3.8,这要感谢 Puppet 实验室的 deb……)

到目前为止一切顺利,但尽管进行了大量的搜索和尝试,我现在仍然停留在几个点上。 最终,这取决于如何设置回归测试,以便我相信我总是可以重新创建我的基础。

  1. Puppet Master 在 apache2 下运行。我认为它是健康的,因为它没有抱怨,而且我在 8140 上提供服务。但我希望有一种比没有错误更好的方法来确认这一点。有没有办法查询 master 的健康状况?

  2. 我希望能够进行自动化测试。对于代理(我的(小型)舰队中的单个主机),我可以启动 vagrant vm,告诉它们它们的名称是 X,然后执行 puppet apply。这样我就可以查看主机是否按照我期望的方式启动主机 X。然后我可以在 vm 上运行一个脚本来检查我认为主机应该实际执行的操作。但我想将其自动化,但奇怪的是,我还没有找到这样做的常用方法。我敢打赌这不是我需要发明的东西。有什么指示吗?

  3. 同样,我也想对主服务器进行自动化测试。所以这是 (1) 和 (2) 的结合,因为我不确定如何测试主服务器。

谢谢您的指点。

答案1

  1. puppetmaster本身并没有提供太多信息。如果将以下内容添加到/etc/puppet/auth.conf

    path ~ ^/status/no_key$
    auth off
    allow *
    

    您应该能够puppetmaster在不提供证书的情况下查询状态(使用将特定 IP 列入白名单可能是个好主意allow_ip

    curl -ksS -H "Accept: pson" https://puppet.example.com:8140/production/status/no_key
    

    响应应该为 HTTP 200:

    {"is_alive":true,"version":"3.8.1"}
    

    除此之外,它还puppetmaster以 YAML 格式存储了大量信息,通常是/var/lib/puppet/reports/。但这些报告并不真正人性化。所以,你可能正在寻找类似木偶仪表板,它曾经是官方 Puppet 发行版的一部分,现在作为开源项目进行开发。

木偶仪表板

  1. Puppet 模块通常使用以下方式进行测试rspec-puppet,它是通用 Ruby 测试框架的扩展。您可能正在寻找烧杯,它结合了 Vagrant 盒和 rspec-puppet 测试。请查看本教程

  2. 当然,您可能不想在生产中调试代码。 错误传播

    有几种方法可以解决这个问题。其中之一是使用工作流程r10k或者角色/概况方法。或者您可以启动一组 Vagrant 盒子,在本地测试,然后部署。管理使用的 puppet 模块的版本绝对是个好主意,例如使用傀儡图书管理员或者r10k。Puppet 正在不断发展,因此首选工具列表可能会随着时间而改变。

相关内容