Python 設定ファイルにおける Junos Snapshot Administrator について
Python の Junos Snapshot Administrator (jsnapy) 構成ファイルは、スナップショットのスコープを定義し、単一スナップショットまたは 2 つのスナップショットの比較のテスト基準を含むファイル名を指定します。jsnapy 構成ファイルの場所は、 jsnapy
コマンドの引数として、または別の Python スクリプトから jsnapy を呼び出すときの引数として指定します。
構成ファイルの保存場所
jsnapy 構成ファイルは、jsnapy サーバーのファイル・システム上の任意の場所に保管できます。呼び出されたjsnapy
現在の作業ディレクトリに構成ファイルが存在しない場合、jsnapy は見出しの下の config_file_path
で指定された/etc/jsnapy/jsnapy.cfg
パスを検索します。ファイルがそこに存在しない場合、jsnapy はデフォルトの場所 (/etc/jsnapy/
) で構成ファイルを探します。ファイルがそこにも存在しない場合は、エラーが表示されます。特定の構成ファイルを使用するには、 を呼び出すjsnapy
ときにコマンドラインで構成ファイルへのフルパスを指定できます。例えば:
jsnapy --snap PRE -f /full/path/to/config/file/config.yml
構成ファイルのセクションについて
Jsnapy 構成ファイルは、ホストとテストの 2 つの必須セクションと、sqlilte と mail の 2 つのオプションセクションで構成されています。
hostsセクションでは、jsnapyが構成ファイルを使用するときに接続するJunos OSホストまたはデバイスを定義します。Jsnapyは、単一のホストまたは複数のホストに接続できます。jsnapyに単一のホストに接続するように指示する構成ファイルは、構成ファイル内でホストIPアドレスとログイン資格情報を定義します。
jsnapyに複数のホストへの接続を指示する構成ファイルは、YAMLファイルのインクルード機能を使用して、別のYAMLデバイスファイルからホストと資格情報のリストを読み取ります。デバイスファイルは、多くのホストがリストされている大きなファイルになることがあります。使用するホストの数を減らすには、devices ファイルをグループに分割し、構成ファイルの hosts セクションにあるキーワードを使用して
group:
参照します。詳細については、「Python デバイス ファイル内の Junos スナップショット アドミニストレータについて」を参照してください。デバイスのリストを含むファイルを指定するには、ファイル名またはファイルのフルパスを入力します。ファイル名のみを指定した場合、ファイルの場所は、 構成ファイルの保存場所で説明されている規則に従います。testsセクションは、構成ファイルを使用するときに使用するテストファイルをjsnapyに指示します。ホストに対して実行されるテストは、構成ファイルのテスト セクション内で名前が指定されている個別のテスト ファイルで常に定義されます。複数のテスト ファイル名をそれぞれ独自の行に入力できます。テスト ファイル名は、ファイル名またはファイルへのフル パスとして指定できます。ファイル名のみを指定した場合、ファイルの場所は、構成ファイルの保存場所で説明されている規則に従います。詳細については、「Python テスト ファイル内の Junos スナップショット アドミニストレータについて」および「例: Python テスト ファイル内の Junos スナップショット アドミニストレータの作成」を参照してください。
sqlite セクションでは、SQLite データベースにスナップショットを保存および比較するためのパラメーターを定義します。この構成ファイルで作成されたスナップショットを、jsnapy サーバーのファイル システムに保存するだけでなく、特定の SQLite データベースに保存するかどうかを指定できます。また、SQLite データベースに格納されているスナップショットに対して比較操作を実行するかどうか
--check
、および--snapcheck
オプションを指定することもできます。SQLite データベースには最大 51 個のスナップショットを格納でき、これらのスナップショットには ID 番号 0 から 50 のインデックスが付けられます。 表 2 に、SQLite データベースにスナップショット ストレージを構成するために必要な構成要素を示します。mail セクションには、電子メールの設定情報を含むファイルの名前が含まれます。メールファイルは、ファイル名またはファイルへのフルパスとして指定できます。ファイル名のみを指定した場合、ファイルの場所は、 構成ファイルの保存場所で説明されている規則に従います。メールファイルの内容の詳細については、「 Python メールファイルでの Junos スナップショット管理者について」を参照してください。
設定ファイルの要素
jsnapy 構成ファイルは、ネットワークに関連するキーワードと値の組み合わせを使用して作成する YAML ファイルです。他の YAML ファイルと同様に、構造はインデント (1 つ以上のスペース) によって派生し、シーケンス項目はダッシュ (-) で示され、キーと値のペアはコロン (:)) で区切られます。 表 1 に、サポートされるキーワードとその意味を示します。
キーワード |
説明 |
---|---|
ホスト |
このキーワードは、hosts セクションの先頭を示します。それ自体は行上にあり、その後にコロンが続く必要があります。( |
グループ |
このキーワードは、hosts セクションのオプション部分です。外部デバイスファイル内のデバイスグループ名を指します(複数のホストに接続する場合)。それ自体は行上にあり、その後にコロンが続く必要があります。( |
デバイス |
このキーワードは、hosts セクションの一部です。先頭にはダッシュが続き、その直後にコロン( |
含める |
このオプションのキーワードは、hosts セクションの一部です。前にダッシュが続き、その直後にコロンが続きます。複数のデバイスの IP アドレスとログイン資格情報を含むファイルの名前を指定します。これは、jsnapy を複数のホストに接続する場合にのみ必要です。 |
名 |
このキーワードは、hosts セクションの一部です。その後すぐにコロンが続きます。これは、設定ファイルまたはデバイスファイルでそのすぐ上にリストされているデバイスに連絡するときに使用されるユーザー名を指定します。 |
Passwd |
このキーワードは、hosts セクションの一部です。その後すぐにコロンが続きます。これは、設定ファイルまたはデバイスファイルでそのすぐ上にリストされているデバイスに連絡するときに使用するログインパスワードを指定します。 |
テスト |
このキーワードは、テスト セクションの先頭を示します。その後すぐにコロンが続きます。スナップショットの作成または比較に使用される1つ以上のテストファイルを一覧表示するために使用されます。 |
Sqlite |
このキーワードは、sqlite セクションの先頭を示します。その後すぐにコロンが続きます。sqlite セクションは、スナップショットを sqlite データベースに格納したり、sqlite データベースのスナップショットを比較したりするためのパラメーターを定義するために使用されます。このセクションを完了するには、 表 2 に示すパラメーターを入力する必要があります。 |
メール |
このキーワードは、電子メール機能を活動化します。その後にコロンが続きます。引数は、電子メールの構成情報を含むファイルの名前です。たとえば、 |
表 2 は、構成ファイルの sqlite セクションに入力できるパラメーターを示しています。
パラメーター |
説明 |
---|---|
- store_in_sqlite: |
オプションを使用する場合は |
database_name |
オプションに関係なく必要です。スナップショットを格納または読み取る sqlite データベースの名前を指定します。 |
check_from_sqlite |
または |
比較: |
スナップショット ID 番号 (0-50) で 2 つのスナップショットを OR |
コンフィギュレーション・ファイルへのコメントの挿入
コメントは、ポンド記号 (#) で始めることによって、ファイルの任意の場所に挿入できます。これは、ファイルの内容をすばやく理解できるように、複数の構成ファイルを管理する必要があるユーザーにとって便利です。