厨师;运行单食谱的最简单方法

时间:2017-07-31 14:06:20

标签: chef

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

有什么想法可以更简单地运行烹饪书吗?

2 个答案:

答案 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测试来证明您的食谱按预期工作。非常值得学习。