10

私は Packer を使い始めたばかりで、ビルドが失敗する例がいくつかありました。ボックスにログインして原因を調査したいと思っています。packer loginただし、シェルを提供するためのコマンドまたは同様のコマンドはないようです。代わりに、調査する前に、実行が終了してボックスが破棄されます。

--debug フラグを使用して各段階で実行を一時停止できることはわかっていますが、実行に失敗した後 (およびクリーンアップの前) に一時停止し、デバッグが完了した後にクリーンアップを実行する方法があるかどうか知りたいです。 .

ありがとう。

4

5 に答える 5

11

これは、 に対する私の最大の迷惑でしたpacker。ありがたいことにpacker build、オプション-on-errorを提供するオプションが追加されました。

packer build -on-error=ask ...救助へ。

パッカービルドドキュメントから:

-on-error=cleanup(デフォルト), -on-error=abort, -on-error=ask- ビルドが失敗した場合の動作を選択します。cleanup は、前の手順の後にクリーンアップし、一時ファイルと仮想マシンを削除します。abort は、クリーンアップを行わずに終了します。これには、次のビルドを使用する必要がある場合があります-forceaskプロンプトが表示され、失敗したステップのクリーンアップ、中止、または再試行を決定するのを待ちます。

于 2017-03-29T22:56:14.940 に答える
7

Packer を広範囲に使用してきたので、 --debug フラグが最も役に立ちます。プロセスが一時停止したら、(現在のディレクトリにある) キーを使用してボックスに SSH で接続し、何が起こっているかを把握します。

于 2015-08-18T00:41:48.403 に答える
2

ええ、私がこれを処理する方法は、失敗したステップの後にスクリプト インライン プロビジョナーを長時間スリープ状態にすることです。その後、ボックスに ssh して、何が起きているかを確認できます。確かにデバッグ フラグは便利ですが、packer ビルドをリモートで実行している場合 (私は jenkins で実行しています)、そこに座ってボタンを押すことはできません。

私は、ビルドの外側にパッキングしているすべてのものに対してテストを実行しようとしています - Chef プロビジョナーを使用して、パッキングする前にすべてのキッチンテストを行いました。packer の実行中に packer 以外のものをデバッグしようとするのは非常に面倒なことです。

于 2016-04-25T04:45:33.230 に答える
0

これに関する情報を自分で調べていると、Packer に関する多数のバグ レポートや機能リクエストに出くわしました。

どうやら、1 年前に誰かが virtualbox および vmware ビルダーに新機能を追加したようです ( https://github.com/mitchellh/packer/issues/409 )が、メインにはマージされていません。

別のバグ ( https://github.com/mitchellh/packer/issues/1687 ) で、彼らは --debug に追加機能を追加することを検討していましたが、行き詰まっているように見えました。

于 2015-04-15T15:17:15.607 に答える