Есть ли возможность создавать виртуальные машины virtualbox с предустановленными параметрами?
Добрый день!
Есть потребность разворачивать относительно много виртуалок под линуксом в virtualbox (макетные стенды на минималках). Дистрибутивы должны быть разные: Debian, Centos 7-8, AstraLinux, Ubunru... После инсталляции надо настроить DNS-ы, айпишники, настроить файл SSHd для работы по ключам, разрешить запуск и рестартануть SSHd, прокинуть ключи в систему, создать группу и пользака, погасить фаерволл. Короче говоря, подготовить машину к дальнейшему управлению и настройке ансиблом. Сейчас навскидку что то не придумал как это сделать красиво и по Best Practices. Можно сделать какие то преднастроенные эталонные образы с каким то временным айпишником, клонировать их и потом ансиблом перебивать все настройки. Но это - костыль и выглядит непрофессионально. К тому же, одни виртуалки хотят 1Гб оперативки, другие - 8 и более. Нужно что то типа Dockerfile: указываем параметры для новой виртуалки, дистр из которого ставить, потом последовательность команд уже внутри виртуалки. Подскажите, возможно ли это и как правильно это делается?
В Терраформе есть провайдер для виртуалбокса. Разворачиваете Терраформом, потом донастраиваете Ансиблом. SSH-ключ для Ансибла можно засунуть в базовый образ.
у virtualbox очень продвинутый инструмент командной строки по работе с виртуалками (доступно все что есть в gui плюс еще немного) - VBoxManage
а внутри виртуалки все то же самое что с реальными машинами, уже отвечали - ансибл вполне хорош.
vagrant
разрабатывался как утилита для управления виртуальными машинами, написан на руби, Vagrantfile пишутся тоже на руби, но синтаксис простой, поняв документацию будет уже достаточно.
Можете использовать разных провайдеров для автонакатки: bash, docker, ansible -подробнее в документации.
Больше подходит, чем рекомендованный терраформ тем, что терраформ инструмент для "облаков", а вагрант для вм'ок. Как могли заметить, если успели попробовать, терраформу надо указывать бокс вручную, когда вагрант работает со своим registry напрямую