使用Vagrant + Docker在本地开发人偶

问题描述 投票:0回答:1

我正在尝试提出一种在本地开发木偶角色和个人资料的策略。理想情况下,我想要一个独立的git repo,它具有站起master所需的一切以及可以应用于和验证正在开发的角色的测试节点。

我当前的解决方案是将docker-compose用于launch a local puppet master。这会将我的开发机上的本地代码文件夹映射到主容器上的/ etc / puppet / code卷。对于测试节点部分,我想可以将vagrant与木偶供应商一起使用。我选择无业游民的原因(而不是仅运行docker agent映像是因为我的某些角色适用于Windows计算机。这似乎是同时支持Windows和Linux木偶角色的最佳选择。

目前,我的工作是弄清楚如何桥接两个虚拟网络(无所适从的docker)。我可以通过将the主端口(8140)导出到主机,然后将我的无源供应者指向主机来伪造它。这种方法的问题在于,我必须使用分配给无业游民的来宾(对应于主机)的网关IP,并且我不确定该解决方案在整个团队中是否稳定。

我正在寻找有关...的建议

  • 这似乎是实现我的目标的可行/正确方法?
  • 我如何将这两个解决方案完美地结合在一起(docker + vagrant)
  • 我是否错过了一些已经解决了此问题的现有标准做法?

到目前为止,我的工作在这里the github repo。如有任何建议,请随时提交公关。

docker vagrant puppet devops
1个回答
0
投票

您在想什么[[是一个可行的解决方案。有很多方法可以完成此操作,但是由于您在询问其他方法,因此我直接使用puppet apply和Docker完成了此操作。我写了一篇有关here的旧Wiki帖子,当时我使用的是Puppet 4,因此仍然非常有用。

基本上,您要做的是制作一个独立的测试库​​,运行r10k,然后将其安装到临时计算机中。

    进行研讨会回购(我提供了sample
  • 给它一个基础分支(我选择production,因为这是已知的木偶默认)。
  • 建立一个新分支以将您的角色和配置文件提交到进行模块测试。
  • 调整default中的site.pp目标以包括该角色。
  • 运行r10k deploy environment -pv,将r10k.yaml设置为该车间仓库。
    • 为什么?这样,您可以确保Puppetfile被拉扯,您的车间看上去与任何东西都近您要使用的测试环境。
  • 使用Puppet工具箱拉Docker容器
    • 我做了一个旧的,Puppetlabs保留了一个正式的,您可以自己制作,没关系
  • 将展开的目录绑定到其中,将其命名为puppet apply /etc/puppet/code/environments/[branch]/manifests/site.pp,然后查看会发生什么。
  • 由于您对使用Vagrant感兴趣,您可能只需让Vagrant映像执行r10k deploy并全部运行Docker命令。这将为您提供完整的按钮设置。

    如上所述,有很多方法可以做到这一点,但这是过去为我服务的方法。有时候,以交互方式查看这些内容比围绕Beaker / Kitchen / serverspec进行编码要容易得多。

  • © www.soinside.com 2019 - 2024. All rights reserved.