Автоматическая настройка при помощи cloud-init

Cloud-init – это инструмент, позволяющий применить параметры конфигурации и передать необходимые файлы (сертификаты, скрипты, токены) при запуске ВМ и тем самым ускорить и автоматизировать процесс настройки Termidesk Connect.

Поддерживаются следующие модули для проведения операций на разных этапах загрузки ВМ:

  • bootcmd;

  • write_files;

  • runcmd;

  • scripts_user;

  • eula – дополнительный модуль Termidesk Connect;

  • tdc – дополнительный модуль Termidesk Connect.

Для работы Termidesk Connect с cloud-init требуется подготовить обязательные файлы:

  • meta-data, содержащий сведения об идентификаторе узла (instance-id) и его имени (local-hostname). Пример содержимого файла:

Параметры instance-id и local-hostname для каждого конкретного узла будут отличаться от приведенного примера.

instance-id: tdc-001
local-hostname: tdc-node
  • user-data, содержащий команды настройки Termidesk Connect для запуска cloud-init. Пример содержимого файла:

#cloud-config

runcmd:
  - mount -o ro /dev/cdrom /mnt
  - cp /mnt/<cert_name>.crt /etc/ssl/tdc/
  - cp /mnt/<key_name>.key /etc/ssl/tdc/
  - chmod 644 /etc/ssl/tdc/<cert_name>.crt
  - chmod 600 /etc/ssl/tdc/<key_name>.key
  - chown root:root /etc/ssl/tdc/<cert_name>.crt /etc/ssl/tdc/<key_name>.key
  - umount /mnt

eula:
  accept: true

tdc:
  commands:
    - set ip address <ip> /<mask> if-ethernet <eth_name>
    - set ip route default <network> <gw>
    - set system mgmt ip <ip>
    - set system mgmt webui-port <port>
    - commit
    - write

После подготовки обязательных файлов нужно собрать iso-образ с ними командой:

Инструмент для сборки iso-образа может быть любой, в примере используется утилита genisoimage.

CIDATA или cidata – это идентификатор устройства (label) для доступа к нему. Параметр обязательно должен быть указан при сборке iso-образа.

genisoimage -output tdc.iso -volid CIDATA -joliet -rock meta-data user-data

После этого подготовленный iso-образ Termidesk Connect готов для добавления в инфраструктуру с поддержкой cloud-init.