Упаковщик использует переменные по умолчанию?

Я пытался выяснить возможность использования опции vars в пакере, мой скрипт выглядит следующим образом:

"provisioners": [{
  "type": "shell",
  "scripts": [
    "scripts/centos/5.11/puppet-{{user `config`}}.sh",
  ]
}],
"variables": {
  "config": "{{user `type`}} | slave",
} 

Типичная команда была бы такой:

packer build              \
    -var 'config=master'  \
    template.json

Но также можно сделать следующее:

packer build template.json # were config would default to slave

1 ответ

Решение

Переменные командной строки переопределяют настройки в ваших шаблонах json. См. Документацию Packer: https://www.packer.io/docs/templates/user-variables.html

Так что просто установите значение по умолчанию в шаблоне и переопределите его примером командной строки, который вы уже использовали.

Ваш шаблон будет:

"provisioners": [{
   "type": "shell",
   "scripts": [
      "scripts/centos/5.11/puppet-{{user `config`}}.sh"
   ]
}],
"variables": {
  "config": "slave"
} 
Другие вопросы по тегам