graph-easy で有向グラフのアスキーアートを描いてみる
概要
簡単なフローチャートとかネットワーク図とかをドキュメントに載せたいが、 画像だと大げさだったので、アスキーアートにしたかった。 graph-easy というのを使えばできるみたいだったので、ためしたみた。
graph-easy のインストール
↓は Ubuntu16.04 でインストールする場合。
(例) 計算の過程を表す図
graph-easy は標準入力からデータを受け取るので、 「入力(input)を受け取り計算(calculation)して出力(output)する図」は↓のようにすればよい。
すると↓の出力が得られる。
+-------+ calculation +--------+
| input | -------------> | output |
+-------+ +--------+
(例) 4つの物理NICをボンディングして仮想ブリッジに接続した図
「4つの物理NICをボンディングして仮想ブリッジに接続した場合」 のLinux内のネットワークインターフェースの図を描いた例。 少しコードが長くなるので、↓を interfaces.txt として保存する。
[eth1] { size: 1,1 }
[eth2] { size: 1,1; origin: eth1; offset: 0,1; }
[eth3] { size: 1,1; origin: eth1; offset: 0,2; }
[eth4] { size: 1,1; origin: eth1; offset: 0,3; }
[bond] { size: 1,4; origin: eth1; offset: 3,0; }
(bonding:
[eth1] -> { label: LACP } [bond]
[eth2] -> { label: LACP } [bond]
[eth3] -> { label: LACP } [bond]
[eth4] -> { label: LACP } [bond]
)
[br] { origin: bond; offset: 0,2; }
[br.10] { origin: br; offset: 0,1; label: br.10 (192.168.10.xx/24); }
[br.20] { origin: br; offset: 0,2; label: br.20 (192.168.20.xx/24); }
[br.30] { origin: br; offset: 0,3; label: br.30 (192.168.30.xx/24); }
(bridge:
[br], [br.10], [br.20], [br.30]
)
[bond] -> [br]
そして↓を実行する。
すると↓の出力が得られる。
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
' bonding: '
' '
' +--------+ LACP +--------------------------+ '
' | eth1 | -------------> | | '
' +--------+ | | '
' +--------+ LACP | | '
' | eth2 | -------------> | | '
' +--------+ | bond | '
' +--------+ LACP | | '
' | eth3 | -------------> | | '
' +--------+ | | '
' +--------+ LACP | | '
' | eth4 | -------------> | | '
' +--------+ +--------------------------+ '
' '
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
|
|
v
+ - - - - - - - - - - - - - - -+
' bridge: '
' '
' +--------------------------+ '
' | br | '
' +--------------------------+ '
' +--------------------------+ '
' | br.10 (192.168.10.xx/24) | '
' +--------------------------+ '
' +--------------------------+ '
' | br.20 (192.168.20.xx/24) | '
' +--------------------------+ '
' +--------------------------+ '
' | br.30 (192.168.30.xx/24) | '
' +--------------------------+ '
' '
+ - - - - - - - - - - - - - - -+