Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Compute Cloud
  • Yandex Container Solution
    • Взаимосвязь ресурсов
    • Графические ускорители GPU
    • Образы
      • Обзор
      • Доступ
      • YAML-спецификация
      • Шаблон виртуальной машины
      • Переменные в шаблоне виртуальной машины
      • Типы масштабирования
      • Проверки и автовосстановление ВМ
      • Интеграция с сетевыми и L7-балансировщиками
      • Работа со Stateful-нагрузкой
      • Остановка группы и приостановка процессов
      • Поочередные перезагрузка и пересоздание ВМ в группе
      • Статусы
    • Выделенный хост
    • Шифрование
    • Резервное копирование
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Обучающие курсы

В этой статье:

  • Поля, в которых поддерживаются переменные
  • Этапы подстановки переменных
  • Первый этап подстановки значений
  • Второй этап подстановки значений
  • Преобразования переменных
  • Пример прохождения этапов подстановки
  • См. также
  1. Концепции
  2. Группы виртуальных машин
  3. Переменные в шаблоне виртуальной машины

Переменные в шаблоне виртуальной машины

Статья создана
Yandex Cloud
Обновлена 27 января 2025 г.
  • Поля, в которых поддерживаются переменные
  • Этапы подстановки переменных
    • Первый этап подстановки значений
    • Второй этап подстановки значений
  • Преобразования переменных
  • Пример прохождения этапов подстановки
    • См. также

Instance Groups позволяет создать группу однотипных виртуальных машин из шаблона. Чтобы такие ВМ имели разные характеристики, используйте механизм подстановок системных и пользовательских переменных в шаблоне. Например, с помощью переменных и тегов вы можете создать группу ВМ с фиксированными IP-адресами.

Системная переменная — значение, которое Instance Groups вычисляет во время создания ВМ и подставляет его в шаблон для дальнейшего использования.

Пользовательская переменная — значение, которое Instance Groups берет из списка. Он заранее сформирован пользователем, переменные в нем описаны в формате ключ:значение.

Поля, в которых поддерживаются переменныеПоля, в которых поддерживаются переменные

Шаблон ВМ описывается в YAML-файле с помощью ключа instance_template. Вы можете указать системные и пользовательские переменные вместо значений следующих полей шаблона:

  • instance_template.fqdn — FQDN хоста.
  • instance_template.hostname — имя хоста.
  • instance_template.metadata — метаданные ВМ. Переменные можно использовать только в значениях ключей поля metadata.
  • instance_template.name — имя ВМ.
  • instance_template.labels — метки ВМ. Переменные можно использовать только в значениях ключей поля labels.
  • instance_template.boot_disk_spec.disk_id — идентификатор загрузочного диска.
  • instance_template.boot_disk_spec.disk_spec.description — описание загрузочного диска.
  • instance_template.boot_disk_spec.disk_spec.image_id — идентификатор образа загрузочного диска.
  • instance_template.boot_disk_spec.disk_spec.snapshot_id — идентификатор снимка загрузочного диска.
  • instance_template.boot_disk_spec.disk_spec.type_id — тип загрузочного диска.
  • instance_template.network_interface_specs.primary_v4_address_spec.one_to_one_nat_spec.address — конфигурация внешнего IP-адреса версии IPv4.
  • instance_template.network_interface_specs.primary_v6_address_spec.one_to_one_nat_spec.address — конфигурация внешнего IP-адреса версии IPv6.
  • instance_template.placement_policy.placement_group_id — идентификатор группы размещения.
  • instance_template.secondary_disk_specs.disk_id — идентификатор дополнительного диска.
  • instance_template.secondary_disk_specs.disk_spec.description — описание дополнительного диска.
  • instance_template.secondary_disk_specs.disk_spec.image_id — идентификатор образа дополнительного диска.
  • instance_template.secondary_disk_specs.disk_spec.snapshot_id — идентификатор снимка дополнительного диска.
  • instance_template.secondary_disk_specs.disk_spec.type_id — тип дополнительного диска.

Этапы подстановки переменныхЭтапы подстановки переменных

Instance Groups заменит системные и пользовательские переменные на значения в два этапа:

  1. Замена системных переменных на вычисленные значения.
  2. Замена пользовательских переменных на значения из списка.

Преобразование может быть составным. В этом случае значение, полученное на первом этапе, является переменной для второго этапа.

Пример прохождения этапов подстановки описан ниже.

Первый этап подстановки значенийПервый этап подстановки значений

Instance Groups заменит на вычисленные значения только фиксированный список системных переменных:

