代码之家  ›  专栏  ›  技术社区  ›  JL Peyret

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

  •  0
  • JL Peyret  · 技术社区  · 7 年前

    我最近与 vagrant-berkshelf 无法在现有计算机上可靠同步厨师烹饪书。而且,基本上,在研究变通方法时,我会看到如下情况:

    流浪汉Berkshell不受欢迎,改用测试厨房 .

    我的用例是 Vagrantfile s、 用于构建VM和DigitalOcean Drops,它们是手写的,仅使用Chef来配置VM。我绝对是以用户的身份接触厨师,而不是烹饪书的作者或测试者。

    所以,我的情况是 Vagrant -> Chef Chef -> Vagrant .

    当看到 Kitche-Vagrant ,我看到:

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

    我的问题是:如果我的工作流程依赖于手写、复杂、飘忽不定的文件,那么我是否可以继续使用Chef作为供应员,而不必依赖于 流浪汉Berkshell ?

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

    • 破坏测试厨房配置以使用我的退出Vagrantfile。我担心这不是这个工具的意图,也不会有好的结局。

    • 使用 chef.cookbooks_path 属性,并让它代替vagrant Berkshell。

    • 关闭供应器并使用Vagrant->Ansible。

    下面的Vagrantfile有些简化,但要点是 流浪者档案负责,厨师只负责提供 .

    # -*- 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
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   coderanger    7 年前

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