Cloudbase-init
Общие сведения
Cloudbase-init - утилита для настройки виртуальной машины под управлением ОС Windows.
Используется для установки ключей, сертификатов, записи файлов или настройки пользователей, параметров безопасности и т.д.
Внимание
Утилита используется только для ВМ с ОС Windows.
Перечень поддерживаемых ОС представлен на официальном сайте производителя.
Дополнительная информация
Допускается использование как готовых образов, так и подготовить образы самостоятельно по документации.
Рекомендуется использовать источник NoCloud.
Пример использования в SpaceVM
Для использования cloudbase-init необходимо:
- 
На ВМ под управлением ОС семейства Windows установить утилиту cloudbase-init. 
- 
Убедиться в успешной установке. 
- 
После установки cloudbase-init необходимо перейти в директорию C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf, где находятся конфигурационные файлыcloudbase-init.confиcloudbase-init-unattend.conf.
- 
Перейти к конфигурации файла cloudbase-init.confи добавить строки:metadata_services=cloudbaseinit.metadata.services.nocloudservice.NoCloudConfigDriveService plugins=cloudbaseinit.plugins.common.userdata.UserDataPlugin
- 
Найти параметры, отвечающие за поиск источника конфигурационного диска, и привести к виду: config_drive_raw_hhd=false config_drive_cdrom=true config_drive_vfat=falseНастройка может отличаться в зависимости от версии утилиты. 
- 
Сохранить файл cloudbase-init.conf.
- 
Перейти к конфигурационному файлу cloudbase-init-unattend.confи добавить строки:metadata_services=cloudbaseinit.metadata.services.nocloudservice.NoCloudConfigDriveService plugins=cloudbaseinit.plugins.common.userdata.UserDataPlugin
- 
Найти параметры, отвечающие за поиск источника конфигурационного диска, и привести к виду: config_drive_raw_hhd=false config_drive_cdrom=true config_drive_vfat=falseНастройка может отличаться в зависимости от версии утилиты. 
- 
Сохранить файл cloudbase-init-unattend.conf.
- 
Открыть командную строку от имени администратора и выполнить: sysprep /oobe /generalize /shutdownНа стадии подготовки виртуальной машины при помощи утилиты Sysprep рекомендуется передать файл ответов через ключ /unattend:Unattend.xmlдля пропуска интерактивного выбора параметров ОС при запуске ВМ из шаблона. В противном случае при запуске ВМ в гостевой ОС будет происходить остановка для интерактивного выбора параметров.Файл ответов Unattend.xml, полученный после установки cloudbase-init, находится в директории с конфигурационными файлами. Для запуска приведенной команды необходимоUnattend.xmlпоместить в ту же директорию, из которой в командной строке запускается Sysprep.Например, если Sysprep запускается из директории C:\Windows\System32\Sysprep, то файлUnattend.xmlдолжен находиться в данной директории.
- 
Перейти к управлению ВМ и перевести ее в режим шаблона. Для этого необходимо перейти в раздел ВМ/Шаблон и нажать В режим шаблона. 
- 
Создать конфигурационный диск. Подробная информация доступна на сайте NoCloud configuration drive. 
- 
Создать новую папку и два файла в ней: meta-dataиuser-data.
- 
Сконфигурировать файлы согласно документации производителя. 
- 
Выполнить команду для создания ISO с названием cidata, например:genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-dataНеобходимо использовать собственные названия. 
- 
После выполнения всех шагов будет получен ISO-образ. 
- 
Перейти в раздел Виртуальные машины и создать ВМ из шаблона, для этого нажать кнопку Добавить ВМ из шаблона. 
- 
Загрузить стандартным способом полученный ISO-образ и примонтировать к ВМ. 
- 
Включить питание ВМ и убедиться, что cloudbase-init готов к работе. В процессе включения допускается несколько перезагрузок системы. Необходимо дождаться полного завершения процесса. 
Демонстрация работы cloudbase-init
Внимание
Необходимо конфигурировать файлы согласно инструкции производителя. Описанные ниже шаги являются примером.
В файл user-data добавить строки:  
#cloud-config
set_hostname: cloudbase
users:
  -
    name: test
    gecos: 'test user'
write_files:
   content: 'test text'
   path: C:\test.txt
Пример файла user-data использует YAML структуру и имеет 4 основных раздела:  
- 
#cloud-config- все файлыuser-dataдолжны начинаться с этой строки.
- 
set_hostname- имя хоста, которое будет присвоено.
- 
users- данные пользователя, который будет создан.
- 
write_files- блок для создания тестового файла.
В результате конфигурации user-data будет получено:  


