我试图想出一个在本地开发木偶角色和档案的策略。理想情况下,我想要一个自包含的git仓库,它拥有站起来的所有东西以及可以应用和验证开发中的角色的测试节点。
我目前的解决方案是使用docker-compose到launch a local puppet master。这会将我的开发机器上的本地代码文件夹映射到主容器上的/ etc / puppet / code卷。对于测试节点,第一部分我认为我可以使用流浪汉配置器。我选择vagrant的原因(而不仅仅是运行docker代理图像的原因是我的一些角色适用于windows机器。这似乎是支持windows和linux puppet角色的最佳选择。
我目前的斗争是弄清楚如何桥接两个虚拟网络(流浪者到码头工人)。我可以通过将木偶主端口(8140)导出到主机然后将我的流浪者配置器指向主机来伪装它。这种方法的问题在于我必须使用分配给流浪客人的网关IP(对应于主机),而且我不相信解决方案会在我的团队中保持稳定。
我正在寻找关于......的建议。
到目前为止我的工作是the github repo。如有任何建议,请随时提交PR。
答案 0 :(得分:1)
您正在考虑的 是可行的解决方案。有很多方法可以完成此操作,但是由于您在询问其他方法,因此我直接使用puppet apply
和Docker完成了此操作。我写了一篇关于here的旧Wiki帖子,当时我正在使用Puppet 4,所以它仍然很实用。
基本上,您要做的是制作一个独立的测试库,运行r10k,然后将其安装到临时计算机中。
production
是因为这是已知的
木偶默认)。default
中的site.pp
目标以包括该角色。r10k deploy environment -pv
,并将r10k.yaml
设置为该工作坊仓库。
Puppetfile
被拉扯,您的工作坊看起来几乎与任何地方都近
您要使用的测试环境。puppet apply /etc/puppet/code/environments/[branch]/manifests/site.pp
并查看会发生什么。因为您对使用Vagrant感兴趣,您可能只需让Vagrant映像执行r10k deploy
并运行Docker命令即可。这样可以为您提供完整的按钮设置。
如前所述,有很多方法可以做到这一点,但这是过去为我服务的方法。有时,以交互方式查看这些内容比围绕Beaker / Kitchen / serverspec进行编码要容易得多。