Сборка образа VyOS
2023-07-06
·
3 мин. для прочтения
Самостоятельная сборка образа 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
- VyOS 1.2
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
- VyOS 1.2
- Перейдите в сборочный каталог:
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
- VyOS 1.2
- Сконфигурируйте параметры сборки:
- Скользящий релиз (rolling release)
./configure --architecture amd64 --build-by "your@email"
- Конкретный релиз
./configure --architecture amd64 --build-by "your@email" --build-type release --version 1.3.4
- Скользящий релиз (rolling release)
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.