【问题标题】:Chef Provisioning with Vagrant Driver使用 Vagrant 驱动程序进行厨师配置
【发布时间】:2018-09-06 00:05:50
【问题描述】:

我很想开始使用 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 文件的内容,所以我认为它会被内置?

【问题讨论】:

    标签: vagrant chef-infra chef-provisioning


    【解决方案1】:

    在意识到 chef-provisioning-vagrant 是一个红宝石宝石后,我能够检查它是否已安装。我检查了我的 gem 库,它不存在,只有 aws 和fog 变体。

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

    【讨论】:

    • Chef-provisioning 通常已从 ChefDK 中逐步淘汰。如果您仍在使用它,我建议您制定自己的依赖管理解决方案(可能是捆绑器)。
    • 感谢@coderanger - 厨师学习变得非常沮丧。我开始研究厨师供应,因为它应该是最受欢迎的方式。所有的书都太老了,他们都没有提到它,我正在查看环境、角色、策略文件,然后我最终结束了配置。我看到的 Bundler 用于安装 ruby​​ gems?
    • 听起来像 Foreman 或 Terraform 是当前的推荐,但它会持续多久??
    • Terraform 是一个可靠的项目,我个人建议不要使用主厨配置,但生态系统流量不是问题,只有一个适合所有人的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多