我很想知道在VM中运行单个或多个烹饪书的最佳方式是什么,看看会发生什么。
VM应该是Virtualbox实例,并且可以使用vagrant。
如果我简单地使用流浪汉,我可以像Vagrantfile
那样做。
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = ["site-cookbooks", "cookbooks"]
chef.add_recipe ‘my_cookbook'
end
end
有什么想法可以更简单地运行烹饪书吗?
答案 0 :(得分:0)
你展示的是一个选项,但人们常用的路线是使用Test Kitchen。
答案 1 :(得分:0)
根据@coderanger的建议,您最好了解测试厨房的工作原理
它与Chef开发套件捆绑在一起
首先生成一本名为“demo”的食谱
chef generate cookbook demo
这将自动创建一个测试厨房文件,该文件使用vagrant(在引擎盖下并隐藏起来)来运行厨师,以选择Ubuntu或CentOS。这使您可以针对多个目标平台验证烹饪书的逻辑。
$ cd demo
$ kitchen list
Instance Driver Provisioner Verifier Transport Last Action Last Error
default-ubuntu-1604 Vagrant ChefZero Inspec Ssh <Not Created> <None>
default-centos-73 Vagrant ChefZero Inspec Ssh <Not Created> <None>
那么......如何针对ubuntu VM运行Chef cookbook?
$ kitchen converge default-ubuntu-1604
但是,只有它开始运行才能运行食谱。更有力的是,您可以编写Inspec测试来证明您的食谱按预期工作。非常值得学习。