LoginSignup
3
3

More than 5 years have passed since last update.

OpenBSD 6.2 の Vagrant Box を作ってみた

Last updated at Posted at 2017-10-15

前提

VirtualBoxをproviderとして、VMにクリーンインストール済みのOpenBSDをVagrant Box化する。

環境

区分 バージョン
ホストOS macOS 10.13 High Sierra
Vagrant 2.2.3
Oracle VirtualBox 6.0.0
ゲストOS OpenBSD 6.4

※ おそらく、ホストOS は何でも良さそう。Vagrant も 1.9系でも動くかと思います。

手順

https://github.com/SierraX369/packer-templates を参考にしました。

VM 上での作業

以下の操作は VM 上で行う(別にSSH経由でなくともよい)

1. doas設定

まずは、OpenBSDの sudo の代わりのコマンドである doas の設定を行う。

echo 'permit vagrant' >>/etc/doas.conf
echo 'permit nopass setenv { PKG_PATH ENV PS1 SSH_AUTH_SOCK } :wheel' >>/etc/doas.conf

2. curlインストール

参考にしている Packer テンプレートでは、ftp コマンドを使っているようだが、今回は curl を使用するため、 pkg_add にてインストールする。

doas pkg_add curl

3. Vagrant公開鍵設定

Vagrant の公開鍵をダウンロードしてして配置する

curl --insecure --location "https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub" -O $HOME_DIR/.ssh/authorized_keys;
chown -R vagrant ~/.ssh;
chmod -R go-rwsx ~/.ssh;

4. syspatch設定

セキュリティーアップデートをバイナリーアップデートで適用するための syspatch コマンドの設定をする。
ソースコードからアップデート適用するような場合は設定不要だと思います。
※ URLの末尾が OpenBSD で終ること。 / で終ると動きません

su -
echo 'https://fastly.cdn.openbsd.org/pub/OpenBSD' >> /etc/installurl
exit

5. Box サイズを小さくする

su -
dd if=/dev/zero of=/EMPTY bs=1M || echo "dd exit code $? is suppressed";
rm -f /EMPTY;

sync;
exit

ホスト側で作業

Box 化

vagrant package コマンドで Box として固める。

Vagrantfileの変更

Vagrantfileに 以下の設定を追加する

doas コマンド設定

sudo コマンドの代わりに doas コマンドを使用する

Vagrantfile
config.ssh.sudo_command = "doas env %c"

シェルコマンド設定

bash ではなく ksh なので、以下のように設定する(多分、kshを指定しても良い)

Vagrantfile
config.ssh.shell = "sh"

OpenBSD がゲストであることを記載

要らないかも知れないが、ゲストOSが OpenBSD であることを記載する

Vagrantfile
config.vm.guest = :openbsd

共有フォルダー設定

VirtualBox guest addition が対応していないため、 vboxfs による共有フォルダー機能は使えない。
そのため、NFS設定にて共有フォルダー設定する。
共有フォルダーを使用しないのであれば、共有フォルダーを無効にするように設定する。

Vagrantfile
config.vm.synced_folder ".", "/vagrant", type: "nfs"

これで、OpenBSD をVagrant Boxとして使えます。

何かあって消すこともいずれはあるかと思いますが、以下に作ったものをアップロードしてあります。
ちなみに、 VirtualBoxの UEFI を有効にして、パーティションテーブルも GPT にしています。
https://app.vagrantup.com/poad/boxes/openbsd

3
3
0

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
3
3