我是 Puppet 和 vagrant 的新手,但我正在开发我自己的 Puppet 清单,旨在设置一个 vagrant box。也就是说,puppet 清单在主机上我的 Vagrant 目录中,而 vagrant 正在调用 puppet——没有 puppet 服务器。
问题是,我的工作流程是:
while(not working as desired) {
vagrant destroy
amend manifest
vagrant up
}
……这意味着要等待很多时间。
什么是更好的工作方式?
您还可以通过运行重新应用清单更改
所以你的工作流程变成
你为什么要重新创建虚拟机?为什么不 ssh 进入它,并在清单上工作直到它工作?
顺便说一句,
puppet parser validate
这是在测试 puppet 正在做什么之前捕获主要错误的好方法。就个人而言,我转到一个干净的 VM,或者一个 VM,它是我想要更改的任何内容的副本,将任何需要的模块复制到那里
/root/modules
,创建一个新模块,然后运行它:其中包括任何必要的东西,我的模块在标准模块配置中
file.pp
的子目录中。/root/modules
现在,有些情况下创建虚拟机是基础,例如进行初始配置或验证您目前的配置。但我认为没有理由一直在新创建的虚拟机上完成所有工作。
我建议安装sahara。然后你的工作流程变成:
我更喜欢做回滚而不是做提交,然后将你所做的更改添加到你喜欢的配置脚本(puppet、chef、ssh 等)