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.