使用Vagrant驱动程序的厨师供应

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Vagrant驱动程序的厨师供应相关的知识,希望对你有一定的参考价值。

我正忙着与Chef Provisioning一起开始,并试图运行我的第一个例子。我有点失落,因为我认为这是一个简单的例子并不适合我,显然我还需要遵循另一个步骤才能继续前进。

正在使用的软件版本是:

Chef Development Kit Version: 3.0.36
chef-client version: 14.1.12
delivery version: master (7206afaf4cf29a17d2144bb39c55b7212cfafcc7)
berks version: 7.0.2
kitchen version: 1.21.2
inspec version: 2.1.72

运行以下命令后:

mkdir chef-repo
cd chef-repo
chef generate app cool-app
mkdir -p cool-app/provision/recipes
nano cool-app/provision/recipes/app-cluster.rb 

将cool-app / provision / recipes / app-cluster.rb内容编辑为以下内容:

require 'chef/provisioning/vagrant_driver'
with_driver 'vagrant'

vagrant_box 'centos-7.1' do
  url 'https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.1/vagrant-centos-7.1.box'
end

with_machine_options :vagrant_options => {
  'vm.box' => 'centos-7.1'
}

machine 'db' do
  recipe 'postgresql'
  converge true
end

num_webservers = 2
machine_batch do
  1.upto(num_webservers) do |i|
    machine "web#{i}" do
      recipe 'apache'
      converge true
    end
  end
end

然后我尝试使用该命令运行该示例

chef provision --no-policy --cookbook ./cool-app/provision/ -r app-cluster

此时,我得到以下输出:

================================================================================
Recipe Compile Error in D:/cooking/provisioning/chef-repo/cool-app/provision/recipes/app-cluster.rb
================================================================================

LoadError
---------
cannot load such file -- chef/provisioning/vagrant_driver

Cookbook Trace:
---------------
  D:/cooking/provisioning/chef-repo/cool-app/provision/recipes/app-cluster.rb:1:in `from_file'

Relevant File Content:
----------------------
D:/cooking/provisioning/chef-repo/cool-app/provision/recipes/app-cluster.rb:

  1>> require 'chef/provisioning/vagrant_driver'
  2:  with_driver 'vagrant'
  3:
  4:  vagrant_box 'centos-7.1' do
  5:    url 'https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.1/vagrant-centos-7.1.box'
  6:  end
  7:
  8:  with_machine_options :vagrant_options => {
  9:    'vm.box' => 'centos-7.1'
 10:  }

System Info:
------------
chef_version=14.1.12
ruby=ruby 2.5.1p57 (2018-03-29 revision 63029) [x64-mingw32]
program_name=C:/opscode/chefdk/bin/chef
executable=C:/opscode/chefdk/bin/chef

Error: cannot load such file -- chef/provisioning/vagrant_driver

有什么我需要做的事情来添加流浪汉司机到厨师食谱。我所遵循的示例似乎没有提及添加vagrant_driver文件的任何内容,所以我认为它会被内置?

答案

在意识到厨师供应 - 流浪者是红宝石的宝石后,我能够检查它是否已安装。我检查了我的宝石库并且它不存在,只有aws和雾变种。

我运行命令chef gem install chef-provisioning-vagrant然后安装了配置器,之后它运行得更好。我想这个配置器已经从ChefDK中删除了,因为我正在看的那本书是写的。

以上是关于使用Vagrant驱动程序的厨师供应的主要内容,如果未能解决你的问题,请参考以下文章

阅读源代码的重要性:如厨师选食材,耍厨具——在Eclipse中怎样查看JavaAndroid源代码

使用 Ruby/Chef Recipe for Vagrant 导入 Mysql 数据库

Vagrant - 供应脚本不更改目录

如何在'vagrant up'上传递参数并将其放在Vagrantfile的范围内?

vagrant网站中box下载方法

获取在 Vagrant VM 上运行的 LAMP 堆栈(在 Windows 7 主机下),完整说明?