Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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

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

必要条件

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

  • Junos OSを実行し、NETCONFを有効にした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 ディレクトリの下にある個別のファイルに保存されます。

  • [ピラー トップ ファイル(Pillar top file)]:各ピラー ファイルを適切なプロキシ ミニオンにマッピングします。

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

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

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

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

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

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

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

構成

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

ピラー データの定義

手順

BGP 設定を生成するために Jinja2 テンプレートで使用されるピラー データを定義するには、以下を行います。

  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. 関数 junos.rpc を使用してget-bgp-neighbor-information RPC を実行し、RPC 応答のpeer-stateEstablishedを確認する状態を定義します。

業績

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

検証

BGP 設定の検証

目的

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

アクション

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

意味

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

トラブルシューティング

設定ロードエラーのトラブルシューティング

問題

Salt マスターは、構文エラーのためにデバイス上に設定をロードできなかったことを示す ConfigLoadError エラーを生成します。

解決

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