Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos OS 用 Salt のインストール方法

Salt バージョン 3001(ナトリウム)以降を使用して、Junos OS を実行するデバイスを管理できます。Salt マスターは、Salt プロキシ ミニオンを介して Junos OS を実行しているデバイスを管理できます。このデバイスは Salt マスターまたは別のサーバーで実行できます。管理対象デバイスごとにプロキシ ミニオンが 1 つ必要で、各プロキシ ミニオンには約 40 MB~100 MB の RAM が必要です。

一般的なインストール プロセスは次のとおりです。

  1. Junos OS を実行している各デバイスでは、次の手順に従います。

    • NETCONF over SSH を有効にします。

    • Salt がデバイスへの接続に使用するユーザー アカウントと認証方法を構成します。

  2. ソルトレークについて:

    • Salt とその依存関係をインストールします。

    • 各管理対象デバイスのプロキシ設定を定義します。

    • salt-master プロセスを開始します。

  3. 各 Junos プロキシ ミニオン サーバーでは、次の手順を実行します。

    • Junos PyEZ と Python モジュールをjxmleaseyamlordereddictloaderインストールします。

    • サーバーが Salt マスターから分離されている場合は、Salt とその依存関係をインストールします。

    • 管理対象デバイスごとに Junos プロキシ ミニオン プロセスを開始します。

  4. Salt マスターで、各 Junos プロキシ ミニオンのキーを受け入れます。

  5. (オプション)Junos syslog エンジン(Salt 用)を有効にします。

次のセクションでは、Ubuntu 18.04 を実行しているサーバーのインストール プロセスの各部分の詳細を提供します。別のオペレーティング システムを実行している場合は、OS に適したコマンドを使用します。Python 3 の使用をお勧めします。

Junos OS を実行するデバイスの設定

Junos プロキシ ミニオンは、SSH プロトコルと標準の SSH 認証メカニズムを使用して、Junos OS を実行しているデバイス上の NETCONF サーバーにアクセスします。Junos OS を実行しているデバイスとの SSHv2 接続を確立するには、次の要件を満たしていることを確認する必要があります。

  • SSH 経由の NETCONF サービスは、NETCONF セッションが確立される各デバイスで有効になります。

  • クライアント アプリケーションにはユーザー アカウントがあり、NETCONF セッションが確立される各デバイスにログインできます。

  • クライアントアプリケーションで使用されるログインアカウントには、SSHパブリック/プライベートキーペアまたはテキストベースのパスワードが設定されています。

  • クライアント アプリケーションは、パブリック/プライベート キーまたはテキストベースのパスワードにアクセスできます。

SSH キーを使用して Junos OS を実行しているデバイスで認証を行い、キーがまだ存在しない場合は、プロキシ ミニオン サーバー上の目的のユーザーに対してパブリックとプライベートの SSH キーのペアを生成し、必要なオプションや必要なオプションを指定します。

Junos OS を実行するデバイスを設定するには、次の手順に従います。

  1. NETCONF-over-SSH サービスを設定します。
  2. Salt がデバイスへの接続に使用するユーザー アカウントと認証方法を構成します。例えば:
  3. 設定をコミットします。
  4. 設定したユーザー名と認証方法を使用して、プロキシ ミニオン サーバーからデバイスにログインして、パスワードまたは SSH キーが機能することを確認します。
  5. Junos OS を実行している管理対象デバイスごとに、このプロセスを繰り返します。

Junos OSを実行しているデバイスでNETCONFを有効にし、SSHセッションを確立するための要件を満たす方法については、 NETCONF XML管理プロトコル開発者ガイドを参照してください。

ソルトレークマスターを設定する

Salt マスターは、1 つ以上のノード、つまりミニオンを管理するメイン制御サーバーです。SaltStack では、専用の管理サーバーまたは仮想マシン(VM)に Salt マスターをインストールすることをお勧めします。Junos OS を実行するデバイスを管理するには、Salt Release 3001(ナトリウム)以降をインストールする必要があります。

