🚏

PackerのBuild時のデバッグ方法

2022/02/02に公開

この記事は?

Packerでイメージのビルドをしている時に、なんかうまくいかないということがちょいちょいあると思います。

そういう時にどういうふうにデバッグするといいのか調べてみました。

こうすればええんやで

こういう時に一番役に立つのは公式サイト

https://www.packer.io/docs/debugging

AWSやGCPで利用するイメージを作成するリモートビルドでは -debug のオプションを付けると並列化が無効になりデバッグモードが有効になるようです

実際にpacker buid -debugを実行すると以下のように、各stepを行ったあと一時停止して、続けたければエンターを押せという感じで対話的に一つ一つの動作を対話的に確認できるようになります。

==> BUILDERS_NAME: Checking image does not exist...
==> BUILDERS_NAME: Pausing after run of step 'StepCheckExistingImage'. Press enter to continue.
==> BUILDERS_NAME: Creating temporary RSA SSH key for instance...
==> BUILDERS_NAME: Pausing after run of step 'StepSSHKeyGen'. Press enter to continue.

サーバーへSSHしてデバッグ

debugモードではリモートサーバーにsshしてデバッグすることもできます。
ディレクトリ内に一時的にpemファイルが生成されているのでそのファイルを使いSSHします。

SSHするサーバーの情報はPackerのログで以下のようにIPが出てくるのでそれを使い、ユーザーネームはpacker.jsonのbuildersで指定してるものを使います。

==> BUILDERS_NAME: Waiting for the instance to become running...
    BUILDERS_NAME: Public IP: ◯◯.◯◯◯.◯◯◯.◯◯
    BUILDERS_NAME: IP: ◯◯.◯◯◯.◯◯◯.◯◯

これでsshできるようになると思います。

ssh -i <key.pem> ssh_username@◯◯.◯◯◯.◯◯◯.◯◯

sshしたら失敗したコマンドなどを実際に実行してエラーを確認したりしてデバッグしていきましょう!

以上

Discussion