2015-01-06 3 views
3

패커를 시작하기에 앞서 빌드가 실패하고 원인을 조사하기 위해 상자에 로그인하는 경우가 여러 번있었습니다. 그러나, 나에게 쉘을주는 packer login 또는 유사한 명령이없는 것 같습니다. 그 대신에 조사가 끝나기 전에 실행이 종료되고 상자가 찢어집니다.실패한 패커 빌드 문제 해결

--debug 플래그를 사용하여 각 단계에서 실행을 일시 중지 할 수 있음을 알고 있지만, 실패한 실행 (및 정리 전) 후에 일시 중지하고 이후에 정리를 수행하는 방법이 있다면 골동품입니다. 내 디버깅이 완료되었습니다.

감사합니다.

+0

Tejay - 해결 방법을 찾으셨습니까? 나는 또한 똑같은 것을 궁금해하고있다. –

+0

난 그냥 --debug를 사용한다. –

+0

예 - 또한 --debug를 사용하기 만합니다. 조금 지루한데도 필요한 것을하니, 확실히 개선 될 수 있습니다. – gsaslis

답변

0

자신에 대한 정보를 찾는 동안 Packer에 대한 수많은 버그 리포트/기능 요청을 조사했습니다.

누군가가 1 년 전 (https://github.com/mitchellh/packer/issues/409) 가상 박스 및 VM웨어 빌더에 새로운 기능을 추가했지만 메인으로 병합되지는 않았다.

또 다른 버그 (https://github.com/mitchellh/packer/issues/1687)에서 그들은 --debug에 추가 기능을 추가하고자했으나 그 기능은 중단 된 것으로 보입니다.

3

Packer를 광범위하게 사용하면 --debug 플래그가 가장 유용합니다. 일단 프로세스가 일시 중지되면 (현재 dir에서) 키를 사용하여 SSH를 상자에 넣고 무슨 일이 일어나는지 알아냅니다. 패커 빌드가 빌드 프로세스가 붙어있어,하지만이 순서의 확인을하고있다, 첫 번째 검사를 실패하는 경우

0

:

  1. 부트 적절한 사람을 명령 있습니까?
  2. 미리 설정이 정상입니까?
  3. 경우 1.과 2. 그것은 상자가 부팅 의미 확인 다음은 로그인하고, OK입니다 : SSH 키, 포트, ... 프로비저닝 스크립트 내에서
  4. 마지막으로 모든 문제
1

그래, 내가 처리하는 방법은 실패한 단계 후에 스크립트 인라인 프로 그래머에 긴 수면을 두는 것이다. 그런 다음 상자 위로 ssh하고 무엇이 일어나는지 볼 수있다. 확실히 디버그 플래그는 유용하지만 패커 빌드를 원격으로 실행하는 경우 (jenkins에서 수행함) 실제로 거기에 앉아서 버튼을 누를 수는 없습니다.

나는 건물 밖에서 포장하고있는 모든 물건에 대해 시험을 해보려고한다. - 요리사를 사용하여 나는 포장되기 전에 모든 것을 다 먹어 치운 주방 검사를 가지고있다. 패커가 돌아 다니는 동안 패커 외에 다른 것을 시도하고 디버깅하는 것은 고통 스럽습니다.

3

이것은 packer으로 가장 성가심을 나타 냈습니다. 고맙게도 packer build에는 이제 옵션을 제공하는 -on-error 옵션이 있습니다.

packer build -on-error=ask ...을 구하십시오. packer build 문서에서

:

-on-error=cleanup (기본값), -on-error=abort, -on-error=ask은 - 빌드가 실패했을 때 수행 할 작업을 선택합니다. 정리는 이전 단계 후에 정리하고 임시 파일과 가상 컴퓨터를 삭제합니다. 중단없이 종료하면 -force을 사용하도록 다음 빌드가 필요할 수 있습니다.ask은 프롬프트를 표시하고 실패한 단계를 정리, 중단 또는 재 시도하기로 결정할 때까지 기다립니다.

관련 문제