Salt マスターをインストールして設定するには、次の手順に応えます。

  1. Salt マスター サーバーに Salt の依存関係と Salt マスターをインストールします。

    Salt マスターをインストールするには、プラットフォームのパッケージと依存関係を手動でインストールするか、Salt ブートストラップ スクリプトを実行します。

    たとえば、ブートストラップ スクリプトを使用して Salt マスター用の Python 3 パッケージをインストールするには、次のコマンドを発行します。

  2. 通常/etc/salt/masterにある Salt マスター構成ファイルを、お客様の環境に合わせてカスタマイズします。
    メモ:

    Salt マスター構成ファイルのカスタマイズの詳細については、「 https://docs.saltstack.com/en/latest/ref/configuration/master.html」を参照してください。

  3. Salt マスター構成ファイルで定義されているように、必要なディレクトリ構造を作成します。
  4. 指定する各管理対象デバイス、Junos OS を実行する対応する管理対象デバイスのホスト名または IP アドレス、そのデバイスに適した接続および認証パラメーターを指定 proxytype: junosする柱ファイルを作成して、プロキシの設定を定義します。

    プロキシー構成の詳細については、 salt.proxy.junos を参照してください。

    メモ:

    機密データを Salt に安全に保存する方法については、「 https://docs.saltstack.com/en/latest/topics/best_practices.html#storing-secure-data」を参照してください。

  5. 柱の最上位ファイルを作成し、管理対象デバイスごとにプロキシ ミニオン名を定義し、そのデバイスのプロキシ設定を含む柱ファイルにマッピングします。

    次の例では、「router1」として識別されるJunosプロキシミニオンが 、router1-proxy.sls ファイルにマッピングされています。

  6. まだ稼働していない場合は、salt-master プロセスを開始します。
    メモ:

    トラブルシューティングの目的でデバッグ モードでプロセスを開始するには、を使用 sudo salt-master -l debugします。

Junos プロキシ ミニオン サーバーのセットアップ

Junos OS を実行するデバイスを管理するプロキシ ミニオン サーバーに次のソフトウェアをインストールする必要があります。

  • Salt ソフトウェア

  • ジュニパーネットワークスの Junos PyEZ ライブラリ

  • jxmlease Python yamlordereddictloader モジュール

Junos プロキシ ミニオンは、Junos PyEZ ライブラリを使用してデバイスの NETCONF サーバーに接続し、管理タスクを実行します。

メモ:

同じサーバー上で Salt マスターと Junos プロキシのミニオンを実行した場合、このセクションのミニオン ホスト名は前のセクションの Salt マスター ホスト名と同じになります。

Salt マスター サーバーまたは別のサーバーで Junos プロキシ ミニオンを設定するには、以下の手順にしたがっています。

  1. Salt が使用するのと同じ Python バージョンの Python パッケージ マネージャーをインストールします。
  2. Salt が使用するのと同じ Python バージョンの Junos PyEZ(junos-eznc)をインストールします。

    プラットフォーム固有の要件、前提ソフトウェア、インストール手順については、以下を参照してください。

  3. Salt が jxmlease 使用するのと同じ Python バージョンの下に、Python モジュールと yamlordereddictloader Python モジュールをインストールします。
  4. プロキシ ミニオン サーバーが Salt マスター サーバーから分離されている場合は、Salt とその依存関係をサーバーにインストールします。

    Salt をインストールするには、プラットフォームのパッケージと依存関係を手動でインストールするか、Salt ブートストラップ スクリプトを実行します。

    たとえば、ブートストラップ スクリプトを使用して Salt 用 Python 3 パッケージをインストールするには、次のコマンドを発行します。

  5. master /etc/salt/proxy ファイル内のパラメーターを Salt マスターのホスト名または IP アドレスで設定します。これにより、プロキシ ミニオン プロセスで Salt マスターを検索できます。

    salt-master プロセスとプロキシ ミニオン プロセスが同じサーバー上で実行されている場合は、代わりに指定 localhost できます。

  6. Junos OS を実行している各デバイスの Junos プロキシ ミニオン プロセスを開始し、デーモンとして実行するオプションを含めます -d

    プロキシ ID は、Salt マスター上の柱上ファイルで定義されているものと同じである必要があります。

    メモ:

    プロキシ プロセスの開始時に AttributeError: 'module' object has no attribute 'SSL_ST_INIT' エラーが発生した場合は、プラットフォーム上の OpenSSL パッケージを更新する必要がある場合があります。

    メモ:

    トラブルシューティングの目的でデバッグ モードでプロセスを開始するには、を使用 sudo salt-proxy --proxyid=router1 -l debugします。

プロキシミニオンは Salt マスターに接続し、パブリックキーを送信します。Salt マスターとプロキシミニオンが通信するには、その前に Salt マスターが鍵を受け入れる必要があります。

