LoginSignup
1

More than 3 years have passed since last update.

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

Posted at

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
  3. You can use dark theme
What you can do with signing up
1