Сборка образа VyOS

Самостоятельная сборка образа VyOS.

Содержание

1 Общая информация

  • Из-за модели распространения VyOS становится оправданной самостоятельная сборка.
    • VyOS является проектом с открытым исходным кодом, но ISO-образы могут быть получены только по подписке или путем внесения вклада в сообщество.
  • Текущая стабильная версия: 1.3.4 (https://blog.vyos.io/vyos-1.3.4-lts-release).
  • Описание сборки VyOS: https://docs.vyos.io/en/equuleus/contributing/build-vyos.html

2 Сборка

  • Разработчики рекомендуют использование для сборки окружения в docker.

2.1 Установка docker

2.1.1 Установка

  • Debian:
    sudo apt-get update
    sudo apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
    sudo apt-get update
    sudo apt-get install -y docker-ce
    
  • Ubuntu:
    sudo apt-get update
    sudo apt-get -y install \
      ca-certificates \
      curl \
      gnupg \
      lsb-release
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    
  • Fedora:
    sudo dnf -y install dnf-plugins-core
    sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
    sudo dnf install -y docker-ce docker-ce-cli containerd.io
    
  • CentOS:
    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    sudo yum install -y docker-ce docker-ce-cli containerd.io
    
  • Gentoo:
    emerge app-containers/docker app-containers/docker-cli
    

2.1.2 Запуск

  • Запустите docker:
    systemctl start docker.service
    

2.1.3 Конфигурация

  • Текущего пользователя без полномочий root необходимо добавить в группу docker:
    usermod -aG docker yourusername
    

2.2 Контейнер со сборочным окружением

  • Контейнер можно создать вручную или загрузить готовый из DockerHub (https://hub.docker.com/).

2.2.1 Загрузка контейнера из DockerHub

  • Чтобы загрузить контейнер из DockerHub, запустите:
    • VyOS 1.2
      docker pull vyos/vyos-build:crux
      
    • VyOS 1.3
      docker pull vyos/vyos-build:equuleus
      
    • VyOS 1.4
      docker pull vyos/vyos-build:sagitta
      
    • VyOS 1.5 (rolling release)
      docker pull vyos/vyos-build:current
      

2.3 Подготовка среды сборки

  • Загрузите сборочный код:
    • VyOS 1.2
      git clone -b crux --single-branch https://github.com/vyos/vyos-build
      
    • VyOS 1.3
      git clone -b equuleus --single-branch https://github.com/vyos/vyos-build
      
    • VyOS 1.4
      git clone -b sagitta --single-branch https://github.com/vyos/vyos-build
      
    • VyOS 1.5 (rolling release)
      git clone -b current --single-branch https://github.com/vyos/vyos-build
      
  • Перейдите в сборочный каталог:
    cd vyos-build
    
  • Подключите данный каталог к docker:
    • VyOS 1.2
      docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:crux bash
      
    • VyOS 1.3
      docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:equuleus bash
      
    • VyOS 1.4
      docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:sagitta bash
      
    • VyOS 1.5 (rolling release)
      docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:current bash
      
  • Сконфигурируйте параметры сборки:
    • Скользящий релиз (rolling release)
      ./configure --architecture amd64 --build-by "your@email"
      
    • Конкретный релиз
      ./configure --architecture amd64 --build-by "your@email" --build-type release --version 1.3.4
      

2.4 Сборка ISO

  • Запустите сборку:
    sudo make iso
    

2.5 Образы для платформ виртуализации

2.6 Конфигурация packer

  • В файле packer.json заданы достаточно оптимистичные промежутки времени.
  • При компиляции в виртуальной машине их не хватает.
  • Увеличим их:
    sed -ie "s:wait3m:wait10m:g" scripts/packer.json
    

2.6.1 QEMU

  • Запустите следующую команду после создания образа qcow2:
    make qemu
    

2.6.2 Vagrant

  • Запустите следующую команду после создания образа для vagrant:
    make vagrant-libvirt
    
  • Для создания используется образ, созданный для Quemu.

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие