cloud-init

При создании виртуалки можно передать cloud-init user-data — он выполнится при первой загрузке гостя. Поле спрятано в блоке «Дополнительно» формы создания.

Что это даёт

Автоматически поставить пакеты, создать пользователей, записать файлы, выполнить команды — без ручной возни после первого входа.

Пример

#cloud-config
package_update: true
packages:
  - htop
  - git
runcmd:
  - [ systemctl, enable, --now, nginx ]
write_files:
  - path: /etc/motd
    content: |
      Добро пожаловать на Ream 🍓

Важно

  • Первая строка обязательно #cloud-config.
  • SSH-ключи добавлять здесь не нужно — они инжектятся отдельно из выбранных в форме ключей.
  • Образы (Ubuntu, Alpine) уже включают cloud-init и datasource NoCloud — ничего доустанавливать не надо.
  • Синтаксис YAML строгий: отступы пробелами, не табами.

Подробный справочник директив — в официальной документации cloud-init.