Vyatta と戯れぐぬぬ

○ Live CDからKVMにインストール

http://www.vyatta.org/downloads

から Virtualization ISO を選んでインストールし、 virt-install 等で起動する。Live CDなので、この段階ではインストールされるわけではなくふつーのLinuxのCUI的にブートする。起動した先でユーザ名/パスワードを vyatta/vyatta としてログイン、"install image" でインストール

RedHat KVM版はSubscription版で有料。こちらはRedHat Enterpriseに最適化されている、とのこと。また、REST等のAPIもこちらだけの様子。とりあえずソフトウェアルータとして遊ぶだけなら不要

○ アップデート

有料のSubscription版ではコマンドとして "upgrade system image" が使えるが、Live CD版でも "add system image" コマンドの方は使える。 "add system image (isoのあるURL)" で動く。ちなみにこれだけだとフィンガープリントがないので、その辺りしっかりやる場合はもう少しがんばれ。

複数のイメージを保持できるようで、消すことも出来る。この辺りは Vyatta のドキュメントを見る (2013-02-26現在だと Vyatta-InstallingUpgrading_HardDisk_6.5R1_v02.pdf あたり)

○ isoイメージをビルドする

debian squeeze のみサポートしているとのこと。ちなみにUbuntuで出来るんじゃね、とかあんまり考えない方が良い程度にエラーが出る。また、ビルド時にネット上からsubmoduleのパッケージを大量にローカルのシステムにインストールした上でビルドが進むので、仕事でどっぷり浸かる、ということでなければやはりサンドボックス環境でビルドする方がよさげ。今回私はKVMとかでDebian用意した。これでここ2ヶ月で4回目のDebianインストールである。ところでUbuntuはここ3ヶ月であるが多分10くらい行ってる。良い勝負になってきた!

Live CDをsubmoduleなしでビルドするのは比較的容易。READMEを見よう。
wget http://packages.vyatta.com/vyatta-dev/oxnard/unstable/pool/main/squashfs-tools_4.1+vyatta-7_i386.deb
READMEのこれ以降の説明もそうだが、 バージョン部分はざっくりズレていることが多い。空気を読むこと。

○ submodule

上記のgitプロジェクト内にpkgs/というディレクトリがあり、そこにsubmoduleのディレクトリがある。最初に clone した時点では空で、もし何かしたければ自分で "git submodule init" "git submodule update pkgs/SUBMODULE" しろと言っている。それぞれの submodule は debian package。 build-iso を make する際に "sudo make iso" しろと書いてあって、なんでsudoなのかと思ったら Vyatta 自身のレポジトリからデフォルトの deb パッケージを持ってきて手元のdebianにインストールしたりもするから、のようだ。ドキュメントにはローカルの環境をここまで汚染するとは書いてないんだけど、どうも存分に汚染させてくれ、という前提らしい。お、おう。

で、Debian Squeeze であれば build-iso までは簡単で、このsubmoduleの作り方の項目ではもう少し色々書いてある。次回もREADMEを読もう!

From "Debian lenny" install the following packages:

いやちょっとまて

From "Debian wheezy" install the following packages

おお?

From Vyatta "unstable" package repository install the following packages:

つまりSqueezeに色々別のレポジトリのパッケージを手で入れろと言っている。lenny, wheezyのそれぞれのパッケージの場所、バージョンは銘記されてないので、名前でぐぐるとかarchiveを訪れるとかする必要がある。wheezyはまだ変更される余地があるんじゃないっけ。

現在のところ submodule である pkgs/nfct に対する update は失敗する。それ以外の submodule は問題ない。 "git submodule update" だと pkgs/nfct が問題になり他の submodule もupdateしてくれないので、どうしても全部落としてきたいなら "for a in `ls pkgs`; do; git submodule update pkgs/$a; done"とかやればなんとかなるような気がする。vyatta-XX というsubmoduleの中にこっそり linux-image というのがあってこれが極大。いや本当にLinux Kernelそのものだしこれ。というわけで遊んでみたいだけでかつ時間を取られたくなければlinux-imageはスキップする方がよいだろー。というより、目的を考えてちゃんと個別にピックするのが良いと思う。

手元で vyatta-bash のビルドくらいは成功した。build-isoのトップレベルのMakefileが "make vyatta-bash" といった形で作業をやってくれる。詳しくはREADMEを見る。

ビルドに成功した場合、pkgs/ 下に "vyatta-bash_999.dev_i386.deb" といったdebパッケージが出来る。これをDebianにインストールしてまたbuild-iso でmakeすれば、それを利用した iso が出来る様子。それを上記の "add system image" で既存のVyattaにインストール出来る。細かいところはDebianのパッケージ管理の話も絡むので今回は放置した。


このブログの人気の投稿

WiiUのコントローラが通信不良に陥った話

LibreOfficeで表紙、目次、本体でフッターのページ番号のスタイルを変える

技術書典2 あ-03 『もわねっとのPythonの本』