HCL2形式ファイルでのPacker実行
要約
PackerをHCL2で記述してみた
背景
Packer 1.5.0からHCLを対応したとのことなので、使ってみた。
ここでは、以下のようにPackerを使う
実施内容
PackerとAnsibleを使いNginxのVMイメージ(カスタムイメージ)をGCP上で作成する。
詳細条件
- Packer version: 1.5.4
- ansible version: 2.9.4
- IaaS: GCP
フォルダ構成は、下記の通り
./
|
+- build.pkr.hcl
+- locals.pkr.hcl
+- source.pkr.hcl
+- variables.pkr.hcl
|
-scripts/
|
- ansible-playbook.yaml
記法
- packerビルドを実行するファイルの拡張子:
.pkr.hcl
- 処理のブロック:
source
,build
,variables
,locals
各ファイルの中身
build.pkr.hcl
build {
sources = [
"source.googlecompute.nginx"
]
provisioner "ansible" {
playbook_file = "./scripts/ansible-playbook.yaml"
user = "packer"
extra_arguments = ["-vvvv"]
}
}
source.pkr.hcl
source "googlecompute" "nginx" {
project_id = "ca-kitano-study-sandbox"
source_image_family = local.img_fam
preemptible = true
ssh_username = "packer"
zone = "asia-northeast1-b"
image_name = var.image-name
tags = ["packer"]
}
locals.pkr.hcl
locals {
img_fam = "debian-9"
}
variables.pkr.hcl
variable "image-name" {
type = string
default = "nginx-demo"
}
Ansible Playbookは下記の通り。
ansible-playbook.yaml
- hosts: all
become: true
tasks:
- name: package repository update
apt:
update_cache: yes
- name: install nginx
apt:
name:
- nginx
実行方法
$packer build ./
実行が成功すると、GCP上に image_name
で指定したカスタムイメージが作成される。
まとめ
packerをhcl2形式で記載した。json形式よりも書きやすい。
TerraformでHCL形式に慣れている人は、是非使っていくとよいと思う。
Author And Source
この問題について(HCL2形式ファイルでのPacker実行), 我々は、より多くの情報をここで見つけました https://qiita.com/KAndy/items/77c8233e9ffb514703a2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .