1
私はterraform用のPythonラッパーを持っていますが、terraformは引き渡された引数をどうにか誤って解釈します。任意のアイデアを回避する方法は?terraformがpythonのサブプロセスから実行されたときにargsが '='で分割される理由
#!/usr/bin/env python
import subprocess
args_echo = ["/bin/echo", "/home/vmindru/proj/tera/terraform",
"plan",
"-var foo=bar"]
args_terr = ["/home/vmindru/proj/tera/terraform",
"plan",
"-no-color",
"-var foo=bar"]
echo = subprocess.call(args_echo)
terr = subprocess.call(args_terr)
print echo, terr
__Note:__お尻は、単純なエコー(またはバイナリ他)を実行しているとき、それは正しく、すべての引数を解釈するの下に観察し、何らかの理由でテラフォームが-var FOOに引数-var FOO =バーを分割することを決定し、おそらく完全な信用が質問コメントでその答えを@nightuserに行くものの、将来的に簡単に発見するために、このメモを作る
[email protected]:/tmp/test2$ ./test.py
/home/vmindru/proj/tera/terraform plan -var foo=bar
flag provided but not defined: -var foo
Usage: terraform plan [options] [dir]
Generates an execution plan for Terraform.
This execution plan can be reviewed prior to running apply to get a
sense for what Terraform will do. Optionally, the plan can be saved to
a Terraform plan file, and apply can take this plan file to execute
this plan exactly.
Options:
-backup=path Path to backup the existing state file before
modifying. Defaults to the "-state-out" path with
".backup" extension. Set to "-" to disable backup.
-destroy If set, a plan will be generated to destroy all resources
managed by the given configuration and state.
-detailed-exitcode Return detailed exit codes when the command exits. This
will change the meaning of exit codes to:
0 - Succeeded, diff is empty (no changes)
1 - Errored
2 - Succeeded, there is a diff
-input=true Ask for input for variables if not directly set.
-module-depth=n Specifies the depth of modules to show in the output.
This does not affect the plan itself, only the output
shown. By default, this is -1, which will expand all.
-no-color If specified, output won't contain any color.
-out=path Write a plan file to the given path. This can be used as
input to the "apply" command.
-parallelism=n Limit the number of concurrent operations. Defaults to 10.
-refresh=true Update state prior to checking for differences.
-state=statefile Path to a Terraform state file to use to look
up Terraform-managed resources. By default it will
use the state "terraform.tfstate" if it exists.
-target=resource Resource to target. Operation will be limited to this
resource and its dependencies. This flag can be used
multiple times.
-var 'foo=bar' Set a variable in the Terraform configuration. This
flag can be set multiple times.
-var-file=foo Set variables in the Terraform configuration from
a file. If "terraform.tfvars" is present, it will be
automatically loaded if this flag is not specified.
0 1
[email protected]:/tmp/test2$
あなたは '-foo = bar' –
ことになっていないよろしいですが、あなたは"、 ' "-var" のようなものを試してみました'foo = bar' "'? – nightuser
nightuserが指摘しているように、上記の出力にTFが明示的に記載されている場合、var定義を引用符で囲む必要があります。 – ydaetskcoR