Terraformの構成から自動でダイアグラムを生成できるpluralithを触ってみた
Lastmod: 2023-06-23

「terraformでIaCできるなら、それを自動で解析していい感じにダイアグラム表示してくれるライブラリあるでしょ」と思って調べたら、pluralithというまさしくなサービスが見つかった。使ってみると、割とハマるところがあったけど、回避できればすごく使いやすいなと思ったので紹介する。

Pluralithとは

terraformの構成をビジュアライズしながら開発できるツール。HashiCorpが使ってる様子の動画を出してる

上記サイトで、開発目的を

The aim is to improve on the current experience of checking state updates in the terminal after applying, which can get quite messy and confusing with larger projects.

すごく意訳すると

apply後の状態をターミナルで確認するという現在の(よくない)開発者体験を改善するため。特に体規模開発では面倒で混乱するよね。

とのこと。なので、ダイアグラム出力はあくまで副産物の模様。

環境

$ cat /etc/os-release 
PRETTY_NAME="Ubuntu 22.04 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

インストールと初期設定

pluralithはアカウント作成前提で機能提供されており、ローカルでやるにしても、アカウント作成しないと今回の目的であるダイアグラム出力機能が使えない。そのため、まずはホームページでアカウント作成とソフトウェアのダウンロードを行う。

ホームページの下の方にダウンロードリンクがあるので、そこからダウンロードする。

pluralithのプロジェクトページにもダウンロードボタンが存在するが、CORSでAPIを叩けなくて失敗する。そのうち直されると思う。

アカウント作成とソフトウェアのダウンロードが済んだら、以下の手続きを行う。

  • APIキーをページ右上のとこからsettingsに入って取得する。
  • Projectを作成して、project idを取得する。
    • project idはproject作成時に強調表示されるから、迷うことはないと思う。

次にCLIから、初期設定を行う。ダイアグラムを作成したいmain.tfがあるディレクトリに移動してから

$ pluralith init
# ここでAPI keyとproject idをいれる。

ダイアグラム出力

pluralith planすると、terraformクラウドは非対応だよと怒られたので、使えないらしい。cloudの部分をコメントアウトして再度pluralith planを実行する。

UIが立ち上がり、以下のような表示がでる。

ダイアグラムを拡大するとこんな感じ。

おお〜〜〜

“Confirm Apply"で"Yes"を押すと実際に反映された。

今回はリソースをすでに作成していたのに、.terraformを削除していたせいでコンフリクトが発生し、以下のような表示になった。

グラフ出力

本命のダイアグラム出力を試す。(僕はここまできてようやく、API keyがないと怒られた。)

$ pluralith graph
⠿ Exporting Diagram

→ Verify
  ✔ API key is valid, you are authenticated!
✔ No graph module installed, found latest release
⠿ None → 0.1.8

Installing Latest Graph Module 100% [██████████████████████████████] (16.424 MB/s)        

✔ Graph Module updated!


→ Plan
  ✔ Execution Plan Generated
  ✔ Secrets Stripped
  - Cost Calculation Skipped

→ Export
  ✔ Diagram Generated
  → Diagram Exported To: /path/to/play-terraform-azure/Pluralith_Diagram.pdf

実際に出力されたものがこちら。pdfで出力される。ページ上で表示されるようにpngに変換したものが以下になる。

まじすごい。公式ページを見てみると、もっと複雑なものでもきれいに表示できていて、感心しきり。

まとめ

  • 利用始めに少しハードルあり。
  • ダイアグラムは完璧そのもの。