Понадобилась недавно локальная виртуалка, но стало как-то лениво протыкивать в очередной раз инсталлятор Ubuntu Server. Облачные провайдеры уже давно используют cloud-init, мы можем использовать тот же подход.
1. Создаём cloud-init.yml:
#cloud-config
autoinstall:
version: 1
user-data:
users:
- name: user
lock_passwd: true
ssh_import_id:
- gh:hacker-volodya # импортируем свой ssh-ключ из гитхаба
sudo: ALL=(ALL) NOPASSWD:ALL
ssh:
install-server: true
В cloud-init есть миллион параметров на любой вкус: автоматическая установка софта, конфигурация сети и т.д., поэтому гуглим и кастомизируем под свои нужды.
2. Запускаем
cloud-localds ./seed.iso ./cloud-init.yml (предварительно ставим тулзу через apt install cloud-image-utils).3. Создаём виртуалку, подключаем туда iso с убунтой и рядом подключаем seed.iso (может понадобиться создать ещё один дисковод в виртуалке).
4. Запускаем виртуалку, установщик предложит всё поставить автоматически, подтверждаем. Через параметры загрузки ядра можно сделать, чтобы подтверждать не нужно было, но это слишком запарно для полу-домашнего использования.
Теперь для раскатки каждой новой виртуалки нужно просто монтировать образ системы и seed.iso. После установки системы cloud-init принтит полученный айпишник в консоль, к которому можно коннектиться по ssh с аутентификацией по ключу.