入力パラメーターをパッカープロビジョニングスクリプトに渡すのに苦労しています。私はさまざまなオプションを試しましたが、喜びはありません。
目的は、私のprovision.shがパッカーのビルド中に送信する入力パラメーターを受け入れることです。
packer build -var role = abc test.json
Jsonファイルでユーザー変数を取得できますが、プロビジョニングスクリプトを渡すことができません。入力パラメーターに基づいて決定を行わなければなりません。
私は何かを試しました
"provisioners":
{
"type": "Shell",
"scripts": [
"provision.sh {{user `role`}}"
]
}
しかし、パッカー検証自体は、そのようなファイル/ディレクトリエラーメッセージなしで失敗します。
誰かがこれについて私を助けることができればそれは本当の助けになるでしょう。
前もって感謝します。
environment_vars
オプションを使用する必要があります。ドキュメント Shell Provisioner-environment_vars を参照してください。
例:
"provisioners": [
{
"type": "Shell"
"environment_vars": [
"HOSTNAME={{user `vm_name`}}",
"FOO=bar"
],
"scripts": [
"provision.sh"
],
}
]
スクリプトが引数を使用するようにすでに構成されている場合。 inline
配列ではなくscripts
として実行するだけです。
これを行うには、スクリプトがシステムにすでに存在している必要があります。file
プロビジョナーを使用してシステムにスクリプトをコピーすることで、これを実現できます。
"provisioners": [
{
"type": "file",
"source": "scripts/provision.sh",
"destination": "/tmp/provision.sh"
},
{
"type": "Shell",
"inline": [
"chmod u+x /tmp/provision.sh",
"/tmp/provision.sh {{user `vm_name`}}"]
}
]