Автоматическая настройка виртуальных машин с помощью утилиты Cloud-Init
Cloud-Init — это утилита для автоматизации начальной настройки таких параметров ВМ, как имя хоста, сетевые интерфейсы и назначенные ключи. Утилиту Cloud-Init рекомендуется использовать при инициализации ВМ, которые были созданы на базе шаблона, для избежания конфликтов в сети.
Чтобы начать использовать утилиту, нужно установить на ВМ пакет cloud-init. После установки пакета служба Cloud-Init запускается во время процесса загрузки ОС виртуальной машины в поисках инструкции на настройку необходимых параметров ВМ. Cloud-Init может использовать параметры в окне "Однократный запуск" для выполнения разовой инструкции или параметры в окнах "Новая ВМ", "Параметры виртуальной машины" и "Изменить шаблон" для выполнения определенной инструкции каждый раз при запуске ВМ.
Сценарии использования Cloud-Init
Cloud-Init можно использовать для автоматизации процесса конфигурирования ВМ в различных, в том числе следующих, сценариях:
- "ВМ, созданные на базе шаблонов" -- параметры Cloud-Init можно использовать в разделе "Начальный запуск" окна "Однократный запуск" для инициализации ВМ, созданных на базе шаблонов, что позволяет выполнить пользовательскую настройку ВМ во время первого запуска виртуальной машины.
- "Шаблоны ВМ" ‒ параметры "Использовать Cloud-Init/Sysprep" вкладки "Начальный запуск" окна "Параметры шаблона" можно использовать для настройки пользовательских параметров ВМ, созданных на базе этого шаблона.
- "Пулы ВМ" ‒ параметры "Использовать Cloud-Init/Sysprep" вкладки "Начальный запуск" окна "Новый пул" можно использовать для настройки пользовательских параметров ВМ, взятых из этого пула, что позволяет указать набор стандартных параметров, которые будут применяться каждый раз, когда ВМ будет забираться из этого пула. Параметры, указанные для базового шаблона, можно наследовать или переопределять, а также можно указать параметры для самого пула.
Установка Cloud-Init
Действия по установке Cloud-Init:
- выполнить вход в ОС на ВМ;
- установить пакет cloud-init:
dnf install cloud-init
Если после установки утилиты Cloud-Init на основе этой ВМ будет создан шаблон, то в свою очередь ВМ, созданные на базе этого шаблона, смогут использовать при загрузке такие возможности Cloud-Init, как настройка имени хоста, часового пояса, пароля суперпользователя root, авторизованных ключей, сетевых интерфейсов, службы DNS и т. д.
Использование Cloud-Init для подготовки шаблонов
На ВМ под управлением ОС Linux с установленным пакетом cloud-init можно создавать шаблоны с поддержкой возможностей Cloud-Init по настройке на создаваемых ВМ предопределенного набора стандартных параметров, включаемых в шаблон.
Действия по использованию Cloud-Init для подготовки шаблона:
- в главном меню Портала администрирования выбрать пункт "Ресурсы → Шаблоны";
- выбрать шаблон;
- нажать кнопку
Изменить; - нажать "Показать дополнительные параметры";
- перейти на вкладку "Начальный запуск", где установить флажок "Использовать Cloud-Init/Sysprep";
- в текстовом поле "Имя хоста ВМ" ввести имя хоста;
- установить флажок "Настроить часовой пояс" и в выпадающем списке выбрать часовой пояс;
- нажать "Аутентификация" и в этой секции выполнить следующие действия:
- ввести пароль суперпользователя root в текстовых полях "Пароль" и "Подтвердить пароль", чтобы указать новый пароль root, или установить флажок "Использовать уже настроенный пароль";
- в текстовой области "Авторизованные ключи SSH" указать ключи SSH для добавления в файл авторизованных хостов на ВМ;
- установить флажок "Пересоздать ключи SSH", чтобы создать ключи SSH для ВМ;
- нажать "Сеть" и в этой секции выполнить следующие действия:
- в текстовом поле "Серверы DNS" указать серверы DNS;
- в текстовом поле "Домены поиска DNS" указать домены поиска DNS;
- установить флажок "Сетевой интерфейс на госте" и с помощью кнопок
+(плюс) или–(минус) добавить или удалить сетевые интерфейсы ВМ соответственно.
Примечание — Следует указывать корректное имя и номер интерфейса (например "eth0", "eno3", "enp0s"), в противном случае подключение к сетевому интерфейсу будет активно, но сетевая конфигурация Cloud-Init будет отсутствовать.
- нажать "Пользовательский сценарий" и в текстовой области этой секции разместить сценарий в формате YAML;
- нажать кнопку
OK.
В результате полученный шаблон можно использовать для создания новых ВМ. При этом параметры ВМ, созданных на базе этого шаблона, могут быть настроены автоматически с использованием возможностей Cloud-Init.
Использование Cloud-Init для инициализации ВМ
В Системе возможно использование Cloud-Init для автоматизации начальной конфигурации ВМ под управлением ОС Linux. В полях параметров Cloud-Init можно настроить имя хоста, часовой пояс, пароль суперпользователя root, авторизованные ключи, сетевые интерфейсы, службу DNS, а также можно указать пользовательский сценарий в формате YAML для запуска при загрузке ОС виртуальной машины. Следует обратить внимание, что пользовательский сценарий предоставляет возможность реализации дополнительной поддерживаемой конфигурации Cloud-Init, но недоступной для настройки в полях параметров Cloud-Init.
Действия по использованию Cloud-Init для инициализации ВМ:
- в главном меню Портала администрирования выбрать пункт "Ресурсы → Виртуальные машины";
- выбрать ВМ (при необходимости перейти на вкладку "Приложения" и убедиться в том, что Cloud-Init установлен на ВМ; обратить внимание, что приложения отображаются только при установленном гостевом агенте).
- нажать кнопку
Запуститьи выбрать "Однократный запуск"; - нажать кнопку
Начальный запуски установить флажок "Cloud-Init"; - в текстовом поле "Имя хоста ВМ" ввести имя хоста;
- установить флажок "Настроить часовой пояс" и в выпадающем списке выбрать часовой пояс;
- нажать кнопку
Аутентификацияи в этой секции выполнить следующие действия:
- ввести пароль суперпользователя root в текстовых полях "Пароль" и "Подтвердить пароль", чтобы указать новый пароль root, или установить флажок "Использовать уже настроенный пароль";
- в текстовой области "Авторизованные ключи SSH" указать ключи SSH для добавления в файл авторизованных хостов на ВМ;
- установить флажок "Пересоздать ключи SSH", чтобы создать ключи SSH для ВМ;
- нажать "Сеть" и в этой секции выполнить следующие действия:
- в текстовом поле "Серверы DNS" указать серверы DNS;
- в текстовом поле "Домены поиска DNS" указать домены поиска DNS;
- установить флажок "Сетевой интерфейс на госте" и с помощью кнопок
+(плюс) или–(минус) соответственно добавить или удалить сетевые интерфейсы ВМ;
Примечание — Следует указывать корректное имя и номер интерфейса (например "eth0", "eno3", "enp0s"), в противном случае подключение к сетевому интерфейсу будет активно, но сетевая конфигурация Cloud-Init будет отсутствовать.
- нажать "Пользовательский сценарий" и в текстовой области этой секции разместить сценарий в формате YAML;
- нажать кнопку
OK.
В результате ВМ будет запущена с предопределенным набором параметров Cloud-Init.