首页 文章

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

提问于
浏览
0

我一直在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 回答

  • 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...
    

相关问题