Hashicorp Packer が対応している Provisioner
Packer が対応しているプロビジョナーにどのようなものがあるか調べてみました。
プロビジョナーが何かというと「設定」するやつですね。
つまり、イメージを作る際に、仮想マシンを立ち上げて作りますが、その途中でサーバの設定を行うことですね。
Ansible Local
VM 上の Ansible をローカルで動かします。
VM 上に Ansible が入っている必要があります。
Ansible Remote
Ansible をリモートサーバで動かします。
SSH 経由で Ansible を動かすので、VM 上にAnsible が入ってる必要がありません。
Breakpoint
これはユーザが「エンター」を押すまで、イメージの作成が止まるモードです。
ドキュメントにはデバッグ用途だと書かれています。
Chef Client
イメージを作る際に、Chef サーバとやり取りをしながら作成するモードです。
Chef Solo
Chef を Packer で構築しているマシンにインストールして使うモードです。
Converge
Converge もサーバ設定を行うツールの一つで、それを動かします。
File
ファイルをアップロードして使います。
/etc
配下に設定ファイルを置きたい時などに使えそうですね。
PowerShell
これは、Windows の設定用ですね。
ドキュメントには、SSH 経由でも使えるとは書いてあります。
Puppet Masterless
これは、Puppet を VM 上だけで動かすようです。
Puppet がインストールされているのが前提のようですね。
Puppet Server
これは Puppet が入っている VM が Puppet master と通信をして設定するようです。
Salt Masterless
単体で Salt states を使用して設定をする感じのようです。
見たところ、Ansible や Chef のような設定ソフトのようですね。
Shell
これは、VM 上で Shell を動かすものです。
Shell (Local)
これは、VM 上ではなくビルドしているマシンやデスクトップなどの上で Shell を動かすようです。
コメント出したい時とかに使う感じなんでしょうかね。
Windows Shell
これは、Windows のコマンドを使用するものです。
Powershell とはまた違いますが、どちらにしろ Windows の設定を行います。
Windows Restart
なぜこれだけ独立しているのか不思議なとこですが、Windows の場合、再起動は特殊なのかもしれませんね。
Windows で再起動を行うだけのものです。
と思って、ちゃんと読んでみたら、Windows の場合、構築にあたって何度も再起動が走ることがあるので・・・ということのようです。
Custom
これはカスタムでプロビジョナーを作成できるものです。
ちょっと初心者にはハードルが高そうですが、使いこなせるようになれば便利かもしれません。
まとめ
Packer で作成するイメージに対して、色々な設定を行う手段を提供してくれるのがプロビジョナーですが、さわり程度には説明できたかと思います。
これを使いこなすことで、色々と独自のイメージが作成できるようになります。
参照