TrueNAS SCALEを使ってNAS+サーバーを作ってみる Dockerサーバー構築編

## はじめに

今回で最終回です。
前回はストレージ構築編を投稿しました。

https://qiita.com/shirokuma1101/items/6c1596b58ce422f400f8

今回はTrueNAS SCALEの機能の一つであるDockerサーバーを構築します。

今回構築するアプリケーションはGrafanaとInfluxDBになります。この記事ではブラウザーからアクセスするところまでになるので、ちょっとした設定などは前に投稿した記事にも書いてあるので、参考にしてください。

https://qiita.com/shirokuma1101/items/0b0146c77bcb5b8b0aa2


## Dockerサーバー構築編

![truenas_90.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660536/150c9fb3-ce8a-3cdb-23d0-b8701f2cb408.png)

`Apps`タブへアクセスします。すると`Choose a pool for Apps`とポップアップが出ますが、ここではコンテナを保存するPoolを選択します。今回は`tank`しか作成していないのでそれを選びます。

![truenas_91.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660536/f28632b1-f1d2-3c2d-e450-778871729a11.png)

`Datasets`タブへアクセスすると`tank`下に`ix-applications`という名前でDatasetが作成されていることが確認できます。

### Catalogの追加 (今回のサーバー構築に必須ではありません。)

今回のサーバー構築には関係ありませんが、大体のアプリケーションは今から紹介する方法でも導入することができます。
GrafanaはあったのですがInfluxDBは見当たらなかったのでこちらでの導入は行いませんでした、、、

![truenas_92.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660536/9c416150-bd24-8171-3bed-1b7e3cbbc2fc.png)

`Apps`タブにアクセスし、`Manage Catalogs`へアクセスします。ここではGithubで公開されているCatalog(Dockerアプリケーションをまとめたみたいなもの)を登録することができます。右上の`Add Catalog`をクリックします。

![truenas_93.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660536/b960fcab-1c94-fdae-81b1-95da852d9b26.png)

> Warning
> iXsystems does not audit or otherwise validate the contents of third-party applications catalogs, It is incumbent on the user to verify that the new cataglog is from a trusted source and that the third-party properly audits its chartt contets. Failure to exercise due diligence may expose the user and their data to some or all of the following:
> * Malicious software
> * Broken services on TrueNAS host
> * Service disruption on TrueNAS host
> * Broken filesystem permissions on Host or within application
> * Unexpected deletion of user data
> * Unsafe service configuration in application
> * Degradation of TrueNAS host performance and stability

サードパーティー製のCatalogは監査していないので自己責任で入れてね的なことが書かれてます。`Continue`で進みます。

![truenas_94.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660536/d8aeb39a-90ba-b71a-ef56-a0e36b806dfb.png)

ここで任意の名前とCatalogがあるgitのURLを入力します。今回はこちらを導入します。

`https://github.com/truecharts/catalog.git`

https://github.com/truecharts/catalog.git

おそらく[こちら](https://github.com/truecharts/charts)のCatalogのみのリポジトリです。

`Preferred Trains`には`stable`と`enterprise`を指定します。それぞれ何があるかはこちらに一覧があります。

https://truecharts.org/charts/description_list

![truenas_95.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660536/95bd9518-28c6-4bed-1eac-6c08c2e8001b.png)

`Save`をクリックすると右上の`Jobs`内で確認できます。

![truenas_96.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660536/644a43c7-eb06-f5ec-2ca1-c3f6b6965a75.png)

追加が終わるとこのように大量にアプリケーションが追加されています！それぞれ`Install`をクリックするだけで動作するところまで調整されているはずです。

### Docker Image

ここからはDocker Hubで共有されているImageを導入します。

![truenas_100.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660536/0da752f5-8985-9110-11a6-abe7068e588c.png)

`Apps`タブにアクセスし`Installed Applications`にアクセスします。ここでは現在インストールされているアプリケーションが表示されます。右上の`Launch Docker Image`をクリックします。

![truenas_101.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660536/f087fbf5-2ff5-fbf0-6a83-bed1ba7cc112.png)

Dockerの引数の一部をGUIで設定できるようになっています。Grafana、InfluxDB共に変更するところは`Application Name`と`Image repository`、`Port forwarding`です。
`Application Name`は任意の名前です。
`Image repository`はdockerのimageをpullするときのイメージ名です。
`Port forwarding`は両方のアプリケーションではブラウザからアクセスする必要があるので設定する必要があります。ただしTrueNAS SCALE側でポート番号は9000より上でないといけないという制約があります。

* InfluxDB
  * Container Port 8086
  * Node Port 9086
  * Protocol TCP Protocol
* Grafana
  * Container Port 3000
  * Node Port 9000
  * Protocol TCP Protocol

今回はこのように設定しました。

![truenas_102.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660536/3ac6fb43-27a8-f78b-aaf3-c929d532d514.png)

`Save`をクリックするとインストールが始まります。

![truenas_103.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660536/31d320b1-6689-4b82-9d41-52c000c16baf.png)

インストールが無事に終わるとApplication Nameの横に`ACTIVE`とあれば起動までできています！
ここが`DEPLOYING`のままだと内部エラーや引数が足りない等で起動できていません。三点リーダーをクリックすると`Logs`があるのでそこでエラー内容を確認することができます。

![truenas_104.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660536/f41901bc-9032-470d-f22c-6e6137a0189b.png)

![truenas_105.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660536/144f475f-17e7-5af4-2887-5793b873428f.png)

TrueNAS SCALEのIPアドレス:設定したポート
にアクセスすると無事にアクセスすることができました！


## おわりに

TrueNAS SACLE自体が最近正式リリースされたばかりなので参考文献も少なかったので記事にしてみました。

早く新しいHDD欲しいです。