Skip to content

About

Сценарии сборки образов vagrant для rudev.io

Resources

Stars

5 stars

Watchers

3 watching

Forks

Repository files navigation

Шаблоны для сборки образов Российских ОС от Лаборатории 50

Набор шаблонов 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.

  1. Установить QEMU и VirtualBox.
  2. Установить Packer (может потребоваться VPN). Прямые ссылки: packer_1.11.2_linux_amd64.zip, packer_1.11.2-1_amd64.deb.
  3. Установить плагины Packer:
    $ packer init config.pkr.hcl
    
  4. Собрать бокс Debian 12 для libvirt:
    $ make bookworm.libvirt
    
    или
    $ cd packer_templates/debian
    $ packer build -only qemu.bookworm bookworm.pkr.hcl
    
    или указав собственный ISO:
    $ 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
    
  5. Собрать бокс Debian 12 для VirtualBox:
    $ make bookworm.vbox
    
    или
    $ cd packer_templates/debian
    $ packer build -only virtualbox-iso.bookworm bookworm.pkr.hcl
    

Для тестирования собранного образа на локальном сервере libvirt предоставлен файл Vagrantfile, который умеет автоматически регистрировать box-файл.

  1. Установить libvirt:

    # apt-get -y install libvirt-daemon-system libvirt-clients qemu-system-x86-64
    
  2. Добавить себя в группу libvirt:

    $ sudo usermod -aG libvirt $USER
    

    Чтобы изменения вступили в силу, надо перелогиниться.

  3. Создать пул 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
    
  4. Скачать Vagrant с https://www.vagrantup.com/downloads (может потребоваться VPN). Вот прямые ссылки на vagrant_2.3.7-1_amd64.deb и vagrant-2.3.7-1.x86_64.rpm.

  5. Установите Vagrant:

    $ sudo dpkg -i vagrant_2.3.7-1_amd64.deb
    
  6. Уставить плагин 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
    
  7. Создать ВМ:

    $ vagrant up bookworm
    
  8. Подключиться к созданной ВМ по 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:

  1. Собрать нужные боксы:
    $ make bookworm.libvirt
    $ make bookworm.vbox
    
  2. Задать переменную окружения VAGRANT_SERVER_URL.
  3. Авторизоваться:
    $ vagrant cloud auth login
    
  4. Выпустить новую версию:
    $ ./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.

About

Сценарии сборки образов vagrant для rudev.io

Resources

Stars

5 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages