不推荐使用vagrant Berkshellf,是否有可能从vagrant驱动构建,而Chef仅作为供应器?

不推荐使用vagrant Berkshellf,是否有可能从vagrant驱动构建,而Chef仅作为供应器?,vagrant,chef-infra,Vagrant,Chef Infra,最近,我遇到了一些问题,流浪汉berkshelf无法在现有机器上可靠地同步厨师烹饪书。而且,基本上,在研究变通方法时,我看到如下情况: 不推荐使用流浪汉,改用测试厨房 我的用例是,我有用于构建VM和DigitalOcean Drops的Vagrant文件,这些文件是手工编写的,只使用Chef来配置VM。我绝对是以用户的身份接触厨师,而不是烹饪书的作者或测试者 所以,我是流浪者->厨师,而不是厨师->流浪者 当我看的时候,我看到: kitchen的kitchen vagrant驱动程序为沙盒目录中

最近,我遇到了一些问题,流浪汉berkshelf无法在现有机器上可靠地同步厨师烹饪书。而且,基本上,在研究变通方法时,我看到如下情况:

不推荐使用流浪汉,改用测试厨房

我的用例是,我有用于构建VM和DigitalOcean Drops的Vagrant文件,这些文件是手工编写的,只使用Chef来配置VM。我绝对是以用户的身份接触厨师,而不是烹饪书的作者或测试者

所以,我是流浪者->厨师,而不是厨师->流浪者

当我看的时候,我看到:

kitchen的kitchen vagrant驱动程序为沙盒目录中的每个kitchen实例生成一个vagrant文件

我的问题是:如果我的工作流程依赖于手写的、复杂的、流动的文件,我是否可以继续使用Chef作为供应员,而不必依赖于流动的文件

我看到的一些可能的替代方案是:

破坏测试厨房配置以使用我的文件。我担心这不是这个工具的目的,也不会有好的结局

在vagrant中使用chef.cookbooks_path属性,并让它代替vagrant

关闭供应器,使用say Vagrant->Ansible

下面的流浪者档案有些简化,但要点是流浪者档案是负责人,厨师只是用来提供食物


它本身并没有被弃用,但它不再有维护者,因此强烈建议不要使用它。您描述的工作流没有替代品。很抱歉如果您有兴趣接任维护人员,我可以让您与团队联系。

谢谢您的澄清。如果是Python,我可能会接受你的邀请,学习厨师的内部知识来帮助你,但我在Ruby方面真的很难。而且,在厨师方面也不是很好,尽管我从使用它中学到了很多,到目前为止它对我非常有帮助。但有一个问题:你知道chef.cookbook\u path在《流浪汉》中提供了什么吗?它似乎应该引入烹饪书,即使我需要在外部运行berks update来保持它们的同步。我会保留这个问题,以防其他人也参与进来,但我倾向于接受你的答案。你可以做的是运行一个berks供应商,然后将chef.cookbook_路径指向生成的文件夹。这基本上就是插件内部所做的,只是使用了更多的魔法和一些时髦的共享文件夹。我试试看。
# -*- mode: ruby -*-
# vi: set ft=ruby :

#...grab some variables from my host environment...
DJANGO_SECRET_KEY = ENV['BUILD_DJANGO_SECRET_KEY']

Vagrant.configure('2') do |config|

  config.vm.define "myserver" do |config|
      config.vm.provider :digital_ocean do |provider, override|
        override.ssh.private_key_path = digoconf.private_key_path
        override.vm.box_url = "https://github.com/devopsgroup-io/vagrant-digitalocean/raw/master/box/digital_ocean.box"
        provider.token = digoconf.TOKEN
        ...
      end

      #had chef_client before, that worked too.
      config.vm.provision "chef_zero" do |chef|

        chef.log_level = "info"

        #I haven't tested these out
        #chef.cookbooks_path = ["../community/cookbooks","../.berkshelf/cookbooks"]

        env_for_chef = " DJANGO_SECRET_KEY='#{DJANGO_SECRET_KEY}'"
        chef.binary_env = env_for_chef

        chef.environment = "digitalocean"
        chef.add_recipe "base::install"
      end
  end
end