Create VM on Proxmox
ISOイメージの取得
Ubuntu24.04 ServerのISOのURLを公式ページから取得し、ノードのlocalという名のストレージからISOイメージのURLを入力し、マシンにISOイメージをダウンロード
VM作成
スペックや先ほど取得したISOイメージを入力し、VMを作成。
OS初期設定
VMを起動し、コンソールページから指示に従って設定。基本的にデフォルトの設定を登録する。OpenSSHはinstallしておく。また、dockerなど一部のソフトウェアはこのタイミングでインストールできる。 LANに繋がれた状態であれば内部IPアドレスなどはこの設定時に表示されるので、後ほどラップトップからsshするときのために覚えておく。
Setup NFS to access files on NAS server
NASサーバー側の設定
現在はSynology NASを利用しており、公式ドキュメントに従って設定を行う。基本的なstepとしては
- NSAサービスの有効化
- NASサーバー側にNFSで利用するディレクトリの作成とNFS権限の付与
NFS権限付与後はマウントパス(e.g., /volume1/nfs)が設定されるのでこの値をコントロールパネルから控えておく。(コントロールパネル -> 共有フォルダ -> NFSで使うディレクトリの編集 -> NFS権限のパネルに表示される)
NFSクライアントの設定
ローカルのファイルシステムからアクセスできるようにマウントする。
$ sudo apt update$ sudo apt install nfs-common$ sudo mount IP_ADDRESS_NAS:MOUNT_PATH /PATH/TO/DESTINATION # e.g., sudo mount 192.168.0.13:/volume1/nfs /mnt/nfsSetup Object Store on NAS server
minioを使ったオブジェクトストレージをNASサーバーに構築する。例えば、権限管理やコスト面でGCSなどのパブリッククライド上でなくプライベートネットワーク内でオブジェクトストレージが欲しいユースケースで使える(e.g., quickwitのバックエンドストレージ)。
Container Managerのセットアップ
Synology NASのPackage CenterからContainer Managerをinstallする。
Container ManagerのRegistryからminio/minioのimageをdownloadし、Imageから起動設定をする。
- auto-restartはonにしておく。
- minoは9000, 9001番ポートをそれぞれAPIとコンソール向けに利用する(参考)ので、Port SettingでLocal Portに繋いでおく。
- (optional)環境変数にユーザー設定を記入。特に設定しなければユーザー名, パスワードは
minioadminでログインできるMINIO_ROOT_USER: ルートユーザーのユーザー名MINIO_ROOT_PASSWORD: ルートユーザーのパスワード
動作確認
ブラウザから http://<NASのIP>:9001/ でアクセスできる。
Setup DNS at homelab
DNSサーバーの作成
unboundを使ってhomelab向けのDNSサーバーを構築する。 作成はansibleによって管理されており、以下の手順で構築可能。
$ cd /path/to/repo/infra/ansible$ ansible-playbook -i inventry.yaml --ask-become-pass setup_dns.yamlDNSクライアントの設定
自宅サーバーの作業VM向けにDNSサーバーを利用するようにする。 この設定もansibleで管理している。
$ ansible-playbook -i inventry.yaml --ask-become-pass setup_dns_client.yamlラップトップ(macos)からは公式から提供されている手順(参考)で設定を行う。設定後はtailscaleのconnectionを一旦切って再接続かmacを再起動。
Expose API on public
自宅でホスティングしているAPIをインターネット公開する
ngrokの設定
$ # install$ curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc \| sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \&& echo "deb https://ngrok-agent.s3.amazonaws.com buster main" \| sudo tee /etc/apt/sources.list.d/ngrok.list \&& sudo apt update \&& sudo apt install ngrok
$ # set token$ ngrok config add-authtoken DUMMYデプロイ
$ ngrok http http://YOUR_INTERNAL_API_DOMAIN --domain YOUR_NGROK_DOMAINTips
Increase the size of disk
以下の記事を参考にディスクサイズを増やす。 https://malsan.hatenablog.com/entry/2024/06/15/010435