我们正在研究从源代码构建 PHP 的厨师食谱。但是,每次我们对配方进行更改并且想要再次运行它时,都需要很长时间(大约 20 分钟)。
我们一直在做的是进行更改,然后使用:
vagrant destroy
其次是:
vagrant up
如果我们能以某种方式重新运行我们正在尝试更新的单个配方,那就太好了。
有谁知道我们怎么能做到这一点?或者 vagrant 如何确定我们的 php 配方已经安装/执行?
我们正在研究从源代码构建 PHP 的厨师食谱。但是,每次我们对配方进行更改并且想要再次运行它时,都需要很长时间(大约 20 分钟)。
我们一直在做的是进行更改,然后使用:
vagrant destroy
其次是:
vagrant up
如果我们能以某种方式重新运行我们正在尝试更新的单个配方,那就太好了。
有谁知道我们怎么能做到这一点?或者 vagrant 如何确定我们的 php 配方已经安装/执行?
vagrant provision
应该为你做这个。厨师应该只负责运行需要运行的东西……比如改变食谱。
您可以使用:
vagrant provision
这将重新运行配置步骤,该步骤执行vagrant ssh
并启动 Chef。
如果您使用的是 Chef Server 和 chef-client,您需要在进行本地修改后使用刀将食谱上传到服务器。然后 vagrant 机器上的 chef-client 将下载更改的文件。
如果您使用 Chef Solo,您可以与 VM 共享文件夹,因此所做的更改将立即被拾取,而不必将它们复制到 VM。