GNS3のSymbolManagerでShowNetのアイコンを取り込んでみる

Posted on 2014/06/13(Fri) 00:11 in technical

イントロ

ShowNetのトポロジ図カッコいいよね!

しかも、それをPowerPointで使えるように公開してくれてるんだから、男前だよね!

これだよこれ!

http://www.f2ff.jp/interop/2014/noc/shownet-topology-map_5.php

でも、出来ればその...GNS3でも使いたいなぁ、なんて?(上目遣い)

と言う人のためのGNS3活用講座です。

簡易手順

  1. pptxを入手(http://www.f2ff.jp/interop/2014/images/ShowNet-Icons-2014-0609.pptx)
  2. 画像を抽出(全部PNGなので抽出できるよ!)
  3. サイズ調整(GNS3のiconは70x70のサイズが丁度いいので、PNGサイズを適当にリサイズ)
  4. PNGをSVGに変換
  5. rcc.exeでリソースライブラリにコンパイル
  6. GNS3のSymbolManagerで読み込み
  7. 使えるようになります

基本的にはこれで説明終了な感じだけど、rcc.exeって何ぞやと言う話もあるので部分的にピックアップする。

GNS3のTutorialと言う公式資料に書いてある方法を使っているだけですが。

ぴっくあっぽ

画像の抽出

ライセンス的にはこういう抜き出し方は不本意な気もするんだけど...改変するつもりはないから許して欲しいんだ...。

端的に言うと、7zipでpptxを直接開いて、ppt/mediaフォルダの中身を全部コピーするだけ。

一旦拡張子をzipにしてもいいかもね。

PNGをSVGに変換

これにはInkscapeを使うのが簡単だ。 フォルダ構造を下記のような感じにしておく(ここではinkscapeは7zip版を使っています)

C:\tools\gns3_symbol:

- convert.bat
+ inkscape
  - inkscape.com
  - other files
+ images
  - image11.png
  - image12.png
  - ...

で、convert.batの中身はこんな感じ:

@echo off
setlocal

set INKPATH=C:\tools\gns3_symbol\inkscape

:LOOP
"%INKPATH%\inkscape.com" -f "%~1" -l "%~n1.svg"

shift
if "%~1" NEQ "" goto LOOP
endlocal

いやー、inkscapeってCLIで変換出来て便利ですねー。

あとはimagesの中身のリサイズ済みPNGファイルをD&Dして、埋め込みとリンクのダイアログをひたすらEnterする。

rcc.exeでリソースライブラリにコンパイル

rcc.exeと言うのはQtで使われてるリソースシステムのパッケージングツールで、GNS3はPyQtで開発されている関係で、これでコンパイルしないとGNS3では画像が出なかったりする。

Qt SDKをdownloadして、その中からrcc.exeを入手します。

SDKはでかいんだけど欲しいのはrcc.exeだけなので、適当に解凍して中の$OUTDIR/bin/bin/rcc.exeを抽出しましょう。

そして、コンパイル用のリソースファイルを書きます。

shownet.qrc:

<!DOCTYPE RCC><RCC version="4.8.6">
<qresource>
<file alias="Controller">images\s_image11.svg</file>
<file alias="Openflow">images\s_image12.svg</file>
<file alias="Tester">images\s_image13.svg</file>
<file alias="Mirror">images\s_image14.svg</file>
<file alias="DPI">images\s_image15.svg</file>
<file alias="Public-peer">images\s_image16.svg</file>
<file alias="MIP">images\s_image17.svg</file>
<file alias="AP">images\s_image18.svg</file>
<file alias="Switch">images\s_image19.svg</file>
<file alias="Transit">images\s_image20.svg</file>
<file alias="Homerouter">images\s_image21.svg</file>
<file alias="Outpost">images\s_image22.svg</file>
<file alias="Secutiry">images\s_image23.svg</file>
<file alias="Balancer">images\s_image24.svg</file>
<file alias="Cache">images\s_image25.svg</file>
<file alias="Endnode">images\s_image26.svg</file>
<file alias="Terminal">images\s_image27.svg</file>
<file alias="Serial-server">images\s_image28.svg</file>
<file alias="Storage">images\s_image29.svg</file>
<file alias="Server">images\s_image30.svg</file>
<file alias="Router">images\s_image31.svg</file>
<file alias="Server-mini">images\s_image32.svg</file>
<file alias="Terminal-mini">images\s_image33.svg</file>
<file alias="Endnode-mini">images\s_image34.svg</file>
<file alias="PSTN">images\s_image35.svg</file>
<file alias="L4-7-mini">images\s_image36.svg</file>
<file alias="L3-mini">images\s_image37.svg</file>
<file alias="Loopback">images\s_image38.svg</file>
<file alias="Management-IF">images\s_image39.svg</file>
<file alias="Transit-mini">images\s_image40.svg</file>
<file alias="L2-mini">images\s_image41.svg</file>
<file alias="MEP-ID">images\s_image42.svg</file>
<file alias="Public-peer-mini">images\s_image43.svg</file>
<file alias="L1-mini">images\s_image44.svg</file>
<file alias="DWDM">images\s_image45.svg</file>
<file alias="SDN-mini">images\s_image47.svg</file>
<file alias="VPN">images\s_image48.svg</file>
<file alias="Firewall">images\s_image49.svg</file>
<file alias="MIP">images\s_image52.svg</file>
<file alias="SDN">images\s_image55.svg</file>
<file alias="Interface">images\s_image60.svg</file>
</qresource>
</RCC>

警告

一部アイコンは白さの関係上省略しています。

するとディレクトリの中身はこうなる。

C:\tools\gns3_symbol:

- rcc.exe
- shownet.qrc
+ images
  - image11.svg
  - image12.svg
  - ...

後はコマンドラインから:

rcc.exe shownet.qrc -compress 9 -binary -o shownet.rcc

のように打つと、shownet.rccが出力される。

GNS3のSymbolManagerで読み込み

GNS3でEdit->Symbol managerを開くとこうなる。

gns3_shownet_symbol_001.png

Library pathで選んだshownet.rccをAddすると追加されるので、「  >  」を叩いて右側に登録する。

gns3_shownet_symbol_002.png

この時、右側に移動したアイコンが実体として何を表すかは、右上のName/Typeから選んでApplyしておかないと、単にトポロジ上配置/配線が可能なだけのアイコンになる。

これで左側のアイコンでShowNetのアイコンが使えるようになる。

gns3_shownet_symbol_003.png

出来上がり

GNS3でも綺麗なトポロジ図を貴方に(キラッ

gns3_shownet_symbol_004.png

ちなみに、コンパイル済みのファイルは下記URLからダウンロードすることも出来るので、お急ぎの方はご利用ください。

7f8b3de7e3447a57ee38261214151631a05c1fd1 shownet.rcc

https://www.ainoniwa.net/data/image/shownet.rcc

あぢゅー。