Conoha VPS: OpenBSD 7.3 - インストール・メディアを VM にアタッチ

作成
( 更新 )
@nabbisen

はじめに

Conoha VPSOpenBSD の公式イメージを提供してくれています 🙂

しかし更新が 7.0 で止まっています 😢

OpenBSD の OS ベース・システムの サポート・ポリシー (英語) は「最新リリースとその一つ前の 2 つをサポートする」というものです。 7.3 がリリースされた後にサポートされるのは 7.3 と 7.2 だけです。

すなわち 7.3 のリリースに伴い 7.1 が公式から姿を消しました。 このため、仮想マシン (VM、Conoha VPS の「サーバー」) を 7.0 から始めてコツコツと sysupgrade を実行して最新に追いつく、ということが (「7.1 の URL が見付かりません」エラーが出て) できなくなりました 😭

何か解決策は無いか… 🤔 と探したところ、Conoha VPS 公式でサポートされている機能に「ISOイメージをマウントする」というものがありました。カスタム・メディアをアタッチしてそこから VM をブートする、ということができます ✨🙌✨

参考 URL

チュートリアル

公式未提供 OS をインストールしてカスタム VM の作成を行います。Conoha VPS の API とツール、ならびに当該 OS のオリジナルのインストール・メディアを使用します。

conoha-iso ツールのインストール

まずはツールを取得します。Linux (amd64) の場合です:

$ curl -sL \
      https://github.com/hironobu-s/conoha-iso/releases/download/current/conoha-iso-linux.amd64.gz | \
      zcat > conoha-iso && \
      chmod +x ./conoha-iso

実行パーミッション付きで作成されます。

$ ls
conoha-iso*

この他 macOS や Windows 版の実行ファイルも提供されています。 さらに Go 言語 のソースをもとに自分でビルドすることもできます。

API ユーザーの準備

ツールは API 経由でイメージの操作を行います。 Conoha VPS の管理画面で、API ユーザーを有効にしましょう。

conoha-api-user

ツールの使用

認証情報の指定

ツール実行時に、API ユーザーの認証情報と、処理対象の指定が求められます。

コマンド実行履歴への配慮

ログその他に機密情報を残さないように注意しましょう。以下は Fish シェル の場合の例です:

$ fish --private
Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
fish is running in private mode, history will not be persisted.
環境変数で指定する場合

環境変数にパラメーターを記憶させておくことで、実行都度、オプション指定が不要になります。(もちろん内容が環境変数として永続しないように注意しましょう。)

Case fish

set -x で設定できます:

$ # `set -x a b` in fish is `export a=b` in bash

$ set -x OS_USERNAME (...)
$ set -x OS_PASSWORD  (...)

$ set -x OS_TENANT_ID (...)
$ # alternatively:
$ #set -x OS_TENANT_NAME (...)

$ set -x OS_REGION_NAME tyo2

なお tyo2 は東京リージョンです。

Case bash

export を用います:

$ export VAR_NAME=${value}
コマンド・オプションで指定する場合

環境変数を使わずに、ツール実行都度、コマンド・オプションとして指定する方法もあります。

$ # Case テナント ID を使用
$ ./conoha-iso (command) -u ${api-username} -p ${api-password} -t ${tenant-id} -r tyo2
$ # Case テナント名 を使用
$ #./conoha-iso (command) -u ${api-username} -p ${api-password} -n ${tenant-name} -r tyo2

イメージ一覧の表示

さて準備が整いました。 実際にツールを使いましょう。

まずは現状のカスタム・イメージの一覧を表示します:

$ ./conoha-iso list

おそらくまだ何も無いはずです:

No ISO images.

イメージのクラウド・ユーザー一時領域への保存

イメージを配置します。 この操作を行うことで、オリジナルの場所のイメージ・ファイルが、Conoha における API ユーザー (= アカウント) の一時領域に保存されます。(別の言い方をすると、download というコマンド名ですが、“ダウンロード” される先はユーザーのクライアント端末ではありません。)

