Vagrant / puppet 工作流程

Vagrant / puppet 工作流程

我是 puppet 和 vagrant 的新手,但我正在开发自己的 Puppet 清单,旨在设置 vagrant box。也就是说,puppet 清单位于主机上的 Vagrant 目录中,而 vagrant 正在调用 puppet - 没有 puppet 服务器。

事实上,我的工作流程是:

 while(not working as desired) {
     vagrant destroy
     amend manifest
     vagrant up
 }

...这意味着要等待很长时间。

有什么更好的工作方法?

答案1

为什么你要不断重建虚拟机?为什么不通过 ssh 进入虚拟机,然后处理清单直到它正常工作?

顺便说一句,puppet parser validate这是一种在测试傀儡正在做什么之前发现主要错误的好方法。

就我个人而言,我会去一个干净的虚拟机,或者一个我想要更改的虚拟机的副本,将任何所需的模块复制到那里,/root/modules创建一个新模块,然后运行以下命令:

puppet apply --modulepath /root/modules file.pp

其中包括所有必要的内容,并且我的模块位于标准模块配置中file.pp的子目录内。/root/modules

现在,在某些情况下,创建虚拟机是至关重要的,例如进行初始配置,或验证您目前的配置。但我认为没有理由一直在新创建的虚拟机上完成所有工作。

答案2

您还可以通过运行重新应用清单更改

vagrant provision

因此你的工作流程就变成了

vagrant up
while(not working as desired) {
 amend manifest
 vagrant provision
}

答案3

我建议安装撒哈拉。那么你的工作流程就变成:

vagrant up
vagrant sandbox on
vagrant ssh
*do some stuff that doesn't work
vagrant sandbox rollback
vagrant ssh
* do some stuff that does work
vagrant sandbox commit

我更喜欢执行回滚,然后将您所做的更改添加到您首选的配置脚本(puppet、chef、ssh 等)中,而不是执行提交

相关内容