仮想化通信

日本仮想化技術株式会社の公式エンジニアブログ

PG-StromをAnsible Playbookで環境構築

「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を使ってみたい方はぜひお試しください。

github.com