$ ./conoha-iso download -i https://cdn.openbsd.org/pub/OpenBSD/7.3/amd64/cd73.iso

今回は OpenBSD の最新版がターゲットなので、OpenBSD の Downloading OpenBSD ページに記載されている URL を指定しました。

INFO[0001] Download request was accepted.

API リクエストが成功しました。 バックグラウンドでイメージのダウンロードが行われるので、少し待つ必要があります。(もっとも今回は cdXX.iso を指定したので、小サイズです。時間はほとんど掛かりませんでした。)

イメージ保存の完了をコマンドで確認しましょう:

$ ./conoha-iso list

以下のように目的のものが出力されれば OK です。(そうなら無かった場合はふたたび待ちましょう。)

[Image1]
Name:  cd73.iso
Url:   https://cdn.openbsd.org/pub/OpenBSD/7.3/amd64/cd73.iso
Path:  /mnt/isos/repos/tenant_iso_data/(...)/cd73.iso
Ctime: Sat Mar 25 16:42:44 2023
Size:  10780672

メディアの VM へのアタッチ

本手順には前提条件があります。 Conoha VPS の「サーバー」に、作成済、且つ、停止状態の VM があること、です。

準備が良いようでしたら、ツールで insert コマンドを実行します。

$ ./conoha-iso insert

Conoha VPS 「サーバー」マシンの一覧が表示されます。アタッチ対象を選びましょう。

[1] (...) (255-255-255-255)
Please select VPS [1-N]: 1

次にカスタム・イメージをたずねられます。 先ほど保存したものを選びましょう。

[1] cd73.iso
Please select ISO [1]: 1

以下のように表示されれば成功です。次回 VM 起動時、アタッチしたメディアからブートされます。

INFO[0004] ISO file was inserted and changed boot device. 

OS インストール

管理画面のサーバー「詳細情報」では、「ブートディスク」が「SSD 100 GB」のままですが、問題無くメディアから起動されます。

conoha-vm-with-media-inserted

なじみのあるインストーラー画面が始まるでしょう。

conoha-obsd-installer-started-by-media

メディアのデタッチ

インストールが完了すると、メディアをデタッチしましょう。そのために、VM をシャットダウンします。

シャットダウン後、ツールのコマンドでデタッチが行えます。

$ ./conoha-iso eject

対象の VM をたずねられるので、回答します。

[1] (...) (255-255-255-255)
Please select VPS [1-N]: 1

以下のように表示されれば成功です。

INFO[0003] ISO file was ejected.
トラブル・シューティング

eject が失敗する場合があります。

以下のエラーメッセージは、VM が実行中であることを表します。VM をシャットダウンしましょう。

ERRO[0003] Return 409 status code from the server. (Instance (...) in vm_state is active. Cannot mount|unmount iso image while the instance is in this state.) 

以下のエラーの場合、VM のシャットダウンが行われていますが、未完了の状態です。マシンが完全に停止するまで、もうしばらく待つ必要があります。

ERRO[0004] Return 409 status code from the server. (Instance (...) in task_state is powering-off. Cannot mount|unmount iso image while the instance is in this state.) 

おわりに

Conoha VPS 公式ツールとわかりやすいサポート・ページのおかげで、OpenBSD の最新版 VM を直接作成できるようになりました 👏

さらに Alpine Linux のような、公式イメージとして提供されていない OS もインストールできるようになりました 😊

conoha-vps-os-images

(参考) conoha-iso ヘルプ情報

./conoha-iso help
NAME:
   conoha-iso - This app allow you to manage the ISO images on ConoHa.

USAGE:
   conoha-iso [global options] command [command options] [arguments...]

VERSION:
   0.5

COMMANDS:
   list      List ISO Images.
   download  Download ISO file from the FTP/HTTP server.
   insert    Insert an ISO images to the VPS.
   eject     Eject an ISO image from the VPS.
   server    Run the server.
   help, h   Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h     show help
   --version, -v  print the version

ツール作成者の方々とプロジェクトに謝意を込めつつ。


Comments or feedbacks are welcomed and appreciated.