「PG-Stromのパッケージング化」がお題となったため、去年末くらいに検証したDocker/PodmanといったようなコンテナーでPG-Stromを動かす方法 に次いで、AnsibleでPG-Strom環境構築の自動化する方法について調査することにしました。
今回はRed Hat Enterprise Linux 8.6とRocky Linux 8.7に対応する形にしました。RHELは偶数バージョンのみサポート期間が長いという特性があるので、バージョン8.6にしています。今後も偶数バージョンがリリースされるごとに対応する予定です。
Rocky LinuxはRHELクローンのひとつですが、CUDAやPG-Stromの有償版機能を使う場合の要件であるMOFEDが正式対応しているという理由から対応することにしました。
PG-Stromの有償版で使える機能についてはライセンスが必要になるので、自動化するのは無償で使える範囲までです。PG-Stromを動かすために必要な互換性のあるCUDAとGPUドライバーのインストール、PostgreSQL Serverのインストール、PG-Stromのインストール、そしてPG-Strom由来のPostgreSQLの設定までを行えるようにしました。必要なものはPascal世代以降のNVIDIA GPUが接続されたマシンにRHEL 8.6かRocky Linux 8をいれて、あとはPlaybookを流すだけです。
ansible-coreとともにansibleモジュールをインストールすれば、現在shellモジュールで設定している処理の一部を専用のモジュールを使って記述できそうですが、今回はシンプルにするためansible-coreモジュールだけでできるところまでを実装することにしました。
少し前のバージョンでPG-StromがPostreSQL 15をサポートしたため、それならより新しいバージョンを使いたいと思って、PostgreSQL 15を使う構成にしました。マイナーバージョンは固定していないため、セットアップした時の最新版のPostgreSQL 15が入ると思います。このブログを書いた現在だと15.2でしょうか。
Playbookなどは次にサンプルを用意しましたので、PG-Stromを使ってみたい方はぜひお試しください。