ホームラボにかけられる予算があまりない私にとって、HP t730シンクライアントはまさにホームラボ用途に最適です。幸運なことに、先日StorageReviewのサブレディットで行われたプレゼント企画で、このシンクライアントを当選することができました。t730は、多くの用途に対応できる十分なRAMとCPUを備えつつ、オーバースペックではありません。Pi-Holeのホスティング、PfSenseルーター/ファイアウォールとしての利用、そして今回のようにDocker Swarmへの接続など、様々な用途に活用できます。
Docker やコンテナー全体に詳しくない場合は、Docker をほぼあらゆる上で実行できる軽量の VM と考えるかもしれません。これは大幅に単純化しすぎですが、圧倒されることなく十分な情報が得られます。 Swarm は Docker の拡張機能です。これは、コンテナを「オーケストレーション」し、コンテナを複数のノードにデプロイし、リソースを管理し、その他の性質のものを管理するためのシンプルで組み込みの方法を提供します。
既存のインフラストラクチャでは、すでに5つのノードがSwarmで稼働していました。Raspberry Pi B4が4台とDell Optiplex 7040が1台です。これは、始めるための優れた基盤となります。ただし、このDocker Swarmチュートリアルに従うには、ノードは1つだけで十分です。ちなみに、私はこのノードをほぼ無料で入手しましたが、eBayで探して交渉すれば200ドル以下で見つけることもできます。
Docker Swarm オペレーティング システムのインストール
まず、HP t730に、私が選んだLinuxディストリビューションであるDebian Busterをインストールしました。次に、DebianインストーラーをUSBフラッシュドライブに書き込む必要がありました。イメージを書き込むには、無料で使いやすいBalena Etcherがおすすめです。それが完了したら、インストールプロセスを開始します。

まず、t730に搭載されていた32GBのSATA M.2ドライブを256GBのドライブに交換しました。しかし、当時は知らなかったのですが、これが後に問題を引き起こすことになります。というのも、ファームウェアのインターフェースにはバグがあり、ベンダー純正以外のドライブでは動作しない場合があるからです。私が取り付けたドライブは、まさにその動作しないドライブの一つでした。この問題を回避するため、Debianをインストールする際にGrubをリムーバブルドライブとしてインストールするように設定しました。インストールするドライブによっては、このような設定が必要になる場合とそうでない場合があります。
今日の作業には 256GB は必要ないことに注意してください。ちょうど手元にあっただけです。少なくとも 64GB をお勧めしますが、ドライブに保存できるデータ量が制限される可能性があります。
ドライブをインストールした後、Debian インストール画面が起動しました。基本的なインストールを行い、言語、キーボード レイアウトなどを選択しました。ユーザー構成では、特定のことを行います。 root ユーザーにはパスワードをまったく入力しません。これにより、アカウントが無効になります。そして、管理者という名前の新しいユーザーを作成し、パスワード マネージャーに非常に長いパスワードを保存します。これにより、システムの安全性が可能な限り維持されます。
パーティション分割については、非常にシンプルなレイアウト、1 GB のブート パーティション、およびドライブの残りの部分をルート パーティションに割り当てることを選択しました。私はファイルシステムとしてそれぞれ FAT32 と ext4 を選択しましたが、新しいファイルシステムの最先端の機能がいくつか欠けているとしても、安定性と速度の点で Btrfs などよりも ext4 を好みます。
基本パッケージの選択画面に到達したら、OpenSSH サーバー以外のすべての選択を解除しました。これに対する私の理由は、基本システムをできるだけ軽量にし、GUI がないためヘッドレスであることです。ただし、このチュートリアルを完了するために必要なのは OpenSSH サーバーだけであり、必要な追加パッケージをインストールできます。
図 2: インストールされるパッケージ
先に述べたEFIファームウェアのバグに遭遇した場合は、Debian wikiに解決方法が記載された良いガイドがあります。Grubのインストールが完了したら、再起動してUSBメモリを取り外します。すべてがうまくいけば、インストールした内容に応じて、TTYまたはGUIが起動します。
インストール後の構成
インストールが完了したら、システムの設定を開始します。このプロセスを自動化するAnsibleプレイブックを作成しましたが、このガイドを簡潔にするため、コマンドを手動で実行していきます。
# これにより、以降の手順を完了するために必要なパッケージがインストールされます。sudo apt updatedudo apt install gnupg ca-certificates apt-transport-httpscurl lsb-release -y# これにより、apt が Docker パッケージの署名を検証するために必要なキーが追加されますcurl -fsSL https://download .docker.com/linux/debian/gpg | sudo gpg –dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# そして、Docker をインストールするリポジトリを追加するには、これを実行します:echo “deb [arch=amd64 signed-by=/usr/share/keyrings/ docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) 安定版」 | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
それが完了したら、Docker 自体をインストールしてサービスを有効にする必要があります。
sudo apt install docker-ce
sudo systemctl Enable –now docker
これで、Docker を使用してサービスを実行する準備が整いました。
HP t730 での Docker Swarm の使用
Swarm を初めて使用するときは、Swarm を初期化する必要があります。以下のコマンドを見てみましょう。すでに swarm がある場合は、この手順をスキップしてください。
sudo docker swarm init
動作したことを確認したい場合は、次のコマンドをターミナルに貼り付けます。
if [ “$(sudo docker info | grep Swarm | sed 's/Swarm: //g')” == “inactive” ]; then echo false;else echo true;fi
ホストが Swarm モードで実行されている場合、コマンドは「true」を返すはずです。
最初のサービスの実行
Swarm では、サービスを作成する方法が 2 つあります。
- ドッカーサービスの作成 これは似ています ドッカーラン
- ドッカースタックデプロイ これは似ています ドッカーの作成
一般に、スタックを簡単に再現できる docker stackdeploy を使用します。
ただし、動作を確認するためだけに docker service create を使用しても問題ありません。
sudo docker service create -p 3000:80 httpd
完了まで少し時間がかかるかもしれませんが、コマンドが完了したら、ノードのIPアドレスのポート3000にアクセスできます。IPアドレスがわからない場合は、hostname -Iを実行してください。私の場合は、192.168.19.73: 3000にアクセスする必要がありました。「It works!」という画面が表示されるはずです。
閉鎖
HP t730は、初心者からベテランまで、ホームラボ愛好家にとって素晴らしい小型マシンです。様々な用途に対応し、価格以上の性能を備えています。ちなみに、私の場合は送料15ドルしかかかりませんでした(StorageReviewに感謝!)。この記事を通して、新しいテクノロジーについて学んだり、ホームラボを始めるきっかけになったりと、皆さんに何か得るものがあれば幸いです。
-イーサン・エドワーズ




Amazon