→資料ダウンロード:大規模ネットワーク自動化成功への手引書こんにちは、ネットワークテクノロジー課の野原です。私たちはネットワークに関する作業やテストの自動化のために、日々いろいろな開発を行っています。この記事では先日リリースした、NAGATOというツールについて紹介します。OrchestratorNAGATOは、ネットワークの作業やテストを自動化するための機能を備えるライブラリ&ツールです。Frameworkと連携することを意識して設計されています。Frameworkでは、テストの処理を担う部分(ライブラリと呼びます)はPythonなどの言語でプラグラミングして実装する必要がありますが、NAGATOでは、ネットワークの作業やテストでよく行う操作をこのライブラリの形で提供します。Frameworkでできるようになります。中身は通常のPythonのコードのため、スクリプトでもインポートし使用することができます。NAGATOはオープンソースソフトウェア(OSS)として公開されており、誰でも利用可能です!開発の目的と背景NAGATOは次の2つの価値を提供することを目的としています。オープンソースで繰り返し再利用可能な自動化ツールこれからネットワーク自動化を始める人にとっての、作業やテストの自動化のフレームワークネットワークエンジニアが行う作業は、一般的に多大な人的・時間的リソースがかかると思います。ネットワークOSのバージョンアップをしようとすれば、リグレッションテストが発生したりと、単純作業を繰り返す場面が多く発生します。Frameworkを駆使し自動化を実現させてきました。これをライブラリとして提供すれば、さまざまなプロジェクトで繰り返し再利用できるのではないかと考えました。そのため、これをNAGATOとしてOSSにし、どんなプロジェクトでも使えるようしました。私たちのナレッジをCTC社内に止めず、少しでもみなさんの自動化へと貢献できればと思っています。使用イメージを掴んでもらうために、早速コードを見てみましょう。NAGATOは、pipコマンドでパッケージをインストールすることで使えます。Frameworkのテストシナリオを書いてみます。upこのテストシナリオでは、大まかに以下の順序でテストを行なっています。ルータからログアウトこのシナリオでNAGATOは、2つのライブラリを提供しています。Frameworkにキーワードを提供します。キーワードを組み合わせ、IOS-XRでよく行う操作を1つのキーワードとしてまとめています。Equal」が該当します。このシナリオを実行してみましょう。Frameworkによってlog.htmlという、テスト結果がまとめられたファイルが生成されます。Frameworkで、ルータから情報を取得しテストをすることができました!NetmikoLibraryで使用しているNetmikoは、さまざまなメーカのネットワーク機器の操作をサポートしています。そのためNAGATOも、このNetmikoがサポートしているネットワーク機器であれば操作ができます。Requestの実行や、パケットキャプチャファイルを読み込み、パケットの解析する機能などを備えており、それらを組み合わせることで様々なシチュエーションのテストを自動化することができます。実現に向けた最適な手段をご紹介します。現在のNAGATOはテストシナリオで使えるライブラリの提供のみですが、順次機能を追加する予定です。開発の目的に書いた通り、「これからネットワーク自動化を始める人にとっての、作業やテストの自動化のフレームワーク」を目指しています。Libraryの移行を検討している状況です。Frameworkに限定しない、汎用的なPythonツールとなるように創意工夫を進めていきます。具体的には、以下の機能を追加を検討しています。CLI以外の機器操作ライブラリ現在、NW機器を操作するためのライブラリはCLIのみですが、NETCONFなどの他のインターフェースのライブラリを追加します。コンテナ生成ライブラリネットワークの検証や試験で必要になることが多い、SNMPやSyslog等の受信サーバをコンテナを、テストシナリオから生成できるようにします。キーワードを使いコンテナから容易に情報を取り出せるようにもします。ネットワーク自動化プロジェクト作成ネットワークの作業や試験の自動化に特化した、ソースコードを管理する時のディレクトリ構成を自動で生成します。テストシナリオのソースコードの雛形も生成し、すぐにコーディングに取り組めるようにします。これらの機能を含め、最終的には以下のようなシステムを実現することを目指します。→資料ダウンロード:大規模ネットワーク自動化成功への手引書まとめ今回はNAGATOの紹介をさせていただきました。このツールによって、ネットワーク作業や試験の自動化の導入が簡単になり、皆さんのお役に立てればと思っています。NAGATOはコントリビューションを歓迎しています!興味を持っていただいた皆さんから改善や機能追加の提案をいただき、一緒にネットワーク自動化を盛り上げていきましょう。実現に向けた最適な手段をご紹介します。拓実2016年CTC新卒入社。ネットワークエンジニアとして数々のネットワーク構築や検証業務に携わり、現在はネットワーク・インフラの自動化エンジニアとして開発に従事している。お気に入りのコーヒー豆の精製方法はナチュラル。関連記事ブログ一覧へビジネス戦略から新たな価値創造まで。記載されている会社名、製品名、サービス名は伊藤忠テクノソリューションズ(株)または各社の商標もしくは登録商標です。Corporation。