VyOS 1.4.x (Sagitta) のビルド ============================= :blog_date:`2024/04/07` ルーターとして `VyOS – Open source router and firewall platform `_ を利用し、他に無線AP をたてて無線利用をしている。 古いバージョンを使っており、更新したく、この更新の際の資料を整理がてらブログに書き出すこととする。 本記事は `Build VyOS — VyOS 1.4.x (sagitta) documentation `_ を参照し整理している。 環境は Debian on Windows11 にて Docker コンテナ内でビルドを行う。 ビルドは Debian でしか進まないため、Debian を利用してビルドをすること。 最初 CentOS 9 Stream で行い進まずはまってしまった。 なお、Debian における KVM の構築は `KVM - Debian Wiki `_ を参考すること。 .. contents:: :local: 1. git clone ------------ 対応するバージョンのビルド環境を clone する。 .. code-block:: console $ git clone -b sagitta https://github.com/vyos/vyos-build.git vyos-build-sagitta $ cd vyos-build-sagitta 参考: `Build VyOS — VyOS 1.4.x (sagitta) documentation `_ 1. Docker コンテナの起動 ------------------------ ビルドのためのコンテナを起動する。 .. code-block:: console $ docker pull docker.io/vyos/vyos-build:sagitta $ docker run --rm -it \ -v "$(pwd):/mnt" -w /mnt \ --privileged \ --sysctl net.ipv6.conf.lo.disable_ipv6=0 \ -e GOSU_UID=$(id -u) -e GOSU_GID=$(id -g) \ docker.io/vyos/vyos-build:sagitta \ bash コマンドのオプションなどは `Tips and Tricks — Build VyOS — VyOS 1.4.x (sagitta) documentation `_ を流用している。 資料によると、 ``--sysctl net.ipv6.conf.lo.disable_ipv6=0`` については、 指定しないとビルド時のテストで失敗するようだ。 3. ビルド --------- ビルドを進める。 custom-package の指定でカスタムパッケージを追加することができる。 .. code-block:: console $ sudo make clean $ sudo ./scripts/build-vyos-image iso \ --build-by blah@example.com \ --version 1.4.2024_03_23 \ --architecture amd64 \ --build-type release \ --custom-package vim 4. 動作検証 ----------- 検討した設定などが VyOS 上で有効か確認を行うため、仮想環境を起動する。 network のしても実はできるが動かなかったので試していない。 環境構築と起動まで。起動時は少し時間がかかるので待つこと。 .. code-block:: console $ virt-install -n vyos_r1 \ --memory 4096 \ --vcpus 2 \ --cdrom build/live-image-amd64.hybrid.iso \ --os-variant debian10 \ --graphics vnc \ --hvm \ --virt-type kvm \ --disk path=/tmp/vyos_r1.qcow2,bus=virtio,size=8 \ --noautoconsole $ virsh console vyos_r1 Connected to domain vyos_r1 Escape character is ^] 実行後の環境破棄手順。 .. code-block:: console $ virsh destroy vyos_r1 $ virsh undefine vyos_r1