web-dev-qa-db-ja.com

Packerのファイルプロビジョナーでユーザー変数を使用するにはどうすればよいですか?

私は次のようなパッカー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を使用

9
MarMan

これらを環境変数として渡す必要があります。例えば:

  "provisioners": [
    {
      "type": "Shell"
      "environment_vars": [
        "http_proxy={{user `proxy`}}",
      ],
      "scripts": [
        "some_script.sh"
      ],
    }
  ],
  "variables": {
    "proxy": null
  }

また、スクリプトでは$http_proxyを使用できます

8

これまでのところ、ファイルとシェルのプロビジョナーを使用するためのソリューションを用意しました。ファイルをアップロードしてから、シェルプロビジョナーを介してファイル内の変数を置き換えます。シェルプロビジョナーは、たとえば、 HashiCorp Vault

0
aRagornol