TrueCommand を Docker で実行する

TrueCommand-SimplifiedOperations.png

複数の TrueNAS をまとめて監視できる TrueCommand をローカルの Docker で実行する場合は、
50ドライブまで無料で利用できるらしいです。見た感じシステム用は除いてストレージ用のディスクだけのカウントでよさそう。

TrueCommand

TrueCommand Licensing
TrueCommand software is free to use to manage up to 50 drives, and can be deployed as a Docker Container. Licenses to expand TrueCommand capabilities may be purchased from the iXsystems Account Portal. Pricing is based on the number of drives and the support level required.
TrueCommand ライセンス
TrueCommand ソフトウェアは、最大 50 ドライブまで無料で使用でき、Docker コンテナとしてデプロイできます。TrueCommand の機能を拡張するライセンスは、iXsystems アカウントポータルから購入できます。価格は、ドライブの数と必要なサポートレベルに基づいて決まります。

なお iXsystems がホストしてるクラウド版 TrueCommand Cloud は30ドライブ6ドル/月かららしいです。

Use TrueCommand Cloud – Software as a Service
TrueCommand Cloud is a secure and easy-to-use cloud service. Each TrueCommand instance is hosted by iXsystems® in a private cloud and uses WireGuard VPN technology to secure communications with each NAS system and with each user or storage admin.

TrueCommand Cloud を利用する - Software as a Service
TrueCommand Cloud は、安全で使いやすいクラウド サービスです。各 TrueCommand インスタンスは iXsystems® によってプライベートクラウドでホストされ、WireGuard VPN 技術を使用して、各 NAS システムおよび各ユーザーまたはストレージ管理者との通信を保護します。

・Subscriptions start at $6 per month for 30 drives and are based on the number of drives.
・Each TrueNAS must run TrueNAS 12.0+ or SCALE for the Wireguard VPN capability.
・Subscribe and setup TrueCommand Cloud with these instructions.

・サブスクリプションは、30ドライブで月額6ドルから開始され、ドライブ数に基づいて設定されます。
・WireGuard VPN 機能を使用するには、各 TrueNAS で TrueNAS 12.0+ または SCALE を実行する必要があります。
・以下の手順に従って、TrueCommand Cloud に加入し、セットアップしてください。

Get Started with TrueCommand Cloud
(リンクは元の TrueCommand のページからどうぞ)

で、手元にLinux環境を用意して無料の Docker 版を使ってみます。
(ようやく ESXi の後継として Proxmox VE 環境を構築したのでこういうことに手が出せるように)


まずは、 Docker の実行環境が必要です。

CentOS7 の後継として AlmaLinux を使っているので、
Proxmox VE 上の仮想マシンで
AlmaLinux を Minimal ISO からインストールして
dnf -y update しただけの環境で構築します。

あと、TrueNAS SCALEのDockerで実行するのは非推奨らしいです。
(自分の親を対象にできるのは変なのでそんなもんかと)

AlmaLinux への Docker の環境構築

(ここは、TrueCommand の Docker に限った話ではないので、TrueCommand のドキュメントでも説明されていないし、調べて実行したコマンドを羅列。のでインストールしているモジュールも最小限ではないかも知れません。説明とかは Docker 自体のインストールに詳しいサイトで確認お願いします)

# sudo yum install -y yum-utils

# sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

[Y][Enter]
[Y][Enter]

開始

# sudo systemctl start docker

テスト

# docker run hello-world

どっかに「Hello from Docker!」と表示されればOKらしい。

Docker サービス自動起動

# systemctl enable docker

システム起動時に自動的に Docker が使えるようにする

TrueCommand を実行するための準備

環境設定を永続化するために保存先となるフォルダを作成します。
とりあえず、
/var/truecommand/data
というフォルダを作成します。
mkdir /var/truecommand
mkdir /var/truecommand/data
(truecommand フォルダ自体を使ってもいいんだけど、マウント先が /data なのでなんとなく)

TrueCommand の Docker イメージ実行時にこのフォルダにデータや設定をここに保存するようにする、というものです。そうすれば Docker イメージが新しくなってもデータが失われない、はず。

TrueCommand の実行

Download the Self-hosted TrueCommand Container
のフォームに名前とメールアドレス、会社名、国を選択してGet TrueCommand とやると表示される

Installation
のところに書いてある Docker コマンドは
docker pull ixsystems/truecommand
docker run --detach -v "[hostdirectory]:/data" -p [portnumber]:80 -p [sslportnumber]:443 ixsystems/truecommand
ですが、

docker pull ixsystems/truecommand
はいいとして

Documentation Hub
のNightlyのところでは
docker run --detach -v "/hostdir:/data" -p port:80 -p ssl:443 ghcr.io/ixsystems/truecommand:v3.0.2
3.0 を選択すると
docker run --detach -v “/hostdir:/data” -p port:80 -p ssl:443 ghcr.io/ixsystems/truecommand:v3.0.0
と書かれています。
特定の旧バージョンを実行したい場合は、
docker run \--detach -v "/DockerDir:/data" -p 9004:80 -p 9005:443 ghcr.io/ixsystems/truecommand:release-v2.3.3
Nightlyは latest を指定するらしい
docker run \--detach -v "/DockerDir:/data" -p 9004:80 -p 9005:443 ghcr.io/ixsystems/truecommand:latest

