我有三个使用Vagrant创build的虚拟机。 这个虚拟机具有ubuntu / trusty64的框。 我创build了与单个项目相同的Vagrantfile中的所有虚拟机。 configuration它,我使用了Puppet。 目前,三个虚拟文件使用不同的清单。 我想在清单变化时自动化这个过程。 所以,如果我添加一个包到一个清单,我希望在没有我的干预的情况下,stream浪汉根据清单文件中的新变化检测并重新configuration虚拟机。
我是stream浪汉的新手,更多是木偶,因此我的问题是:
那可能吗?
这是我正在开发的项目: https : //github.com/jngd/puppet-tfg
stream浪汉本身不能做到这一点。 你需要什么样的东西就像守卫观察舱单,当他们改变时做“某事”。 我不build议在每次改变时完全重新configuration虚拟机( vagrant destroy; vagrant up ),因为这种方式是疯狂的(运行需要更长的时间,会让你做更多的编辑),但是运行vagrant ssh sudo puppet apply /etc/puppet肯定是可行的。
我不是一个Puppet用户,而是CFEngine的老手。 我确实看到Puppet有一个代理 – 傀儡代理,它可以定期从Puppet master中抽取更新的清单,就像cf-agent / cf-execd在CFE中使用承诺捆绑一样。
我想说,如果你configurationpuppet-agent每十分钟运行一次,它应该拉下最新的变化并运行,更新你的虚拟机。 我不知道Puppet如何处理包(RPM?deb?)pipe理,但是我确定如果你的清单说要安装一个包列表,那么添加一个到列表应该调用一个包安装,以及所有其他configuration指令 – 复制文件,pipe理服务等
我猜你可以将puppet-agent作为守护进程运行,或者作为一个cron工作。
问题的关键是 – 你必须能够从Vagrant系统到达你的Puppet master,所以它们不会更新,除非你连接到你的VPN /networking,并且可以连接到master。