2024年2月18日日曜日

VyOSをソースからビルドして、ISOイメージを作成する

VyOSはRolliing releaseと呼ばれる非安定板であれば、ISOイメージを直接ダウンロードできるが、安定板は公式サイトから直接ダウンロードができない状況となっている。

安定板のVyOSを使いたい場合は、GitHubのソースからビルドすることで利用できる。

本記事では、VyOSをソースからビルドし、ISOイメージを作成する方法を記載する。なお、ビルドするバージョンはVyOS 1.3.5 (equuleus)とした。

環境

ビルドするためには、以下環境が必要となる。
  • dnfやaptを使用するため、インターネットに直接通信できること
    ※プロキシ環境で実施する場合は、OS、git、Dockerがインターネット通信できるように、適切にプロキシ設定を実施する必要があるが、手順が煩雑となるためお勧めできない
  • GitとDockerが動作する環境があること
今回は、AlmaLinux 9を最小インストールで構築し、そこにDockerをインストールして作業を実施してみた。

最短でVyOSをビルドするためのコマンド

最短でVyOSをビルドするコマンドを以下に記載する。上から順にコマンドを実行していけば、途中時間のかかる処理があるものの、2時間もあれば処理が完了するはずだ。私の環境ではCPU 1コアで2時間以内に完了した。ただし、yumやapt-getのダウンロード処理が多いため、インターネットの回線速度にも左右される。

git clone -b equuleus --single-branch https://github.com/vyos/vyos-build-bオプションでBranchをequuleusに指定し、VyOS 1.3.xを作成できるようにしている。もし、VyOS 1.2.xを利用したい場合はcruxを、VyOS 1.4.xを利用したい場合はSagittaを指定すればよい。

なお、ISOイメージビルド時に--versionオプションでバージョンを指定できるが、あくまでもイメージ作成後のVyOSで表示する際のバージョン表記を指定するものとなり、実際のバージョンはリポジトリにあるソースをもとにビルドされる。したがって、--versionで指定するバージョンは、任意の名前で指定しても問題ない。
# gitをインストール
dnf install git -y

# Dockerをインストール
dnf install yum-utils -y
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install docker-ce docker-ce-cli containerd.io -y
systemctl start docker

# ソースをダウンロード
git clone -b equuleus --single-branch https://github.com/vyos/vyos-build
# ISOイメージ作成用のコンテナをビルド
cd vyos-build/
docker build -t vyos/vyos-build:equuleus docker

# コンテナにてISOイメージをビルド(--versionでビルド後のVyOSで表示させるバージョンを指定)
docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:equuleus bash
./configure --architecture amd64 --build-type release --version 1.3.5
sudo make iso
完了後、/vyos/build配下を確認すると「live-image-amd64.hybrid.iso」というISOイメージが作成されており、これがVyOSのISOイメージとなる(「vyos-x.y.z-amd64.iso」のISOも存在するが同じものとなる)。本ISOには、open-vm-toolsも組み込まれており、ESXiの仮想マシンに対して本ISOイメージをマウントしてインストールを実施すれば、いつものVyOSを構築することができる。
root@ad1ecd365c09:/vyos# ls -l build/*.iso
-rw-r--r--. 1 root root 373293056 Feb 10 02:29 build/live-image-amd64.hybrid.iso
-rw-r--r--. 1 root root 373293056 Feb 10 02:32 build/vyos-1.3.5-amd64.iso
なお、docker run実行時に-v $(pwd):/vyosでDockerホストのディレクトリをコンテナにマウントしているため、Dockerホスト側でも同じファイルを確認・取得することができる。
[root@localhost vyos-build]# ls -l build/*.iso
-rw-r--r--. 1 root root 373293056  2月 10 11:29 build/live-image-amd64.hybrid.iso
-rw-r--r--. 1 root root 373293056  2月 10 11:32 build/vyos-1.3.5-amd64.iso

参考

参考

  • 2020/5/7 新規作成
  • 2021/1/9 VyOS 1.2.6のバージョンに内容を修正
  • 2024/2/17 VyOS 1.3の実施結果をふまえ更新
  • 2024/2/18 --versionの説明を修正

0 件のコメント:

コメントを投稿

人気の投稿