Salt マスターでプロキシ ミニオン キーを許可する

Salt は Salt マスター プロセスで認証にパブリック キーを使用します。デフォルトでは、Saltマスターはミニオンキーやプロキシミニオンキーを許可しません。対応するデバイスを管理するには、事前にキーを受け入れる必要があります。

このセクションの説明に従って、鍵を手動で受け入れることもできます。または、たとえば、salt-master プロセスと salt-proxy プロセスが同じサーバー上で実行されている場合、受信したキーがセキュリティ上の脅威でないことがわかっている場合は、Salt マスター構成ファイルにオプションを含 auto_accept: True めて、すべての受信キーを自動的に受け入れることもできます。セキュリティの目的で、このオプションはデフォルトで無効になっています。

保留中のキーを一覧表示して受け入れる方法は次のとおりです。

  1. プロキシミニオンの公開キーステータスを表示します。
  2. 各 Junos プロキシ ミニオンのキーを受け入れます。
    ヒント:

    たとえばsudo salt-key -A、すべての保留中の-Aキーを受け入れるオプションを使用します。

管理対象デバイスへの接続を確認する

Salt マスターでキーを受け入れた後、実行関数を test.ping 呼び出してメッセージ バス上でプロキシ ミニオンに ping を実行し、ミニオンが稼働し、通信していることを確認します。対象のミニオンを指定することも、すべてのミニオンに ping を実行するために使用 '*' することもできます。

次の例では、Junos プロキシ ミニオン ルーター 1 に関連付けられている Junos OS を実行しているデバイスに ping を実行します。

次の例では,Saltマスターが管理するすべてのミニオンに ping を実行します。

次の例では、この関数を junos.cli 使用して、Junos OS を show version 実行している指定されたデバイスでコマンドを発行します。

メモ:

このエラーが発生'junos' __virtual__ returned False: The junos or dependent module could not be loaded: junos-eznc or jxmlease or yamlordereddictloader or proxy could not be loadedした場合、Junos プロキシ ミニオン サーバーに Junos PyEZ またはモジュールがjxmleaseyamlordereddictloaderインストールされていないか、Junos プロキシ ミニオン プロセスが実行されていないか、デバイスで認証できない可能性があります。

(オプション)Junos Syslog エンジンの設定

Junos OS を実行するデバイスのイベントベースの状態管理には、Junos syslog エンジン(Salt 用)を使用できます。Junos syslog エンジンを有効にすると、syslog イベントをリッスンし、イベント情報を抽出して Salt 形式に変換し、Salt イベント バスで公開します。Junos syslog エンジンを有効にするには、Salt マスターで Junos syslog エンジンを設定する必要があります。また、Junos OS を実行しているデバイスが Syslog イベントを Salt サーバーの設定済みポートに送信するように構成する必要もあります。

メモ:

Junos syslog エンジンはプロキシ ミニオン サーバーでも実行できます。

Salt マスターで Junos syslog エンジンを有効にするには、次の手順にしたがってください。

  1. Salt が使用するのと同じ Python バージョンの Python パッケージ マネージャーをインストールします。
  2. Salt が使用する pyparsing のと twisted 同じ Python バージョンの Python モジュールと Python モジュールをインストールします。
  3. Salt マスター構成ファイルのセクションで engines Junos syslog エンジンを設定し、エンジンがイベントをリッスンするポートを設定します。
  4. (オプション)イベント バスに公開されたときに、イベントのトピック タイトルの後jnpr/syslog/に表示されるフィールドを指定するパラメーターを構成topicします。
  5. (オプション)特定の daemon Junos OS プロセスによって生成されたイベントのみをサブスクライブして公開するようエンジンに指示するパラメータを設定します。
  6. Salt マスター プロセスを再起動して、新しい設定を適用します。

Junos OS を実行しているデバイスが、Junos syslog エンジンが実行されているホストに syslog イベントを送信するように設定するには、次の手順に従います。

  1. Junos syslog エンジンが実行されているサーバーのホスト名または IP アドレスを設定し、リッスンしているポートを設定します。

  2. 送信するイベントのタイプを設定します。

    • すべてのイベントを送信するには、すべてのファシリティとすべてのメッセージの重大度レベルを示すように設定 any any します。

    • 特定のイベントのみを送信するには、キャプチャするイベントのファシリティレベルとメッセージ重大度レベルを設定します。

  3. 設定をコミットします。