search
LoginSignup
1

More than 1 year has passed since last update.

posted at

自動テストツールAnitaを利用してNetBSDの自動インストールを試してみる

NetBSD Advent Calendar 2020 8日目の記事です。
今日はAnitaというツールを使用してNetBSDを自動インストールする方法を紹介しようと思います。

背景

NetBSDを使って何かちょっと実験してみたり、アプリケーションのビルドを行いたい場合に、まっさらな環境のNetBSDを用意したいということがあります。FreeBSDやLinuxではJail(8DockerPodmanといったコンテナ環境が利用できますが、NetBSD同様のコンテナみたいな環境を利用する場合はchrootを使う形になるかと思います。
NetBSDのインストールは仮想マシン上でも数分程度で完了するため、個人的にはVirtualBoxqemuに手動でインストールして環境を作るという使い方が主ですが、インストールを自動的できるならそれに越したことはありません。
今日紹介するAnitaというツールはテストツールという位置づけではありますが、機能のひとつとしてNetBSDの自動インストールが行えるため、今日はその方法を紹介してみます。

Anitaのインストール

必要なパッケージのインストール

まずは必要なパッケージをインストールします。Anitaはpip経由でインストールツールとなっており、事前にPythonをインストールしておきます。また、AnitaはGitHubで公開されているため、gitコマンドと(内部的に利用するようなので) cdrtools もインストールしておきます。

$ sudo -i pkg_add -v ca-certificates python37 py37-pexpect py37-pip curl git-base cdrtools qemu
$
$ curl -O https://bootstrap.pypa.io/get-pip.py
$ sudo python3.7 get-pip.py
$ sudo pip3.7 install -U pip

Anitaのソースコードを取得します。

$ git clone https://github.com/gson1703/anita.git
$ cd anita

NetBSDのCDイメージ取得先の設定

AnitaではNetBSDの自動インストール時にCDイメージをダウンロードするという挙動になっています。その時のURLがデフォルトでは ftp://ftp.netbsd.org/pub/NetBSD/ になっているため、国内のミラーサーバに変更しておきます。今回の場合は ftp://ftp.jaist.ac.jp/pub/NetBSD/ に変更します。

$ git diff
diff --git a/anita.py b/anita.py
index 09da90a..4cb50fc 100755
--- a/anita.py
+++ b/anita.py
@@ -43,7 +43,7 @@ __version__='2.8'
 # by number, not by the recommended method of getting them by URL.
 # See http://www.netbsd.org/mirrors/#ftp for the complete list.

-netbsd_mirror_url = "ftp://ftp.netbsd.org/pub/NetBSD/"
+netbsd_mirror_url = "ftp://ftp.jaist.ac.jp/pub/NetBSD/"
 #netbsd_mirror_url = "ftp://ftp.fi.NetBSD.org/pub/NetBSD/"

 # The supported architectures, and their properties.

Anitaのインストール

上記の設定を行ったのち、 setup.pyAnitaをインストールします。

$ sudo python3.7 setup.py install
$ which anita
/usr/pkg/bin/anita

これで準備が整いました。

Anitaを利用したNetBSDの自動インストール

さっそくAnitaを利用してNetBSDをインストールしてみましょう。以下のようなコマンドを走らせると、NetBSDのISOイメージ取得から始まり、OSインストールと再起動後の login: プロンプトの表示まで自動的に行われます。

$ mkdir anita_sample
$
$ cd anita_sample/
$ anita \
    --workdir work \
    --disk-size 2G \
    --memory-size 512M \
    --sets kern-GENERIC,modules,base,etc,comp \
    interact http://ftp.netbsd.org/pub/NetBSD/NetBSD-9.1/amd64/

また、 --sets オプションでインストールしたい配布物を指定できます。これはインストーラーにおける"Custom installation"の画面で指定する項目と同じですね。

img.png

まとめ

Anitaの紹介と簡単な使用方法の例を示してみました。公式Webサイトの説明によると、位置付け的には自動テストツールとのことですがNetBSDの自動インストールにも応用できそうです。加えて仮想マシンとしてqemuGXemulを利用できるため、NetBSDの特徴のひとつである、様々なアーキテクチャ上での動作確認にも威力を発揮しそうです。

参考URL

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1