NWコンフィグの取得 (Process Workflows)



概要
---
Process Worflows + スクリプト(Python) で、OpsRamp Gateway上でスクリプトを実行させてネットワーク機器のコンフィグ情報のバックアップの取得方法についての説明になります。

OpsRampでは、ネットワーク機器のコンフィグバックの機能が用意されており、主要メーカーの機器のコンフィグ情報のバックアップを取得することが出来ます。今回の方法は、まだサポートされていないものを対象に簡易的にバックアップを取得する方法となります。

　≪参考：Network configuration backup サポート対象機器情報≫
　https://docs.opsramp.com/support/reference/support-matrix/#network-configuration-backup


スクリプトの登録
---
まずは、コンフィグバック情報を取得するスクリプトをOpsRampに登録します。

■カテゴリーを作成
　１．OpsRampにログイン後、[Automation] > [Scripts] を選択します。
　　　![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2345641/f70d60ad-5daa-8a47-cb06-6b110cb5ac16.png)

　２．左ペインのにて、[MySctipts] を選択し、下部にある[＋(Add Category)]を選択し、
　　　カテゴリーを作成します。
　３．”Create Script Category” にて、任意のカテゴリー名を入力し、[保存] を選択します。
　　　![002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2345641/9a01b375-1f63-353a-ad2d-27e1334e7c1d.png)



■スクリプトを登録
　１．左ペインにて作成したカテゴリーを選択した状態で、下部にある[</> Add Script]を
　　　選択します。
　２．”Create Script” にて、スクリプトを登録します。

　　　　　実行タイプ：PYTHON
　　　　　コマンドファイル名：任意のファイル名+拡張子py
　　　　　プラットフォーム：Linuxに対応
　　　　　スクリプト名：任意の名称
　　　　　説明：任意の説明
　　　　　スクリプト：実行するコード
　　　　　　　　　　　(今回は、対象NW機器にTELNETして、コンフィグコマンドを実行。
　　　　　　　　　　　 実行結果をファイルに出力する簡単なものを登録)
　　　　　![003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2345641/7b9cecfb-b275-2c68-847b-faae79adc025.png)


　３．[保存] を選択します。
　　　![004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2345641/0b2f68f3-3638-bf8c-a185-fb3aa2518ab3.png)

　４．再度、左ペインで保存先のカテゴリーを選択すると、一覧に登録したスクリプトが
　　　表示されます。
　　　　　![005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2345641/508721f4-156a-181f-de6f-f51c286ee0b8.png)
以上で、利用するスクリプトの登録は終了です。

Process Worflowsの設定
---
ここでは、Process Worflowsを作成します。

　１．[Automation] > [Process Definitions] を選択します。
　　　　　![006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2345641/32c28d66-ee7f-2087-e63a-02962ee47eab.png)

　２．[＋NEW]を選択します。
　　　　　![007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2345641/fd492da8-442e-a942-9ae5-d448d5bd3883.png)

　２．作成画面が表示されるので、”Name” に任意の名称を入力し、
　　　コンポーネントメニューから使用するコンポーネントを
　　　ドラッグ＆ドロップで配置します。
　　　　　![008_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2345641/eea01aff-bbe7-9fec-b817-e1d2621f98ec.png)



　３．StartEvent を Timer Start Event に変更します。
　　　　　① StartEventを選択し、”Change Type”を選択します。
　　　　　② Timer Start Event を選択します。
　　　　　![010.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2345641/aeb7ff85-9514-d68d-f2b0-cb4383168288.png)
　　　　　③ コンポーネントがTimer Start Eventの表示になったことを確認し、
　　　　　　プロパティを設定します。

　　　　　　　　　　Name：任意の名称
　　　　　　　　　　Start Date：ワークフローの開始日時
　　　　　　　　　　End：ワークフローの終了日時
　　　　　　　　　　Recurrence Pattern：実行パターンを指定
　　　　　　　　　　　　　　　　　　　　　(今回は日次で設定)

　　　　　![011.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2345641/1ae2d717-0155-d7ca-db74-edb8c81fdd1f.png)
　４．Task を Script Task に変更します。
　　　　　① Taskを選択し、”Script Task” を選択します。
　　　　　![012.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2345641/98542c47-173a-c8b2-22e5-922e71c515d2.png)
　　　　　② コンポーネントがScript Taskの表示になったことを確認し、
　　　　　　プロパティを設定します。

　　　　　　　　　　Name：任意の名称
　　　　　　　　　　Agent/Agentless：Agentを選択
　　　　　　　　　　Select Category：スクリプト登録したカテゴリーを選択
　　　　　　　　　　　　　　　　　　　(プロダウンに候補が表示されます)
　　　　　　　　　　Script Name：登録したスクリプト名を指定
　　　　　　　　　　Resource Id：OpsRamp Gateway のResource Idを入力
　　　　　![013.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2345641/8df1d1e3-21f5-9546-e904-d476cf67d972.png)

　５．End Event の名称を設定します。
　　　　　① EndEventを選択し、プロパティにてNameに任意の名称を入力します。
　　　　　![014.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2345641/d9e46026-bdac-1bb3-8b75-45ab66bf34a1.png)

　６．最後に[Save ＆ Deploy]を選択し、作成したProcess Worflowsを保存します。

　　　　　![015.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2345641/26039b4e-1df4-069e-5aa1-dc593528f630.png)
　　　(正常保存されると、”Process Definition has been saved and started deploying”の
　　　　メッセージが表示されます。)
　　　　　![016.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2345641/f27e9c01-5e8d-c216-8974-b3346812b69a.png)
以上で、Process Worflowsの登録は終了です。

Process Worflowsの実行結果確認
---
　設定したProcess Worflowsの実行結果を確認するには、[PROCESS INSTANCES] ＞ 
　[RECENTLY COMPLETED] を選択します。最近の実行結果の一覧が表示されるので、
　Stateが”COMPLETED”となっていることを確認します。
　　　　　![018.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2345641/6e65d4d3-5141-8346-f6d1-a9778c42bfb8.png)

　Process Instance ID を選択することで、実行結果やエラー内容を確認することが出来ます。
　　　　　![019.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2345641/5f6884ee-ec78-2f29-0aa5-fbbeb9b00191.png)

以上となります。
実行するスクリプトを作りこみをしっかりやってあげれば、
出力ファイルの世代管理や実行時のエラー処理等も出来るようになります。
OpsRamp Agnetが導入出来ない機器に対して、OpsRamp Gatewayから
ネットワーク越しにスクリプトを実行が出来るものがあれば、
他にいろいろ対応できる幅を広げることが出来そうです。