Лаборатория
June 4

Создаем локальные боксы 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 точно нужны:

  • vagrant-reload
  • micromachine
  • vagrant-vbguest
  • nori
  • winrm
  • winrm-fs
  • winrm-elevated

Чтобы не обращаться к сайту Hahicorp для установки плагинов пойдем на сайт https://rubygems.org и скачаем локально все необходимые плагины. Теперь чтобы установить плагины нужно выполнить команду для каждого файла:

vagrant.exe plugin install --plugin-clean-sources <plugin_name>.gem

Проверить что все плагины установлены можно командой:

vagrant.exe plugin list

Список установленных плагинов Vagrant

Мы готовы к созданию боксов.

Авторы 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.exe box list

Локальное хранилище боксов Vagrant

Локальное хранилище находиться в профиле пользователя в директории «vagrant.d»

Выполнив шаги по созданию боксов для других версий Windows, можно приступать к созданию лаборатории.

Еще раз повторюсь для VMWare будет таже самая история, но нужен другой плагин Packer для взаимодействия c VMWare и в команде build измениться название гипервизора.