我在Vagrant中的木偶开发环境遇到了问题,这会带来一个以上的VirtualBox虚拟机。
我使用shell配置程序在puppet master和puppet客户端上安装puppet,这是在第一个vargrant up
期间运行的,然后我允许每台机器通过{{使用/ etc / hosts查看其他机器1}}插件。
然后我在Puppet Server上运行vagrant hostsupdater
;并在puppet客户端上运行sudo puppet apply site.pp
。
然后当证书出现在sudo puppet agent --server puppet-server --verbose --no-daemonize --waitforcert 10 --noop
中的puppet服务器上时,我用sudo puppet cert list
签署证书,证书被缓存在客户端上;
回到客户端我运行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
参数之外它们被重新启动,CA会被重新生成,因此会导致问题,因为两台机器不再拥有彼此的证书。
这是对的吗?无论是一直手动重新创建机器和设置木偶,真的很烦人。
我的流浪汉SHELL供应商是否有可能检查是否已经安装了木偶,以便在木偶已经安装后自动跳过重新安装?
此外,有没有办法在安装后自动运行Puppet Server上的--no-provision
并在puppet客户端上运行sudo puppet apply site.pp
,然后以正确的顺序返回服务器以添加证书使用shell配置程序?
P.S。是的,我已经知道有一个流浪汉的木偶供应者,但我正在学习木偶的客户/服务器端。
答案 0 :(得分:0)
供应商在第二个(即将到来的)vagrant up
上运行的唯一原因是你特别要求它,所以如果你有类似的东西
config.vm.provision :shell, :inline => "blablabla", :run => 'always'
注意:run => always
这告诉流浪者运行供应商。 vagrant up
(没有任何选项)的输出将是
==> app: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> app: flag to force provisioning. Provisioners marked to run always will still run.
==> app: Running provisioner: shell...