Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

例:Salt を使用して Junos OS を実行するデバイスを設定する

ジュニパーネットワークスは、Salt を使用して Junos OS を実行するデバイスを管理するためのサポートを提供します。この例では、Salt を使用して Junos OS を実行する複数のデバイスを設定します。

要件

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

  • NETCONF を有効にした Junos OS を実行する 3 台の MX シリーズ ルーター

  • 次の要件を持つ塩マスター:

    • Salt バージョン 3001 以降

    • Junos OS を実行しているデバイスで ping と操作を実行できます。

概要

この例では、Junos OS を実行するターゲット デバイスで BGP ピアリング セッションを設定する Salt 状態を定義します。 表 1 では、デバイス ホスト名、プロキシ ID、デバイス固有のファイルの概要を示します。

表 1:デバイス情報

ホスト

プロキシー ID

プロキシ設定ファイル

(/srv/pillar)

BGP データ ファイル

(/srv/pillar/bgp)

r1

r1

r1-proxy.sls

r1.sls

R2

R2

r2-proxy.sls

r2.sls

r3

r3

r3-proxy.sls

r3.sls

この例では、以下のコンポーネントを使用しています。

  • Jinja2 設定テンプレート - コマンド形式を使用して set BGP 設定を Jinja テンプレートとして定義します。テンプレートは、形式を示すために .set ファイル拡張子を使用します。

  • ピラー ファイル — Jinja2 テンプレートで必要なデバイス固有の設定データを定義します。各デバイスのデータは、Salt マスターの /srv/pillar/bgp ディレクトリの下の別のファイルに保存されます。

  • ピラートップファイル — 各ピラーファイルを適切なプロキシミニオンにマッピングします。

  • 状態ファイル — ターゲット デバイスに適用する状態を定義します。この場合、ステートファイルは、BGP設定を junos.install_config デバイスに適用する機能を使用します。

  • 状態トップ ファイル — 状態ファイルを、状態を適用する必要があるデバイスにマッピングします。

この例では、Jinja2 テンプレートを作成して、デバイスにロードされ、コミットされる BGP 設定を生成します。このテンプレートは、必要に応じて再利用できるように、デバイス固有の設定データの変数に置き換えます。テンプレート ファイルは Salt マスターの /srv/salt/configs ディレクトリの下に置かれます。

その後、各デバイスに個別の柱ファイルを作成し、ファイル内のデバイス固有の設定データを定義します。各ピラー ファイルは、 BGP_data 設定テンプレートで参照されるすべての変数パラメータを含むキーを定義します。ピラートップファイルは、各ピラーファイルをそれぞれのプロキシミニオンにマッピングします。柱にデータを格納することで、各プロキシ ミニオンがそのデバイスのデータにのみアクセスできるようになります。

junos_bgp_config.slsステートファイルは、テンプレートにBGP設定を適用する機能をjunos.install_config使用する状態を定義します。呼び出されると、この関数は設定データベースをロックし、ターゲット デバイスに固有の設定を読み込み、設定をコミットしてから、データベースのロックを解除します。この関数には、diffs_fileプロキシ ミニオン サーバー上のファイルに構成の違いを格納するためのパラメーターが含まれています。ファイル名は、グレインをid使用して、出力ファイルのデバイス固有のファイル名を生成します。

状態トップ ファイルは、ピラー キーと任意の junos_bgp_config 値を持つ任意の BGP_data ミニオンに状態を適用します。ハイステートを実行するか、デバイスにその状態を適用すると、Salt はテンプレートとピラー データを使用してターゲットに固有の設定を生成し、デバイス上の設定を読み込んでコミットする関数を呼び出します junos.install_config 。設定が既に適用されている場合、この junos.install_config 機能は設定を再適用しません。

デバイスを設定した後、状態をjunos_bgp_verify_peers適用します。この状態は、デバイスのget-bgp-neighbor-informationピラーデータで定義された各ピアの値をEstablished返すpeer-stateまで、各デバイスでRPCを実行します。この状態は、デバイスで BGP が実行されていることを前提としています。

構成

Salt を使用してデバイスを設定するには、このセクションに含まれるタスクを実行します。

柱データを定義する

手順

Jinja2 テンプレートで使用される柱データを定義して BGP 設定を生成するには、

  1. Salt マスターで、 /srv/pillar/bgp/hostname.sls という名前の個別のファイルを管理対象デバイスごとに作成します。

  2. r1.sls ファイルでホスト r1 のデータを定義します。

  3. r2.sls ファイルでホスト r2 のデータを定義します。

  4. r3.sls ファイルでホスト r3 のデータを定義します。

  5. ピラートップファイルで、ピラーファイルを適切なデバイスIDの下にあるBGPデータにマッピングし、デバイスがデータにアクセスできるようにします。

  6. 柱データを更新します。

Jinja2 テンプレートを定義する

手順

BGP 設定の生成に使用する Jinja2 テンプレートを作成するには、

  1. Salt マスターで /srv/salt/configs/junos-config-bgp-template.set という名前のファイルを作成します。

  2. BGP 設定テンプレートをファイルに追加して保存します。

状態の定義

設定状態ファイルを定義する

設定を適用する状態ファイルを定義するには:

  1. Salt マスター上で /srv/salt/junos_bgp_config.sls という名前のファイルを作成します。

  2. 機能を使用してテンプレートに junos.install_config BGP設定を適用する状態を定義します。

    メモ:

    テンプレートに、ピラー データ、グレイン データ、関数などの Salt 内部変数のみが含まれている場合、テンプレートを junos.install_config レンダリングするために関数を定義 template_vars: True する必要がある場合があります。

  3. 一番上のファイルで、 junos_bgp_config 状態が適用されるターゲットを定義します。ターゲットは、柱項目が BGP_data 定義されているすべてのデバイスで構成されています。

BGP検証状態ファイルを定義する

BPGピアが 次の値を持っていることを確認する状態をpeer-stateEstablished定義するには:

  1. Salt マスター上で /srv/salt/junos_bgp_verify_peers.sls という名前のファイルを作成します。

  2. 関数を使用して RPC をjunos.rpc実行する状態をget-bgp-neighbor-information定義し、 の RPC 応答をpeer-stateEstablishedチェックします。

結果

ハイステートを実行すると、ファイル内の top.sls 状態が適切なターゲット デバイスに適用されます。

検証

BGP 設定の検証

目的

各ネイバーアドレスに対してBGPセッションが確立されていることを確認します。

アクション

ターゲットデバイスに junos_bgp_verify_peers 状態を適用し、出力を確認します。

意味

状態ファイルでは、 が各ピアに peer-state 対して と Established 等しい必要があります。出力は、この条件が各デバイス上のすべてのピアで満たされていることを示しています。または、この機能を junos.cli 使用してデバイスで コマンドを show bgp summary 実行し、出力を確認して、各ネイバーアドレスに対してBGPセッションが確立されていることを確認できます。

トラブルシューティング

設定負荷エラーのトラブルシューティング

問題

Salt マスターは、 ConfigLoadError 構文エラーによりデバイス上の設定の読み込みに失敗したことを示すエラーを生成します。

ソリューション

Salt は、Jinja2 テンプレートとそのデバイスに定義されたピラー データを使用して Junos OS 設定をレンダリングします。Jinja2 テンプレートが無効な設定を生成すると、Salt は構文エラーを生成します。このエラーを修正するには、エラー メッセージ内のキーによって bad_element 識別される要素を修正するように Jinja2 テンプレートを更新します。