Устранение неполадок с неудачной сборкой упаковщика

Я только начинаю работать с Packer, и у меня было несколько случаев, когда моя сборка не удалась, и я бы с удовольствием зашел в систему, чтобы выяснить причину. Однако, похоже, нет packer login или подобной команды, чтобы дать мне оболочку. Вместо этого прогон просто обрывается и сносит коробку, прежде чем я успеваю провести расследование.

Я знаю, что могу использовать флаг --debug для приостановки выполнения на каждом этапе, но мне любопытно, есть ли способ просто приостановить после неудачного запуска (и до очистки), а затем запустить очистку после завершения моей отладки. .

Спасибо.


person Tejay Cardon    schedule 06.01.2015    source источник
comment
Tejay – Вы когда-нибудь находили решение этой проблемы? Мне тоже интересно то же самое.   -  person Joe the Coder    schedule 15.04.2015
comment
Неа. Я просто использую --debug.   -  person Tejay Cardon    schedule 15.04.2015
comment
да - я также просто использую --debug. Делает то, что вам нужно, хотя это немного утомительно, и его определенно можно улучшить.   -  person gsaslis    schedule 14.01.2016


Ответы (5)


Это было моим главным раздражением с packer. К счастью, у packer build теперь есть опция -on-error, которая дает вам варианты.

packer build -on-error=ask ... на помощь.

Из сборки упаковщика:

-on-error=cleanup (по умолчанию), -on-error=abort, -on-error=ask — выбор действий при сбое сборки. cleanup выполняет очистку после предыдущих шагов, удаляя временные файлы и виртуальные машины. abort завершается без какой-либо очистки, что может потребовать, чтобы следующая сборка использовала -force. ask представляет подсказку и ждет, пока вы решите очистить, прервать или повторить неудачный шаг.

person Mike D    schedule 29.03.2017

При активном использовании Packer флаг --debug оказался наиболее полезным. Как только процесс приостановлен, вы подключаетесь по SSH к ящику с ключом (в текущем каталоге) и выясняете, что происходит.

person Ken Brittain    schedule 18.08.2015

Да, я справляюсь с этим следующим образом: после неудачного шага я включаю длительный сон встроенного в сценарий средства подготовки, затем я могу подключиться к ящику по ssh и посмотреть, что случилось. Конечно, флаг отладки полезен, но если вы запускаете сборку упаковщика удаленно (я делаю это на jenkins), вы не можете сидеть и нажимать кнопку.

Я стараюсь проводить тесты всего, что упаковываю вне сборки — с помощью Chef Provisioner я проверяю все на кухне до того, как оно будет упаковано. Попытка отлаживать что-либо, кроме упаковщика, во время работы упаковщика — это адская боль.

person Ele Munjeli    schedule 25.04.2016
comment
Привет, Эле, как вы можете подключиться по ssh без флага --debug, который выводит информацию о подключении, пароли, закрытые ключи и т. д.? - person xpt; 30.04.2020

При поиске информации об этом я наткнулся на многочисленные отчеты об ошибках/запросы функций для Packer.

Судя по всему, год назад кто-то добавил новые функции в сборщики виртуальных боксов и vmware (https://github.com/mitchellh/packer/issues/409), но он не был объединен с main.

В другой ошибке (https://github.com/mitchellh/packer/issues/1687 ), они рассматривали возможность добавления дополнительных функций в --debug, но это, похоже, застопорилось.

person Joe the Coder    schedule 15.04.2015

Если сборка Packer дает сбой, сначала проверьте, где процесс сборки застрял, но выполняйте проверку в следующей последовательности:

  1. Являются ли команды загрузки подходящими?
  2. Предустановленная конфигурация в порядке?
  3. Если 1. и 2. в порядке, значит бокс загрузился и дальше нужно проверить логин: ключи SSH, порты,...
  4. Наконец, любые проблемы в сценариях подготовки
person Doka    schedule 17.01.2016