저는 요리사 솔로와 함께 역할을하고 있습니다 (11.4.4 및 11.6.0). 조금 혼란스러워.요리사 솔로 - Ruby DSL 또는 JSON의 역할 데이터?
요리사 솔로 실행의 경우 역할이 Ruby 또는 JSON으로 작성되어야합니까?
공식 문서 : About Roles에 따라 역할을 도메인 별 Ruby (DSL) 파일 또는 JSON 데이터로 저장할 수 있습니다.
참고 :
요구 사항은 서버없이 솔로 모드에서 요리사를 실행하는 것입니다 및 역할이 필요한 경우 내 질문은, 역할은 우리가 JSON에 루비를 변환하는 서버가없는 (루비 또는 JSON에 작성해야한다chef-client
은 Ruby for Roles를 사용합니다.이 파일을 Chef Server에 업로드하면 JSON으로 변환됩니다. chef-repo가 새로 고쳐질 때마다 도메인 별 Ruby 파일의 내용이 JSON으로 다시 컴파일되어 서버에 다시 업로드됩니다.
)?
제 생각에는 후자입니다. 누구든지 올바른 대답을 알고 있습니까?
BTW : 역할 파일에 루비와 JSON을 혼합 내가 본 사람 ...
아래 rbenv.rb의 루비 DSL 동등한은 무엇입니까
?예를 들어 우분투에 rbenv를 설치하려면 rbenv
+ ruby-build
개의 요리 책을 실행하십시오. 예상대로
rbenv.json
{
"run_list": ["role[rbenv]"]
}
역할/rbenv.rb
name "rbenv"
description "rbenv + ruby-build"
run_list(
"recipe[rbenv]",
"recipe[ruby_build]"
)
override_attributes(
:rbenv => {
:git_repository => "https://github.com/sstephenson/rbenv.git"
},
:ruby_build => {
:git_repository => "https://github.com/sstephenson/ruby-build.git"
}
)
요리사 솔로 chef-solo -c solo.rb -j rbenv.json -l debug
작업을 실행합니다. 이것은 방화벽 뒤에서 HTTPS를 통해 복제를 수행하기 때문에 가능합니다. (대신 HTTPS의 자식 URL을 통해 복제) 루비 DSL의 여전히 기본 속성을 사용하기 때문에 작동하지 않았다
name "rbenv"
description "rbenv + ruby-build"
run_list "recipe[rbenv]", "recipe[ruby_build]"
# default_attributes ":rbenv" => {":install_prefix" => "/opt"}
override_attributes ":rbenv" => {":git_repository" => "https://github.com/sstephenson/rbenv.git"}, ":ruby_build" => {":git_repository" => "https://github.com/sstephenson/ruby-build.git"}
이하와 같은 역할 rbenv.rb의 버전을 사용하지만
.
나는 내가 DSL 코드에서 몇 가지 실수를했다 그래서 대부분 루비에, 나는 하나의 단순한 이유로 가능한 JSON 형식을 사용하는 것을 선호 ;-)
* git[/opt/rbenv] action sync[2013-09-03T03:44:53+00:00] INFO: Processing git[/opt/rbenv] action sync (rbenv::default line 91)
[2013-09-03T03:44:53+00:00] DEBUG: git[/opt/rbenv] finding current git revision
[2013-09-03T03:44:53+00:00] DEBUG: git[/opt/rbenv] resolving remote reference
================================================================================
Error executing action `sync` on resource 'git[/opt/rbenv]'
================================================================================
Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0], but received '128'
---- Begin output of git ls-remote "git://github.com/sstephenson/rbenv.git" master* ----
STDOUT:
STDERR: fatal: unable to connect to github.com:
github.com[0: 192.30.252.128]: errno=Connection timed out
---- End output of git ls-remote "git://github.com/sstephenson/rbenv.git" master* ----
Ran git ls-remote "git://github.com/sstephenson/rbenv.git" master* returned 128
의견을 보내 주셔서 감사합니다 .-) BTW : 보푸라기가 보푸라기 도구로 사용합니까? –
예,하지만 셰프 요리 책에 체크인하는 것은 아닙니다. 젠킨스 (Jenkins) 직무를 수행하고 가끔 출력물을 검사합니다. –
차가움. 최첨단 DevOps (연속 통합/배달) 도구 체인 LoL을 사용하고있는 것처럼 보입니다. –