2016-03-08 10 views
0

我需要一个用于构建python cli包的综合构建器框。如何使用厨师在流浪的centos box上设置综合建筑环境?

我想用this cookbook,在this vagrantbox

我正在以此为根,因为综合性的安装程序需要在/ opt检查使用数据的东西

我vagrantfile看起来是这样的:

# -*- mode: ruby -*- 
# vi: set ft=ruby : 
Vagrant.configure(2) do |config| 
    config.vm.box = "centos65opscode" 
    # config.vm.provision "chef_solo" do |chef| 
    # chef.add_recipe "omnibus" 
    # end 
    config.librarian_chef.cheffile_dir = "chef" 
    config.vm.provision :chef_solo do |chef| 
    chef.cookbooks_path = "chef/cookbooks" 
    chef.add_recipe "omnibus" 
    end 
end 

因为流浪者的图书管理员厨师插件似乎没有做任何事情,所以我手动添加了所有依赖项:

我收到此错误:

==> default: NameError 
==> default: --------- 
==> default: uninitialized constant Chef::Sugar::DSL 
==> default: 
==> default: Cookbook Trace: 
==> default: --------------- 
==> default: /tmp/vagrant-chef/745d120a7b8f9ecb5d8e9f185062c794/cookbooks/languages/libraries/_helper.rb:31:in `<module:Helper>' 
==> default: /tmp/vagrant-chef/745d120a7b8f9ecb5d8e9f185062c794/cookbooks/languages/libraries/_helper.rb:30:in `<module:Languages>' 
==> default: /tmp/vagrant-chef/745d120a7b8f9ecb5d8e9f185062c794/cookbooks/languages/libraries/_helper.rb:29:in `<top (required)>' 
==> default: Relevant File Content: 
==> default: ---------------------- 
==> default: /tmp/vagrant-chef/745d120a7b8f9ecb5d8e9f185062c794/cookbooks/languages/libraries/_helper.rb: 
==> default: 
==> default: 24: rescue LoadError 
==> default: 25: Chef::Log.warn 'chef-sugar gem could not be loaded.' 
==> default: 26: end 
==> default: 27: 
==> default: 28: # Various code vendored from omnibus cookbook 
==> default: 29: module Languages 
==> default: 30: module Helper 
==> default: 31>>  include Chef::Sugar::DSL if Chef.const_defined?('Sugar') 
==> default: 32: 
==> default: 33:  # 
==> default: 34:  # Performs a `File.join` but ensures all forward slashes are replaced 
==> default: 35:  # by backward slashes. 
==> default: 36:  # 
==> default: 37:  # @return [String] 
==> default: 38:  # 
==> default: 39:  def windows_safe_path_join(*args) 
==> default: 40:  ::File.join(args).gsub(::File::SEPARATOR, ::File::ALT_SEPARATOR) 

回答

0

您是否尝试过使用vagrant chef provisioning

Vagrant.configure("2") do |config| 
    config.vm.provision "chef_solo" do |chef| 
    chef.add_recipe "omnibus" 
    end 
end 

,并添加github上omnibus项目在cookbooks目录像

. 
|-- Vagrantfile 
|-- cookbooks 
| |-- omnibus 
|  |-- recipes 
|   |-- default.rb 
|  |-- ... 
+0

因此,为了使该我需要厨师在盒子上,所以我有一个与厨师的盒子: http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/o pscode_centos-6.5_chef-provisionerless.box 〜的/ dev/ENVS/centos65opscode猫Vagrantfile # - * - 模式:红宝石 - * - # 六:一套FT =红宝石: Vagrant.configure(2)做|配置| config.vm.box =“centos65opscode” config.vm.provision“chef_solo”do | chef | chef.add_recipe“omnibus” end end 〜/ dev/envs/centos65opscodetree 。 ├──流浪文件 └──食谱 └──总括 | - ... –

+0

==>默认:[2016-03-09T09:34:09 + 00:00]错误:Cookbook 7-zip not找到。如果你正在从另一本食谱中加载7-zip,请确保你在你的元数据中配置依赖关系。 ==>默认:[2016-03-09T09:34:10 + 00:00]致命错误:Chef :: Exceptions :: ChildConvergeError:厨师跑步过程退出失败(退出代码1) 为什么我需要7-zip,如果这是Linux? 7-zip是一个windows的食谱。 另外,在厨师超市里,下载7-zip食谱的文件不是一个zip文件,也不是一个tar文件,不确定那是什么......所以我不能提取它并将它放在相同的位置夹。 –

+0

有没有办法告诉厨师在线获取这种依赖关系?同样的方式来获取pypi的python依赖关系吗? –