このページの目次
Python での Junos Snapshot Administrator の使用
Junos OS を実行しているデバイスで Python の Junos Snapshot Administrator (jsnapy) を使用して、ランタイム環境のスナップショットをキャプチャして保存したり、2 つのスナップショットを比較したり、スナップショットをキャプチャしてすぐに評価したりできます。
スナップショットを作成するときは、スナップショット名を指定します。Jsnapyは、スナップショット名、configuration.ymlファイルまたはdevice.ymlファイルのターゲットデバイス名、およびテストファイルのテストセクション文字列を使用して、そのスナップショットを一意に識別するスナップショットファイル名を生成します。たとえば、デバイス junos-device.example.com からデータを収集し、スナップショット名 SNAP1
を定義し、テスト ファイルに と bgp-checks
という名前の ospf-checks
2 つのテスト セクションがあるとします。スナップショットを作成すると、Junos スナップショット アドミニストレータによって次の出力ファイルが作成されます。
junos-device.example.com_SNAP1_ospf_checks.xml
junos-device.example.com_SNAP1_bgp_checks.xml
スナップショット ファイルは、jsnapy サーバーの YAML ファイル/etc/jsnapy/jsnapy.cfg
内のパラメーターで指定されたsnapshot_path
場所に格納されます。デフォルトでは、場所は /etc/jsnapy/snapshots
です。
以下のセクションでは、Junos スナップショット アドミニストレータ コマンドの概要を説明します。
スナップショットの取得
デバイスのスナップショットを作成するには、jsnapyサーバのコマンドラインで次のように入力します。
user@jsnapy-server$ jsnapy --snap snapshot-name -f configuration-filename
コマンド・パラメーターは次のとおりです。
snapshot-name
- スナップショットを一意に識別するために出力ファイル名に使用される文字列。configuration-filename
- スナップショット設定ファイル名。
たとえば、メンテナンス アップグレードの前に、ユーザー bsmith はデバイスのスナップショットを作成します。スナップショット名は で preupgrade
、コンフィギュレーションファイル名は config-snapshot.conf です。bsmith は構成ファイルconfig-snapshot.ymlにパスワードを指定していないため、接続時にデバイスはユーザーのパスワードの入力を求めます。
bsmith@server$ jsnap --snap preupgrade -f config-snapshot.yml
Connecting to device junos-device.example.com ................ Enter Password for username <bsmith> : Connecting to device junos-device.example.com ................ Tests Included: test_version_check Taking snapshot of COMMAND: show version Tests Included: check_chassis_fpc Taking snapshot of COMMAND: show chassis fpc
2 つのスナップショットの比較
テスト基準を使用して既存の 2 つのスナップショットを比較するには、jsnapy サーバのコマンドラインで次のように入力します。
user@jsnapy-server$ jsnapy --check snapshot1 snapshot2 -f configuration-filename
コマンド・パラメーターは次のとおりです。
snapshot1
- 最初のスナップショットを一意に識別するために出力ファイル名で使用される文字列。多くの場合、これはPRE、preupgrage、事前変更、またはこのスナップショットが最初に来たことを示す名前として入力されます。snapshot2
- 2 番目のスナップショットを一意に識別するために出力ファイル名に使用される文字列。多くの場合、これはPOST、アップグレード後、変更後、またはこのスナップショットが2番目に来たことを示す名前として入力されます。configuration-filename
- スナップショット設定ファイル名。
たとえば、メンテナンス アップグレードの前と直後に、ユーザー bsmith はデバイスのスナップショットを作成します。スナップショット名は preupgrade
と postupgrade
です。構成ファイル config-snapshot.ymlで定義された基準を使用してこれら 2 つのスナップショットを比較するために、bsmith は次のコマンドを発行します。
bsmith@server$ jsnap --check preupgrade postupgrade -f config-snapshot.yml
Junos Snapshot Administratorの出力には、ターゲットルーターと、構成ファイル内のアクティブな各テストセクションのテスト結果が表示されます。出力例を次に示します。
*************************** Device: junos-device.example.com *************************** Tests Included: test_version_check ********************* Command: show version ********************* PASS | All "junos-version" was changed between the pre and post snapshot. It is now 15.1R3.3 [ 1 matched ] ------------------------------- Final Result!! ------------------------------- Total No of tests passed: 1 Total No of tests failed: 0 Overall Tests passed!!!
スナップショットの取得と評価
スナップショットを取得し、事前定義された一連の基準に基づいてすぐに評価するには、jsnapy サーバのコマンドラインに次のように入力します。
user@jsnapy-server$ jsnap --snapcheck snapshot-name -f configuration-filename
コマンド・パラメーターは次のとおりです。
snapshot-name
- スナップショットを一意に識別するために出力ファイル名に使用される文字列。configuration-filename
- スナップショット設定ファイル名。
たとえば、ユーザーがルーター junos-device.example.com にインストールされているソフトウェア パッケージの数を確認したいとします。これを行うには、jsnapy サーバーのコマンドラインで次のコマンドを実行します。
user@jsnapy-server$ jsnapy --snapcheck postupgrade -f config-software-check.yml
Junos Snapshot Administratorの出力には、ターゲットルーターと、構成ファイル内のアクティブな各テストセクションのテスト結果が表示されます。出力例を次に示します。
Connecting to device junos-device.example.com ................ Taking snapshot of COMMAND: show version *************************** Device: junos-device.example.com *************************** Tests Included: test_version_check *************************** Command: show version *************************** PASS | All "//package-information/name" exists at xpath "//software-information" [ 59 matched ] ------------------------------- Final Result!! ------------------------------- Total No of tests passed: 1 Total No of tests failed: 0 Overall Tests passed!!!