2017-07-31 134 views
0

我很想知道在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

你所展示的是一种选择,但人们常用的路线是使用Test Kitchen代替。

0

正如@coderanger建议你最好劝学测试厨房是如何工作的

它配备了厨师开发套件

首先生成一个名为“演示”菜谱

chef generate cookbook demo 

这将自动创建一个使用无业游民(引擎盖下,并隐藏起来),以针对选择运行厨师试厨文件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测试来证明你的食谱工作正常。值得学习。