私は次のようなパッカーjsonを持っています:
"builders": [{...}],
"provisioners": [
{
"type": "file",
"source": "packer/myfile.json",
"destination": "/tmp/myfile.json"
}
],
"variables": {
"myvariablename": "value"
}
myfile.jsonは次のとおりです。
{
"var" : "{{ user `myvariablename`}}"
}
ファイルへの変数は置き換えられますが、ファイルの後のsedのShellプロビジョナーによる置き換えは、ここで使用できる唯一のオプションですか?
パッカーバージョン0.12.0を使用
これらを環境変数として渡す必要があります。例えば:
"provisioners": [
{
"type": "Shell"
"environment_vars": [
"http_proxy={{user `proxy`}}",
],
"scripts": [
"some_script.sh"
],
}
],
"variables": {
"proxy": null
}
また、スクリプトでは$http_proxy
を使用できます
これまでのところ、ファイルとシェルのプロビジョナーを使用するためのソリューションを用意しました。ファイルをアップロードしてから、シェルプロビジョナーを介してファイル内の変数を置き換えます。シェルプロビジョナーは、たとえば、 HashiCorp Vault