Системная переменная Описание Возможные значения
{instance_group.id} Идентификатор группы ВМ. Строковое значение, например cl1cd2vd4ohr********. Подробнее см. Получить информацию о группе ВМ.
{instance_group.labels.label_key} Значение метки группы ВМ с ключом label_key. Строковое значение, например label_value. Подробнее см. Получить информацию о группе ВМ.
{instance.index} Уникальный номер ВМ в группе. Значение от 1 до N, где N — количество ВМ в группе.
{instance.index_in_zone} Номер ВМ в зоне доступности. Уникален в рамках зоны для конкретной группы ВМ. Значение от 1 до N, где N — количество ВМ в одной зоне доступности.
{instance.labels.another_label_key} Значение метки конкретной ВМ с ключом another_label_key. Строковое значение, например another_label_value. Подробнее см. Получить информацию о ВМ.
{instance.short_id} Идентификатор ВМ, уникальный в рамках группы. Строковое значение, состоящее из четырех латинских букв, например ilum.
{instance.tag} Тег ВМ в группе внутри зоны доступности. Значение, указанное в поле allocation_policy.zones.instance_tags_pool. Подробнее см. Политика распределения.
{instance.zone_id} Идентификатор зоны доступности. Значение, указанное в поле allocation_policy.zones.zone_id. Подробнее см. Политика распределения.

Например, при создании группы ВМ Instance Groups присвоит группе идентификатор и подставит его вместо {instance_group.id} каждой ВМ.

Второй этап подстановки значенийВторой этап подстановки значений

Для того чтобы на этом этапе Instance Groups подставил значения, заранее сформируйте список пользовательских переменных в формате ключ:значение.

На данном этапе Instance Groups:

  1. Сравнит переменные с ключами из пользовательского списка.
  2. Проставит им значения, указанные в ключах.

Преобразования переменныхПреобразования переменных

Системные и пользовательские переменные указываются в качестве значений полей шаблона в фигурных скобках {}. Instance Groups преобразует их по указанным ниже правилам.

Значение поля в шаблоне Значение поля
после преобразования
Описание преобразования
{заданный_ключ} значение Значение будет подставлено из заранее подготовленного списка.
{неизвестный_ключ} {неизвестный_ключ} Если указан ключ, который не поддерживается механизмом подстановок, Instance Groups не заменит его.
{{заданный_ключ}} {заданный_ключ} На первом этапе внутренний уровень скобок будет раскрыт.
{{неизвестный_ключ}} {{неизвестный_ключ}} Ключ, который не поддерживается механизмом подстановок, не изменится.

Пример прохождения этапов подстановкиПример прохождения этапов подстановки

  1. В шаблоне ВМ указаны:

    • Список пользовательских переменных в формате ключ:значение в блоке variables.
    • Системные и пользовательские переменные в допустимых полях:
      • в поле instance_template.name указаны пользовательская переменная {short_zone_var_{instance.zone_id}} и системная — {instance.index};
      • в поле instance_template.hostname указана системная переменная {instance.index}.
    ...
    variables:
      - key: short_zone_var_ru-central1-a
        value: rc1a
      - key: short_zone_var_ru-central1-b
        value: rc1b
      - key: short_zone_var_ru-central1-d
        value: rc1d
    instance_template:
      name: production-{short_zone_var_{instance.zone_id}}-{instance.index}
      hostname: production-{instance.index}
      platform_id: standard-v3
    ...
    
  2. На первом этапе Instance Groups заменит системные переменные на вычисленные значения.

    ...
    variables:
      - key: short_zone_var_ru-central1-a
        value: rc1a
      - key: short_zone_var_ru-central1-b
        value: rc1b
      - key: short_zone_var_ru-central1-d
        value: rc1d
    instance_template:
      name: production-{short_zone_var_ru-central1-a}-1
      hostname: production-1
      platform_id: standard-v3
    ...
    

    Где:

    • В поле instance_template.name:
      • переменная {short_zone_var_{instance.zone_id}} будет преобразована в переменную {short_zone_var_ru-central1-a};
      • системная переменная {instance.index} будет преобразована в индекс 1.
    • В поле instance_template.hostname системная переменная {instance.index} будет преобразована в индекс 1.
  3. На втором этапе Instance Groups преобразует полученные переменные в значения из списка в блоке variables:

    ...
    variables:
      - key: short_zone_var_ru-central1-a
        value: rc1a
      - key: short_zone_var_ru-central1-b
        value: rc1b
      - key: short_zone_var_ru-central1-d
        value: rc1d
    instance_template:
      name: production-rc1a-1
      hostname: production-1
      platform_id: standard-v3
    ...
    

    В поле instance_template.name: переменная {short_zone_var_ru-central1-a} будет преобразована в значение rc1a.

См. такжеСм. также

  • Спецификация группы виртуальных машин в формате YAML
  • Шаблон виртуальной машины
  • Создать группу виртуальных машин с фиксированными IP-адресами

Была ли статья полезна?

Предыдущая
Шаблон виртуальной машины
Следующая
Обзор
Проект Яндекса
© 2025 ООО «Яндекс.Облако»