dockerを使ってvyosのLTSを自分でビルドする

2022/02/15

Opensenseをメインルーターとして使っていますが、やっぱりLinux製のほうが中で何が動いているのか把握しやすいです。そのためメンテナンスがしやすいOpnsenseからVyosに切り替える準備をしていこうと思います。OpnsenseでFirewallの学習もできたのでそれも活かします。

前提の環境準備

dockerを準備します。OSはdockerが動けば何でも。 今回はubuntu 20.04でやります。 特にバージョン指定もないので、スクリプトで最新をささっと入れましょう。

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

毎回sudoもめんどくさいので消しときます。

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker 

これでいいでしょう。 あとはgitも入っているか確認しましょう。リポジトリから複製するのに使います。

sudo apt update
sudo apt install git

あとはvyosのドキュメントの手順に沿っていきます。

vyos doc

ビルド環境を作成していく

リポジトリをクローンします。 1.3の環境を作ってるので

git clone -b equuleus --single-branch https://github.com/vyos/vyos-build
cd vyos-build

コンテナはDockerHubから持ってくると最新を保ってくれるみたいなのでそっちを使います。まあコンテナ作成の速度の面でもこっちが便利でしょう。

DockerHub_vyos-build

docker pull vyos/vyos-build:equuleus

ios作成には常にコンテナを最新にしてビルドできるようにスクリプトを作ると便利みたいです。そうしましょう。 .bash_aliasesに以下を追記していきます。

alias vybld='docker pull vyos/vyos-build:equuleus && docker run --rm -it \
    -v "$(pwd)":/vyos \
    -v "$HOME/.gitconfig":/etc/gitconfig \
    -v "$HOME/.bash_aliases":/home/vyos_bld/.bash_aliases \
    -v "$HOME/.bashrc":/home/vyos_bld/.bashrc \
    -w /vyos --privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0 \
    -e GOSU_UID=$(id -u) -e GOSU_GID=$(id -g) \
    vyos/vyos-build:equuleus bash'

bashを読み直しましょう。

source .bashrc

最後にvyos-buildフォルダーでaliasを入力しましょう。

vybld

これで環境を作成して環境に入ることができました。 あとはカスタマイズをしてisoを作成しましょう。

isoの作成

カスタマイズの./configureについてはドキュメント参照してください。 LTSを作成するなら別にいじる必要もない気もしますが。

./configure --architecture amd64 --build-by "damilab"
sudo make iso

パッとできるわけではないのでボケーっと待ちます。

終わると、buildフォルダーに「live-image-amd64.hybrid.iso」として出力されます。 最後に元のコンソールに戻りましょう。

exit

次回はこれをインストールしましょう。


Profile picture

名前: dami 自己紹介: 野良ITインフラエンジニアです。サイトの作りが甘いため見にくくて申し訳ありません。勉強しながら改善していきます。