我一直在Vagrant的木偶开发环境中遇到问题,这会带来一个以上的VirtualBox虚拟机 .
我使用shell配置程序在puppet master和puppet客户端上安装puppet,这在第一个 vargrant up
期间运行,然后我允许每台机器通过 vagrant hostsupdater
插件使用/ etc / hosts查看其他机器 .
然后我在Puppet Server上运行 sudo puppet apply site.pp
;并在puppet客户端上运行 sudo puppet agent --server puppet-server --verbose --no-daemonize --waitforcert 10 --noop
.
然后当证书出现在 sudo puppet cert list
中的puppet服务器上时,我用 sudo puppet cert <client-host-name>
签署证书,证书被缓存在客户端上;
回到客户端我运行 sudo puppet agent --server puppet-server --verbose --no-daemonize --waitforcert 10
,并注意对该机器进行了更改 .
我接下来要做的就是使用 sudo shutdown -h now
关闭所有机器
之前当我将它们带回 vagrant up
时,两者之间的连接将停止工作,木偶引用一些关于证书不匹配的错误 .
但是最近当我再次尝试这些步骤时,我采取了不同的方式,而不是运行 vagrant up
我第二次启动机器时运行 vagrant up --no-provision
,看起来两者可以再次通信 .
我的理论是,这样做的原因是当第二次启动机器时重新配置它们,不包括 --no-provision
参数,CA会重新生成,因此会导致问题,因为这两台机器不再相互拥有证书 .
它是否正确?无论是一直手动重新创建机器和设置木偶,真的很烦人 .
我的流浪汉SHELL供应商是否有可能检查是否已安装木偶以自动跳过重新安装木偶(如果已安装)?
另外,有没有办法在安装后自动运行Puppet Server上的 sudo puppet apply site.pp
并在puppet客户端上运行 sudo puppet agent --server puppet-server --verbose --no-daemonize --waitforcert 10 --noop
,然后使用shell provisioner以正确的顺序返回服务器添加证书?
附:是的,我已经知道有一个流浪汉的木偶供应者,但我正在学习木偶的客户/服务器端 .
1 回答
哼,这很奇怪 .
供应商运行第二个(即将到来的)
vagrant up
的唯一原因是你特别要求它,所以如果你有类似的东西注意
:run => always
这告诉流浪者运行供应商 .vagrant up
(没有任何选项)的输出将是