Набор шаблонов Packer для сборки образов Российских ОС. Образы предназначены для использования c системой Vagrant.
| Образ | Цели Makefile |
|---|---|
| Astra Linux 1.6 | smolensk-1.6.libvirt |
| Astra Linux 1.6 + Fly | smolensk-1.6-fly.libvirt |
| Astra Linux 1.7 | smolensk-1.7.libvirt |
| Astra Linux 1.7 + Fly | smolensk-1.7-fly.libvirt |
| Astra Linux 1.8 | smolensk-1.8.libvirt |
| Astra Linux 1.8 + Fly | smolensk-1.8-fly.libvirt |
| Альт 10 | aronia.libvirt, aronia.vbox |
| Альт 10 + KDE | aronia-kde.libvirt |
| Альт 11 | salvia.libvirt, salvia.vbox |
| Альт 11 + KDE | salvia-kde.libvirt |
| Debian 12 (bookworm) | bookworm.libvirt, bookworm.vbox |
| Debian 12 (bookworm) + KDE | bookworm-kde.libvirt |
| ГосJava 11 | gosjava11.libvirt, gosjava11.vbox |
| МОНО | mono.libvirt, mono.vbox |
| Основа 2.11 (Onyx) | onyx.libvirt, onyx.vbox |
| РЕД ОС 7.3 | redos7.libvirt, redos7.vbox |
| РЕД ОС 7.3 + MATE | redos7-mate.libvirt |
| РЕД ОС 8 | redos8.libvirt, redos8.vbox |
| РЕД ОС 8 + KDE | redos8-kde.libvirt |
| РОСА Фреш 12.5.1 | rosa2021.1.libvirt, rosa2021.1.vbox |
| РОСА Фреш 12.5.1 + KDE | rosa2021.1-kde.libvirt |
| РОСА Фреш 13.1 | rosa13.libvirt, rosa13.vbox |
| РОСА Фреш 13.1 + KDE | rosa13-kde.libvirt |
| Ubuntu 22.04 LTS (Jammy Jellyfish) | jammy.libvirt, jammy.vbox |
| Ubuntu 24.04 LTS (Noble Numbat) | noble.libvirt, noble.vbox |
| Ubuntu 24.04 LTS (Noble Numbat) + KDE | noble-kde.libvirt |
| openEuler 24.03 LTS | openeuler2403.libvirt, openeuler2403.vbox |
Тестировалось на Debian 12, Packer 1.11.2, QEMU 7.2.13, VirtualBox 7.0.20.
- Установить QEMU и VirtualBox.
- Установить Packer (может потребоваться VPN). Прямые ссылки: packer_1.11.2_linux_amd64.zip, packer_1.11.2-1_amd64.deb.
- Установить плагины Packer:
$ packer init config.pkr.hcl - Собрать бокс Debian 12 для libvirt:
или
$ make bookworm.libvirtили указав собственный ISO:$ cd packer_templates/debian $ packer build -only qemu.bookworm bookworm.pkr.hcl$ cd packer_templates/debian $ packer build -only qemu.bookworm \ -var 'iso_url=./debian-12.6.0-amd64-netinst.iso' \ -var 'iso_checksum=md5:462e540d1ba2ca5ecc68ab79c8e3788a' \ bookworm.pkr.hcl - Собрать бокс Debian 12 для VirtualBox:
или
$ make bookworm.vbox$ cd packer_templates/debian $ packer build -only virtualbox-iso.bookworm bookworm.pkr.hcl
Для тестирования собранного образа на локальном сервере libvirt предоставлен файл Vagrantfile,
который умеет автоматически регистрировать box-файл.
-
Установить libvirt:
# apt-get -y install libvirt-daemon-system libvirt-clients qemu-system-x86-64 -
Добавить себя в группу
libvirt:$ sudo usermod -aG libvirt $USERЧтобы изменения вступили в силу, надо перелогиниться.
-
Создать пул default в
/var/lib/libvirt/images:$ virsh -c 'qemu:///system' pool-define-as default dir - - - - /var/lib/libvirt/images $ virsh -c 'qemu:///system' pool-start default $ virsh -c 'qemu:///system' pool-autostart default -
Скачать Vagrant с https://www.vagrantup.com/downloads (может потребоваться VPN). Вот прямые ссылки на vagrant_2.3.7-1_amd64.deb и vagrant-2.3.7-1.x86_64.rpm.
-
Установите Vagrant:
$ sudo dpkg -i vagrant_2.3.7-1_amd64.deb -
Уставить плагин Vagrant'а для работы с libvirt (может потребоваться VPN):
$ vagrant plugin install vagrant-libvirtВ качестве альтернативы можно грузить плагины с rubygems.org:
$ sudo apt-get install -y build-essential libvirt-dev $ export VAGRANT_ALLOW_PLUGIN_SOURCE_ERRORS=1 $ vagrant plugin install --plugin-clean-sources --plugin-source https://rubygems.org vagrant-libvirt -
Создать ВМ:
$ vagrant up bookworm -
Подключиться к созданной ВМ по SSH можно следующим образом:
$ vagrant ssh bookwormЧтобы работать с ВМ при помощи графического интерфейса, установите приложение
virt-manager, там уже должно быть соединение, настроенное наqemu:///system.
Тестирование образов libvirt с разных Vagrant-серверов:
$ cd tests
$ VAGRANT_SERVER_URL=https://vagrant.rudev.io make mono.libvirt
$ VAGRANT_SERVER_URL=http://delta.lab50/vagrant make mono.libvirt
Тестирование образов VirtualBox с разных Vagrant-серверов:
$ cd tests
$ VAGRANT_SERVER_URL=https://vagrant.rudev.io make mono.vbox
$ VAGRANT_SERVER_URL=http://delta.lab50/vagrant make mono.vbox
Тестирование локальных box-файлов:
$ cd tests
$ unset VAGRANT_SERVER_URL
$ make mono.libvirt
$ make mono.vbox
Цели тестового Makefile совпадают с целями главного Makefile.
На примере lab50/bookworm:
- Собрать нужные боксы:
$ make bookworm.libvirt $ make bookworm.vbox - Задать переменную окружения
VAGRANT_SERVER_URL. - Авторизоваться:
$ vagrant cloud auth login - Выпустить новую версию:
Или вручную:
$ ./create-version.sh lab50 bookworm 20260126.1$ vagrant cloud version create lab50/bookworm 20260126.1 $ vagrant cloud publish lab50/bookworm 20260126.1 libvirt packer_templates/debian/qemu/bookworm.box $ vagrant cloud publish lab50/bookworm 20260126.1 virtualbox packer_templates/debian/virtualbox-iso/bookworm.box $ vagrant cloud version release lab50/bookworm 20260126.1 $ vagrant cloud version update --description 'Debian 12.13.0' lab50/bookworm 20260126.1
Распространяется под лицензией GNU General Public License v3.0.
Полный текст лицензии в файле LICENSE.
Репозиторий проекта: https://gitlab.com/lab50/rudev.io/boxes
Разработка поддерживается компанией Лаборатория 50.
