2015-07-24 2 views
0

Есть ли разумный способ добавить условный код внутри устройства для создания пакетов? Что-то эффект:Добавление условных выражений в устройствах Packer?

$ 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 }} 

ответ

2

сделали вы пытаетесь добавить переменную в 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", 
} 
+0

Ах, отличная идея. +1 и принято – ehime

Смежные вопросы