2017-11-21 1 views
1

Chef Automate의 워크 플로 부분을 사용하여 Chef Server에 요리 책을 전달하고 있습니다. 나는 파이프 라인을 통해 요리사 서버에 2 권의 요리 책을 성공적으로 업로드했습니다. 요리사 서버에 요리 책에 종속성이있을 때 확인 단계에서 요리사 워크 플로가 실패합니다.

:
apache 버전 0.2.3
another_test에있다 버전에있다 0.1.1

내가 another_test에 의존 apache를 변경하고 싶어, 그래서 메타 데이터에 대한 업데이트

apache 그리고 버전을 0.2.4으로 올렸습니다.

apache의 메타 데이터 파일은 depends 'another_test' 이고 another_test은 종속 관계가 없습니다. 내가 배달 검토 전화를 걸 때 apache에 대한

Berksfile이

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

이며, 파이프 라인 개막하지만 난 확인 단계의 단위 테스트 단계에서 실패를 얻을.

execute[unit_rspec_apache] action run

이 때문에 실패의

================================================================================
Error executing action `run` on resource 'execute[unit_rspec_apache]' ================================================================================
Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0], but received '1'
---- Begin output of rspec --format documentation --color ----
STDOUT: [2017-11-21T14:06:57+00:00] ERROR: Connection refused connecting to https://localhost/universe , retry 1/5
[2017-11-21T14:07:02+00:00] ERROR: Connection refused connecting to https://localhost/universe , retry 2/5
[2017-11-21T14:07:07+00:00] ERROR: Connection refused connecting to https://localhost/universe , retry 3/5
[2017-11-21T14:07:12+00:00] ERROR: Connection refused connecting to https://localhost/universe , retry 4/5
[2017-11-21T14:07:17+00:00] ERROR: Connection refused connecting to https://localhost/universe , retry 5/5

An error occurred in a `before(:suite)` hook. Failure/Error: raise NoSolutionError.new(demands, e)

Berkshelf::NoSolutionError: Unable to satisfy constraints on package another_test, which does not exist, due to solution constraint (apache = 0.2.4). Solution constraints that may result in a constraint on another_test: [(apache = 0.2.4) -> (another_test >= 0.0.0)]
Missing artifacts: another_test
Demand that cannot be met: (apache = 0.2.4)
Unable to find a solution for demands: apache (0.2.4)

, 아파치 0.2.4의 새로운 버전은 요리사 서버에 업로드되지 않습니다.

편집 : 나는 슈퍼마켓 의존성 양식을 사용하여 테스트했으며 검증 단계를 통과했습니다. 그래서 나는 depends 'java'을 아파치에 넣었고, 그것은 잘 업로드된다. 문제는 요리사 서버에서 오는 요리 책에 의존 할 때 시작됩니다.

EDIT 2 : 나는 러너에 로그인하여 knife cookbook list을 할 수 있습니다. 이것은 러너가 요리사 서버에 접속하여 거기에있는 요리 책을 볼 수 있다는 것을 나에게 증명한다. 나는 또한 주자 노드에서 /var/opt/delivery/workspace/.chef/knife.rb 파일을 편집했다 source :chef_server

+0

워크 플로를 사용하지 않은 경우 응답으로 게시하고 싶지 않지만 Workflow가 Chef Server에 대해 알지 못해 Berks의'chef_server' 소스가 실패한 것처럼 보입니다 (최소한 그 단계가 아님)). knife.rb config를 어떻게 설정했는지 알고 싶습니까? – coderanger

+0

이것은 이미 설치되어있는 자체 knife.rb가있는 'runner'노드에서 실행됩니다. 그 칼 파일은 제 요리사 서버에 대해 알고 있습니다. – James

+0

당신이 뭔가있는 것처럼 보입니다. 주자를위한 칼 .rb는 chef_server URL이 무엇인지 알지 못합니다 – James

답변

0

대신에 source 'https://<full-url-to-chef-server/organizations/myorg'을 가지고 apache의 Berksfile을 변경 시도했다. 이 줄을 파일 하단에 추가했습니다 : chef_server_url 'https://chef-server/organizations/myorg'.

이 칼 설정 파일은 러너 노드의 dbuild 사용자가 사용합니다. 이 파일을 읽어 요리사 서버의 URL을 결정합니다.

+0

chef_server_url은 이미 automate-ctl install-runner 명령에 의해 정확하게 채워 져야하기 때문에 이상하다. – Tricky

관련 문제