Назад | Перейти на главную страницу

Использование переменных для передачи имен построителей в Packer

Я создаю шаблон Packer для использования с несколькими файлами переменных и хотел передать имя построителя через переменную, чтобы инициаторы выполнялись только в соответствии с функцией, которую я хочу выполнить.

Я пробовал кодировать это так:

{
  "variables": {
    "name": "",
    "project_id": "",
    "source_image_family": "",
    "zone": "",
    ...
  },
  "sensitive-variables": [
    "account_file",
    "winrm_username",
    "elevated_user",
    "elevated_password"
  ],
  "builders": [
    {
      "name": "{{user `name`}}",
      "type": "googlecompute",
      "project_id": "{{user `project_id`}}",
      ...
    }
  ]
}

А затем передайте переменные как:

{
  "name": "your_builder_name",
  ...
}

Но когда я пытаюсь проверить, он всегда сообщает, что конструктор не найден.

Есть идеи, как это сделать или возможно ли это? Я попробовал поискать в Интернете и нашел старое указание на то, что это было невозможно, но потом я нашел сообщение о том, что теперь это возможно, но не нашел примера, чтобы проверить, как я подхожу к этому ...

Спасибо за любой вклад! :)

Редактировать: После еще нескольких исследований и обсуждения с коллегами я пришел к выводу, что это невозможно. "Единственная" функция может использоваться (с определенной целью) только в том случае, если у вас есть несколько конструкторов в одном коде ... жалко ...