Создаем локальные боксы Vagrant для GOAD
Я много слышал про GOAD, но никогда не разворачивал. И вот решил посмотреть, что это такое в живую. Однако существует проблема Hashicorp запрещает доступ к образам с российских IP адресов. У меня нет возможности выкачивать несколько гигабайт через VPN, однако есть возможность скачать приложения vagrant и packer. Сегодня я расскажу, как с помощью них можно создать локальные боксы Vagrant для GOAD.
У меня локальная лаборатория на Windows с использованием VirtualBox в качестве гипервизора. Но техника будет работать и для VMWare со своими особенностями. Для самого GOAD я использовал WSL, но сейчас он нам не нужен. Скачиваем и устанавливаем приложение Vagrant с официального сайта. Клонируем GOAD из репозитория. Скачиваем Packer с официального сайте Hashicorp и распаковываем исполняемый файл в «\GOAD\packer\vagrant\».
Для взаимодействия Packer с приложениями Vagrant и VirtualBox необходимо установить плагины:
.\packer.exe plugins install github.com/hashicorp/virtualbox
.\packer plugins install github.com/hashicorp/vagrant
Для Vagrant тоже нужно установить несколько плагинов, возможно, не все они требуются для Packer, но для GOAD точно нужны:
Чтобы не обращаться к сайту Hahicorp для установки плагинов пойдем на сайт https://rubygems.org и скачаем локально все необходимые плагины. Теперь чтобы установить плагины нужно выполнить команду для каждого файла:
vagrant.exe plugin install --plugin-clean-sources <plugin_name>.gem
Проверить что все плагины установлены можно командой:
Авторы GOAD предоставили все необходимые конфигурационные файлы в «\GOAD\packer\vagrant\» осталось только запастись терпением. В GOAD в основном используется Windows Server 2019 поэтому начну с него. Необходимо выполнить команду:
.\packer.exe build --only=virtualbox-iso windows_2019.json
Packer самостоятельно скачает образ Windows Server 2019 и запустит автоматическую настройку. Если во время загрузки происходит обрыв связи, то можно открыть файл «windows_2019.json» внизу файла будет ссылка на загрузку и можно скачать образ обычным способом и тогда запуск команды немного измениться. Я специально переименовал ISO файл чтобы он был короче.
.\packer.exe build --only=virtualbox-iso --var iso_url=Windows_Server_2019.iso windows_2019.json
Если вы хотите использовать собственные ISO файлы нужно прописать ключи в «Autounattend.xml» в директории «answer_files», там есть целый блок, описывающий как это сделать. Но ознакомительной версии Windows достаточно для лаборатории.
Дожидаемся, когда завершится процесс сборки бокса, у меня со всеми обновлениями заняло около двух часов. Теперь необходимо добавить бокс в локальное хранилище Vagrant. Чтобы не менять конфигурационный файлы для лабораторий имя бокса взято из файла «GOAD\ad\<lab>\providers\virtualbox». Хотя для некоторых лабораторий придется менять Vagrantfile чтобы установить версию "0" иначе будут попытки скачать бокс из Интернета.
vagrant.exe box add /path/to/file.box --name "StefanScherer/windows_2019"
Чтобы проверить, что наш бокс попал в локальное выполним команду:
Локальное хранилище находиться в профиле пользователя в директории «vagrant.d»
Выполнив шаги по созданию боксов для других версий Windows, можно приступать к созданию лаборатории.
Еще раз повторюсь для VMWare будет таже самая история, но нужен другой плагин Packer для взаимодействия c VMWare и в команде build измениться название гипервизора.