Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

例: Jsnapy を Python モジュールとして使用する

この例では、PythonのスクリプトまたはプログラムでPython(jsnapy)のJunos Snapshot Administratorの機能を使用する方法を示します。このスクリプトでユーザー名とパスワードの入力が必要な場合は、<username> と <password> を適切な値に置き換えます。

jsnapy のデフォルトのインストールでは、 、 という名前のmodule_check.pyいくつかのPythonスクリプトの例を含む、module_data.pymodule_snapcheck.pymodule_device.pyディレクトリに/etc/jsnapy/samples/多くのサンプル構成ファイルとテストファイルが含まれています。これらのファイルはそれぞれ、Pythonスクリプト内のモジュールとして実行されるjsnapyのさまざまな機能を示しています。

この例では、Python スクリプト ファイル を少し変更したバージョン を使用して、 module_data.pyオプションを指定して snapcheck jsnapy を実行する方法を示します。このスクリプトは、Python スクリプト内から YAML 構成データを渡す方法を示しています。

要件

この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。

  • Junos OS を実行しているデバイス

  • サーバ(jsnapyサーバ)にインストールされているjsnapyのインスタンス

  • スクリプトを表示および変更するためのテキストエディタ

jsnapy 用に独自の Python スクリプトを作成する前に、Python プログラミングの概念と jsnapy 操作の両方を完全に理解していることを確認してください。

概要

この例では、提供されている Python スクリプト /etc/jsnapy/samples/module_data.pyを調べます。スクリプトがjsnapyをモジュールとしてインポートする方法、jsnapy構成パラメーターを定義する方法、およびリモートJunos OSデバイスでの操作の結果 snapcheck を表示する方法について説明します。

トポロジ

この例では、jsnapyサーバーが単一のリモートJunos OSデバイスに接続するというシンプルなトポロジーを使用しています。複数のデバイスへの接続を実現できますが、この例では説明しません。

図 1: jsnapy トポロジー jsnapy Topology

Python スクリプトを調べる

Python スクリプトは、次のタスクを実行します。

  • 必要な Python モジュールをスクリプトにインポートします。

  • jsnapy モジュールから SnapAdmin() 関数を呼び出すために使用される変数を定義します。

  • jsnapy 構成パラメーターを定義し、変数に割り当てます。

  • 以前に定義した構成変数を構成引数およびスナップショットファイル名preとして使用して、 オプションを指定してsnapcheckjsnapyを呼び出します。

  • 結果をjsnapyサーバーの端末に出力します。

メモ:

元の形式では、Python スクリプト は、 module_data.pyData プリティ プリンター モジュール をインポートして呼び出します pprint。スクリプトから呼び出されると、このモジュールにより、pythonはjsnapyがJunos OSデバイスから受け取ったすべてのスナップショットデータをjsnapyサーバーの端末に出力します。このデータの長さのため、この例では、呼び出しの前にポンド記号 (#) を付けることで、to pprint の呼び出しはコメント アウトされています。

コメントに注意してください

手順

  • この例では既存のスクリプトを調べているため、ファイルの最初の行として表示されるコメントを指摘します。コメントは、コメントをポンド記号 (#) で始めることで、スクリプト内の任意の場所に配置できます。

Python モジュールのインポート

手順

  • このスクリプトは、3つのインポートされたモジュールを使用します。1つはjsnapy用、1つは端末への複雑なデータの印刷用、もう1つはJunos OSデバイスの操作用です。

SnapAdminへの呼び出しの変数を定義します

手順

  • ここでは、スクリプトは jsnapy モジュールから SnapAdmin() 関数を、使いやすさと jsnapy の呼び出し時に引数を渡せるように指定された js 変数に割り当てます。

jsnapy設定パラメータの定義

手順

  • ここでは、スクリプトはJunos OSホストと、そのホストで実行するテストを定義します。これらのパラメータを変数 config_dataに割り当てます。三重引用符 config_data では、改行文字を含めることができます。

    メモ:

    実行するホストとテストを指定する別の方法は、jsnapy構成ファイルを参照することです。構成ファイルでは、1 つ以上のホストと 1 つ以上のテスト ファイルを定義できます。この例の構成データは Python スクリプト内に含まれているため、変数は config_data スクリプト外の構成ファイルを参照せず、三重引用符 (""") の間に現れるキーと値のペアで埋められます。

定義された構成データを使用してjsnapyを呼び出す

手順

  • ここで、スクリプトはオプションを指定して snapcheck jsnapyを呼び出し、構成情報とスナップショットファイルの名前を渡します。この呼び出しの結果として返される情報は、変数に値として格納されます snapchk

    メモ:

    SnapAdmin()の呼び出しの後にオプションを追加することで、使用可能なすべてのjsnapyオプション、、snapcheckおよびsnapcheckにアクセスできます。たとえば、 、 、 js.check(config_file, "snapshot1", "snapshot2")js.snap(config_file, "snapshot_name")js.snapcheck(config_file, "snapshot_name")などです。

結果を端末に出力します

手順

  • ここで、スクリプトは戻り値をループ処理し、読み取り可能な形式でjsnapyサーバーターミナルに出力します。これは、スナップショット全体がターミナルに出力されないようにスクリプトを変更する場所でもあります。

結果

見やすくするために、ファイルmodule_data.pyに対してコマンドを実行するとcat、変更されたスクリプトの内容を以下に示します。

検証

スクリプトの動作確認

目的

Pythonスクリプトと必要なjsnapy設定およびテストファイルが完了したら、jsnapyサーバーターミナルからスクリプトを実行して、スクリプトの動作を検証できます。

アクション