2017-11-21 18 views
0

Vagrant와 Chef Solo가있는 Ubuntu 머신을 만들려고합니다. 그래서 간단한 Vagrantfile과 간단한 레시피를 만들어 테스트했습니다.Vagrant up 일 때 Homebrew 사용자 오류

레시피 컴파일 오류 /tmp/vagrant-chef/f10d707023a689f28124f5dcfaadbc2a/cookbooks/homebrew/libraries/helpers.rb

==> 기본 에서 : :하지만 다음과 같은 오류 메시지가 직면하고있어 나가서 설명하자면 NameError를
==> 기본값 : 초기화되지 않은 상수 요리사 :: 믹스 인 :: HomebrewUser
==> 기본값 : 요리 책 추적 :
==> 기본값 :/tmp를/방랑 - 요리사/f10d707023a689f28124f5dcfaadbc2a/요리 책/사제/라이브러리/헬퍼. rb : 23 : in
<class:Chef12HomebrewUser>'<br/> ==> default: /tmp/vagrant-chef/f10d707023a689f28124f5dcfaadbc2a/cookbooks/homebrew/libraries/helpers.rb:22:in<br/> '
==> 기본값 :
==> 기본값 : 관련 파일 내용 :
==> 기본값 : /tmp/vagrant-chef/f10d707023a689f28124f5dcfaadbc2a/cookbooks/homebrew/libraries/helpers.rb :
==> 기본값 :
==> default : 16 : # 라이센스에 따라 배포 된 모든 권리는 명시 적 또는 묵시적이든 어떠한 종류의 보증 또는 조건없이 "있는 그대로"의 형태로 제공됩니다 (
==> default : 17 : #).
==> 기본값 : 18 : # 사용 권한 관련 특정 언어에 대한 라이센스 및
==> 기본값 : 19 : # 라이센스에 따른 제한 사항을 참조하십시오.
==> 기본 : 20 #
==> 기본 : 21 :
==> 기본 : 22 : 클래스 Chef12HomebrewUser
==> 기본 : 23 >> 포함 요리사 :: 믹스 인 :: HomebrewUser
==> 기본 : 24 : 단부
==> 기본 : 25 :
==> 기본 : 26 : 모듈 브루
==> 기본 : 27 : 자기 # 1 rubocop 연장 : ModuleFunction 비활성화
==> 디폴트 : 28 :
==> 기본값 : 29 : def가 존재합니까?
==> 기본값 : 30 : Chef :: Log.debug ('자작 나무 이진이 있는지 확인')
==> 기본값 : 31 : : File.exist? ('/ usr/local/bin/양조 ')
==> 기본값 : 32 : 끝
==> 기본값 : 아래

내 파일이 있습니다 :

Vagrantfile

Vagrant.configure(2) do |config| 
    config.vm.box = "ubuntu/trusty64" 

    config.berkshelf.enabled = true 
    config.berkshelf.berksfile_path = "./cookbooks/teste/Berksfile" 

    config.vm.provision "chef_solo" do |chef| 
    chef.install = false 
    chef.add_recipe "teste" 
    end 
end 
,691,363,210

Berksfile

source 'https://supermarket.chef.io' 

metadata 

default.rb

include_recipe 'apt::default' 
include_recipe 'java::default' 

attributes.rb

default['java']['install_flavor'] = 'openjdk' 
default['java']['jdk_version'] = '8' 
default['java']['accept_license_agreement'] = true 

메타 .내 구성에 대한

name 'teste' 
maintainer 'The Authors' 
maintainer_email '[email protected]' 
license 'All Rights Reserved' 
description 'Installs/Configures teste' 
long_description 'Installs/Configures teste' 
version '0.1.0' 
chef_version '>= 12.1' if respond_to?(:chef_version) 

depends 'apt' 
depends 'java' 

경우 rb :

Chef Development Kit Version: 2.3.4 
chef-client version: 13.4.19 
berks version: 6.3.1 
kitchen version: 1.17.0 
inspec version: 1.36.1 

Vagrant 2.0.1 

macOS Sierra (10.12.6) 
+0

요리사 출력 상단에 사용중인 요리사 솔로 버전을 표시해야합니다. 필자는 그것이 12.7 이전의 것인데 이는 현재 'homebrew'요리 책의 최신 버전에 대한 최소 요구 사항이라고 생각합니다. – coderanger

+0

네 말이 맞다. 메시지에는 쉐프 11.8.2_이 나와있다. 하지만 _chef-solo -v_는 Chef 버전으로 _Chef : 13.6.4_를 반환합니다. –

+0

그래서 기본 hashicorp 우분투 이미지를 사용하고 있습니다. 당신은 그 상자의 이전 버전을 가지고있을 수도 있습니다.이 상자는 Vagrant가 즉시 설치하도록하기보다 요리사가 미리 설치되어 있습니다. 그렇다면 상자를 로컬에서 삭제하고 다시 다운로드하도록 허용하십시오. – coderanger

답변

0

내가 고칠 수있는 config.omnibus.chef_version = 추가 : Vangratfile에 최신합니다. 그것은 매번마다 매번 최신 버전을 사용하게됩니다.