テキストでネットワーク図を作ろう!nwdiag
nwdiagって何?
ブロック図生成ツール blockdiagシリーズの1つです。きれいな論理ネットワーク図を作成することができます!
公式サイト(http://blockdiag.com/ja/nwdiag/introduction.html)
特徴
- テキストベース
- 自動レイアウト
- SVG出力可能
インストール方法
Pythonで動き、Win・Mac・Linuxすべて対応しています。今回はMacでのインストール方法を紹介します。 Windowsの場合は事前にPythonのインストールを行ってください。2系、3系はお好みでどうぞ!
インストール
一行で簡単にインストール完了です。
1 | pip install nwdiag |
サンプルコードを使って動作を確認します。
まず以下のファイルを作成してください。
sample001.nwdiag
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | nwdiag { network dmz { address = "210.x.x.x/24" web01 [address = "210.x.x.1"]; web02 [address = "210.x.x.2"]; } network internal { address = "172.x.x.x/24"; web01 [address = "172.x.x.1"]; web02 [address = "172.x.x.2"]; db01; db02; } } |
早速変換してみましょう。
1 | nwdiag sample001.nwdiag |
え?なにこれフォント汚い...
フォント指定
きれいな図を作れると言っておいてこれだと不味いのでフォントを変更します。 (USERNAME)を自身の環境に合わせて置換し、お好きなフォントパスを指定しましょう。私はNotoSansを指定しました。
~/.blockdiagrc
1 2 | [nwdiag] fontpath = /Users/<<USERNAME>>/Library/Fonts/NotoSansCJK.ttc |
Winの場合は以下の場所に作成してください。
%USERPROFILE%\.blockdiagrc
さらに、出力フォーマットをSVGで指定しましょう。最終的にPNGやPDFが欲しい場合も一度SVGを経由するときれいになります。 それでは。もう一度変換してみましょう。
1 2 | nwdiag -Tsvg sample001.nwdiag qlmanage -t -s 1000 -o . sample001.svg |
いい感じになりました!
Win・Linuxの方はImageMagickやWebサービスを使って変換してください。
サンプルコード
明日から使える実践的なオプションを組み込んだコードを作ってみました。参考にして頂ければ幸いです。 もっと詳しく知りたい!という方は以下のリンクが参考になります。
ノード属性の設定(http://blockdiag.com/ja/blockdiag/attributes/node.attributes.html)
sample002.nwdiag
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | nwdiag { inet [shape = cloud, color = "lightpink"]; inet -- utm; network dmz{ color = "#FF7777"; address = "192.168.0.0/24" utm [address = ".254"]; web01 [address = ".8", icon = "./256px-NewTux.svg.png" ]; web02 [address = ".9", icon = "./256px-NewTux.svg.png" ]; } network intra { color = "lightcyan" address = "192.168.1.0/24" utm [address = ".254"]; ad01 [address = ".8", icon = "./256px-Microsoft_logo.svg.png" ]; ad02 [address = ".9", icon = "./256px-Microsoft_logo.svg.png" ]; } } |