在 Packer 供应商中添加条件?
Adding conditionals in Packer provisioners?
有没有一种明智的方法可以在加壳供应商内部添加条件?效果为:
$ packer build -var "debug=true" build.json
"provisioners": [{
"type": "puppet-masterless",
"execute_command": "{{ if eq `debug` "true" }} strace {{ end }} {{ .FacterVars }} puppet apply --verbose --detailed-exitcodes --modulepath='/tmp/manifests/modules' {{ .ManifestFile }}",
"facter": {},
"manifest_dir": "../manifests",
"manifest_file": "../manifests/vagrant/nocm.pp",
"module_paths": [
"../manifests/modules/external"
]
}],
"variables": {
"debug": "false",
}
其中执行命令包含
{{ if eq `debug` "true" }} strace {{ end }}
您是否尝试在 provisioner
部分添加变量:
注意 :我自己没有测试过,但将其用于正常的 shell provisioner
"provisioners": [{
"environment_vars": [
"DEBUG={{user `debug`}}",
]
"type": "puppet-masterless",
"execute_command": "{{ if eq .DEBUG "true" }} strace {{ end }} {{ .FacterVars }} puppet apply --verbose --detailed-exitcodes --modulepath='/tmp/manifests/modules' {{ .ManifestFile }}",
"facter": {},
"manifest_dir": "../manifests",
"manifest_file": "../manifests/vagrant/nocm.pp",
"module_paths": [
"../manifests/modules/external"
]
}],
"variables": {
"debug": "false",
}
有没有一种明智的方法可以在加壳供应商内部添加条件?效果为:
$ packer build -var "debug=true" build.json
"provisioners": [{
"type": "puppet-masterless",
"execute_command": "{{ if eq `debug` "true" }} strace {{ end }} {{ .FacterVars }} puppet apply --verbose --detailed-exitcodes --modulepath='/tmp/manifests/modules' {{ .ManifestFile }}",
"facter": {},
"manifest_dir": "../manifests",
"manifest_file": "../manifests/vagrant/nocm.pp",
"module_paths": [
"../manifests/modules/external"
]
}],
"variables": {
"debug": "false",
}
其中执行命令包含
{{ if eq `debug` "true" }} strace {{ end }}
您是否尝试在 provisioner
部分添加变量:
注意 :我自己没有测试过,但将其用于正常的 shell provisioner
"provisioners": [{
"environment_vars": [
"DEBUG={{user `debug`}}",
]
"type": "puppet-masterless",
"execute_command": "{{ if eq .DEBUG "true" }} strace {{ end }} {{ .FacterVars }} puppet apply --verbose --detailed-exitcodes --modulepath='/tmp/manifests/modules' {{ .ManifestFile }}",
"facter": {},
"manifest_dir": "../manifests",
"manifest_file": "../manifests/vagrant/nocm.pp",
"module_paths": [
"../manifests/modules/external"
]
}],
"variables": {
"debug": "false",
}