TrueCommand のデフォルト(というか推奨?)の Web UI のポートがどこなのかわかりにくいので、適当にコマンドを実行したり、ネットで検索したりして確認しました。
結局デフォルトはポート80らしい。

データ保管用ディレクトリの記述は上記の設定で -v /var/truecommand/data:/data
とすると、

docker run -detach -p 80:80 -p 443:443 -v /var/truecommand/data:/data ixsystems/truecommand

こんな感じか。
-detach は一般的に -d と略されているので略して、
でもこれだとコンテナ名がランダムな文字列でわかりにくいので

docker run -d --name truecommand -p 80:80 -p 443:443 -v /var/truecommand/data:/data ixsystems/truecommand

こうしておけば

docker stop truecommand
docker rm truecommand
docker start truecommand
などでコントロールできるので楽かなと。

システム起動時に自動的にコンテナも起動するようにするには
--restart=always
--restart=unless-stopped
かな。
明示的に停止したときは再起動しない unless-stopped にして
docker run -d --name truecommand --restart=unless-stopped -p 80:80 -p 443:443 -v /var/truecommand/data:/data ixsystems/truecommand
こんなところかな。

実行したら
ホストのIPアドレスにアクセスして
TrueCommand の管理者アカウントの作成画面が表示されればOK。

-p 80:80 の前の方の数字を変更することで、 80 番以外にマッピングできるけど、上の例だと 9004(SSLは 9005) がチラッとでてるけど、さほど定番って感じじゃないのかな。
(手元の AlmaLinux の仮想マシンは TrueCommand 専用みたいなもんだから apache も起動してないし 80 のままでいいか。1つのシステム上で設定フォルダを共用して TrueCommand を複数起動するのは非推奨らしいです。当然といえば当然かと)

管理者アカウントの作成

Web UIからアクセスすると、
最初に管理者アカウントの作成が要求される。
IDとパスワードを指定して以降はそれを使うらしい。他のユーザーのために後から追加もできそう。

初期設定

とりあえず接続してるシステムが1個もない画面が表示される
TrueCommand の環境設定などは
右上の歯車 > Administration
とりあえずテスト用にさっさとTrueNASと接続したいので、証明書とかきちんと用意しないで済むように
Configuration の CONFIGURE をクリックして
■ Ignore all SSL errors (no certificate validation)
にチェックを入れる。
(動作がわかったら外した方が安全とは思いますが)
その下に
■ Accept self-signed certificates
っていう項目があるからチェックしなくてもいいかも。

(証明書は何もしなくてもつながるっぽい)
自己署名証明書が期限切れになっている TrueNAS は証明書にエラーがある、って言ってきて接続できないので、
■ Ignore all SSL errors (no certificate validation)
にチェックを入れると接続させることができる。
(結局チェック入れることにした。自己署名証明書だから作り直してもなあ、と)


一番下にスクロールして Save

あとは特にないかな。

Docker でバージョン無指定、latest の場合は Nightly で現在 3.0.2 らしい。


TrueNAS システムへの接続

対象のTrueNAS システムのIPアドレスとrootのパスワード*またはAPI KEY
を確認して、

NEW SYSTEM
から

IP Address or Hostname
対象のTrueNASのIPアドレス、(ホスト名で指定してもいいらしいけど)

Port
は443固定かな

Nick Name
はTrueCommand上で対象のシステムを区別するための名前らしい。
TrueNAS のホスト名と一緒が手っとり早そうだけど任意。
適当に設定

Root Password /API Key
Root Password /API Key Confirm
に root のパスワードまたはAKI Keyを設定して
ADD SYSTEM

なお、TureNAS SCALEは新規インストールする際、adminユーザーで設定しているとrootユーザーのパスワードを設定していないのでそのままだと接続できません。

設定変更してパスワード設定するくらいなら API Key 設定した方が早いし設定的にもいいか。

API KEY を使いたい場合は、
対象のTrueNASで、
TrueNAS SCALE の場合
右上の人型アイコンからAPI Keys
Add

Name に適当な文字列(TrueCommandとか)を入れて
Save ってやると、
API Key が発行される。
コレをコピって使う。
なお、この時しか表示されないので、わからなくなったらリセットするか作り直し。

TrueNAS CORE は、右上の歯車に API Keys があるので、
そこから ADD で同様に作成できるっぽい。


*TrueNAS SCALE に root のパスワードを設定するには、
対象の TrueNAS SCALE の管理画面で
Credencials > Local Users で root を Edit
Disable Password
がチェックされているので、
外して New Password , Confirm New Password を設定して
Save
で指定した Password を設定することで接続できます。


まずはここまでかな。


公式のドキュメントがアッサリ過ぎでよくわかんなすぎる。


管理してる TrueNAS 群を Fleet (艦隊)って呼ぶのがちょっと気に入ってる。

コメントは無効になっていますので、何かありましたらフォームかTwitter(X)で。

About

2024年08月26日 22:02に投稿されたエントリーのページです。

ひとつ前の投稿は「TrueNAS SCALE のハードディスク交換手順」です。

次の投稿は「TrueNAS SCALE の SMB を ACL Editor でアクセス制御してみる」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35