Shumokuとは? ネットワーク図をコードと実データで管理しよう
ネットワーク機器を追加したのに、構成図の更新が後回しになってしまう。そんな経験はないでしょうか。
Shumoku(シュモク)は、YAMLやNetBoxなどの構造化されたデータから、ネットワーク構成図を生成するオープンソースのツールです。YAMLをGitで管理する使い方に加え、機器・接続情報の取り込みや、監視情報を図に重ねて表示する機能も提供されています。公式リポジトリ

Shumoku Serverの表示例。出典:Shumoku公式サイト。公式掲載画像のため、利用するバージョンとは画面が異なる場合があります。
用途に合わせて選べるShumoku
Shumokuには、図を生成するためのライブラリやCLI、その仕組みを使ったアプリケーションがあります。
まずはYAMLから図を生成し、必要に応じて編集や監視の用途へ広げられます。公式リポジトリの構成紹介
Shumokuの主な機能とメリット
YAMLで構成を定義できる
機器をnodes、接続をlinksとして記述します。次は、ルーターとスイッチを接続する例です。
idは接続先を参照する識別子、labelは図に表示する名前です。接続にはfromとtoを使います。ポートやグループを指定する記法も用意されています。YAMLリファレンス
YAMLをGitに保存すれば、構成変更の差分を確認し、プルリクエストでレビューできます。CLIをCIに組み込めば、変更時に図を再生成する運用も作れます。GitリポジトリやCIのワークフローは利用者が用意します。CLIドキュメント
ネットワーク図向けの自動レイアウト
現在のShumokuは、独自の階層型レイアウトエンジンを備えています。ノードや接続情報をもとに配置を計算し、図を生成します。公式の機能紹介
YAMLでは、directionで配置方向を、nodeSpacingやrankSpacingで間隔を指定できます。構成に合わせてこれらを調整し、読みやすい図に整えていきます。レイアウト設定

