シスコシステムズが無料で公開しているネットワーク機器のテスト自動化ツールの pyATS & Genie のインストール方法を紹介します。
ネットワークのために生まれてきたツールのため、ネットワークエンジニアに優しいツールとなっている(はず)。ネットワーク自動化というワードが流行っているけど、何をやったらいいの?どこから始める?という人にはまずは pyATS & Genie で始めてみてはどうでしょうか。もちろん、ネットワークの自動化と言えば Ansible や Nornir という他のツールもありますが、試してみたら違いもきっと分かるはず。
今はネットワークエンジニアでも、ネットワークの自動化に当たっては python のコーディングスキルも少なからず必要になってきます。pyATS & Genie では python をあまり知らない方から、バリバリコーディングできる人まで幅広く使えるツールとなっています。ライブラリはオープンソースなので、GitHub 上で作ったコードを貢献することも可能です。
今後 pyATS & Genie について色々と書いていきたいと思っています。まだあまり python には詳しくないという方にも分かるように書いていきたいと考えています。
詳しくはドキュメントを参照してもらうとして、ものすごく簡単に pyATS と Genie について書くと。。。
pyATS
python で書かれたテストフレームワーク。ネットワークトポロジを定義したり、機器に接続するコネクタが用意されている。また、python コード書くことによりテストの実行、また結果のレポート機能も持つ。pyATS だけでは python でコードを書かないといけない。
参考(from Qiita):
Genie
抽象化された機能ライブラリ。Interface、Ospf、Bgp などの機能に対して OS / Platform に特化しない共通ライブラリ。設定を行う Conf、プロトコルの情報/状態を取得する Ops、show command に対応する parser、プリセットされたテストケース及びテストハーネスを含む SDK からなる。すでにあるライブラリを使って、用意されたトリガー(アクション)やベリフィケーション(確認)を使うだけなら、ほぼ python の知識は実は不要だったりする。
参考(from Qiita):
Python 環境の準備
手順は私が使用している MacOS をもとにしたものとなっております。
pyATS & Genie では python 仮想環境を使うことが推奨されています。
python 仮想環境の使い方については下記記事を参照ください。
Python: MacOS で Python3 + pyenv/virtualenv を使う
今回は下記の通り、python3.6.5 で仮想環境を作っています。pip パッケージも最新にしておきます。
$ pyenv virtualenv 3.6.5 genie
$ pyenv activate genie
(genie)$ pip install --upgrade pip
ちなみに現時点では python3.4/3.5/3.6 をサポートしています。
pyATS & Genie のインストール
pyATS & Genie は python パッケージのため、pip install するだけです。
(genie)$ pip install genie genie.libs.robot
genie パッケージを指定すると pyats は依存パッケージとなるため、自動でインストールされ、pyats を明示的に書く必要はありません。
また、genie.libs.robot は Robot Framework を使う場合に必要となるもので、必須ではありませんが、別途 Robot Framework を使う例も紹介したいので、ここでインストールするように紹介しておきます。
インストール後のパッケージの状態は下記のようになっているかと思います。(バージョンは 2019/2/8現在)
(genie)$ pip list | egrep 'pyats|genie|unicon'
genie 3.1.3
genie.abstract 3.1.0
genie.conf 3.1.0
genie.examples 3.1.3
genie.harness 3.1.5
genie.libs.conf 3.1.4
genie.libs.filetransferutils 3.1.0
genie.libs.ops 3.1.7
genie.libs.parser 3.1.16
genie.libs.robot 3.1.7
genie.libs.sdk 3.1.10
genie.libs.telemetry 3.1.2
genie.metaparser 3.1.0
genie.ops 3.1.5
genie.parsergen 3.1.1
genie.predcore 3.1.0
genie.telemetry 3.1.4
genie.utils 3.1.3
pyats 5.1.0
pyats.aereport 5.1.0
pyats.aetest 5.1.0
pyats.async 5.1.0
pyats.connections 5.1.0
pyats.datastructures 5.1.0
pyats.easypy 5.1.0
pyats.examples 5.1.0
pyats.kleenex 5.1.1
pyats.log 5.1.0
pyats.results 5.1.0
pyats.robot 5.1.0
pyats.tcl 5.1.0
pyats.templates 5.1.0
pyats.topology 5.1.0
pyats.utils 5.1.0
unicon 3.4.7
これで pyATS & Genie のインストールは完了です。次回からは使い方を紹介していきたいと思います。