記述したコード
Packerとは
- HashiCorpが開発しているCLIツール
- マルチクラウドに対応したゴールデンイメージの作成ができる
- 設定ファイルの書式はJson or HCL2
- バージョン1.5からHCL2に対応した
参照
- https://packer.io/guides/hcl/
- https://packer.io/docs/builders/docker.html
- https://packer.io/docs/provisioners/shell.html
HCL2で記述するメリット
- TerraformもHCL2で記述するため共通の書式を利用できる
- 設定ファイルを用途に合わせて分割できる
- コードの途中でコメントを追加できる
Packerのバージョン
|
|
設定ファイル一覧
|
|
variable.pkr.hcl
- variableを利用してコード内で利用する変数を定義する
sources.pkr.hcl
- ビルド時に利用するイメージを利用する
- Json形式で記述する際のBuildersに相当する
build.pkr.hcl
- ビルドを行う際の処理を記述する
- sourcesでsources.pkr.hclに書いた設定を複数読み込むことが可能
- その他Jsonで記述する際と同様にprovisionerでShellの他、Ansibleなどと連携可能
ファイル内容
variable.pkr.hcl
|
|
sources.pkr.hcl
|
|
build.pkr.hcl
|
|
ビルド実行
|
|
現時点での問題
- packer validateが使えない
- https://github.com/hashicorp/packer/issues/8538
- 今後のアップデートに期待