2012-01-26 3 views
1

저는 애플리케이션 요리 책 레시피를 사용하여 java war 파일을 배포하고 있습니다. 내가하고 싶은 것은 WAR md5를 외부 위치 (이 경우에는 우리의 로컬 넥서스 저장소)에서로드하는 것이다. (stdout에 문자열을 출력하고 chef 변수에 해당 값을 사용하는 bash를 실행하는 것처럼) 외부 위치에서 값을로드하려면. 이 bash는 같은외부 호출로 요리사 변수 설정

뭔가 :

export CHEF_VARIABLE = `wget -O - $/URL/WHICH/RETURNS/TEXT/STRING` 

답변

1

사용 루비의 오픈 URI입니다. 예를 들어, 저는 이것을 VirtualBox 설치에 사용하는 요리 책에서합니다. VirtualBox 다운로드 사이트에는 체크섬이 포함 된 텍스트 파일 (sha256sum)이 있습니다.

require 'open-uri' 

sha256sum = "" # retrieve the sha256sums from the virtualbox mirror 
open("#{node['virtualbox']['urlbase']}/SHA256SUMS").each do |line| 
    sha256sum = line.split(" ")[0] if line =~ /#{distfile}/ 
end 

당신은 source on github에서 전체 레시피를 볼 수 있습니다. 노드의 실행 목록에있는 애플리케이션 요리 책의 레시피가 아닌 레서피의 속성으로이 값을 설정했을 것입니다.

+0

감사합니다. 완벽하게 작동합니다. 누가 넥서스에서 최신 SNAPSHOT을 가져 오는지 궁금한 사람 : http://mvn.myrepo.com/service/local/artifact/maven/redirect?g=$groupid&a=$artifact&v=LATEST&r=snapshots&p=war md5 http://mvn.myrepo.com/service/local/artifact/maven/redirect?g=$groupid&a=$artifact&v=LATEST&r=snapshots&p=war.md5입니다. – David