当使用流浪汉的傀儡时,是否有必要在第一个流浪者之后用--no-provision运行下一个流浪者?

时间:2017-01-24 00:03:55

标签: linux vagrant puppet provisioning

我在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。是的,我已经知道有一个流浪汉的木偶供应者,但我正在学习木偶的客户/服务器端。

1 个答案:

答案 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...