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(Sodium)以降を使用して、Junos OS を実行しているデバイスを管理できます。Salt マスターは、Junos OS を実行しているデバイスを Salt プロキシ ミニオンで管理できます。ミニオンは、Salt マスターまたは別のサーバーで実行できます。管理対象デバイスごとに 1 つのプロキシ ミニオンが必要であり、各プロキシ ミニオンには約 40 MB から 100 MB の RAM が必要です。

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

  1. Junos OS を実行している各デバイス上で、以下を実行します。

    • SSH経由のNETCONFを有効にします。

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

  2. Salt マスターで、次の操作を行います。

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

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

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

  3. 各Junosプロキシミニオンサーバーで、次の操作を行います。

    • Junos PyEZ と jxmlease および yamlordereddictloader Python モジュールをインストールします。

    • サーバーが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 マスターの設定

Salt マスターは、1 つ以上のノード(ミニオン)を管理するメイン コントロール サーバです。SaltStackでは、専用の管理サーバまたは仮想マシン(VM)にSaltマスターをインストールすることを推奨しています。Junos OS を実行しているデバイスを管理するには、Salt リリース 3001(Sodium)以降をインストールする必要があります。

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

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

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

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

  2. Salt マスター構成ファイル(通常は /etc/salt/master にあります)を環境に合わせてカスタマイズします。
    手記:

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

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

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

    手記:

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

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

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

  6. salt-master プロセスがまだ実行されていない場合は、開始します。
    手記:

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

Junos Proxy Minion Serverのセットアップ

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

  • Salt ソフトウェア

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

  • jxmleaseyamlordereddictloader Pythonモジュール

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

手記:

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

JunosプロキシミニオンをSaltマスターサーバーまたは別のサーバーのいずれかでセットアップするには、次の手順に従います。

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

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

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

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

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

  5. /etc/salt/proxy ファイルの master パラメータを 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 プロキシ ミニオンのキーを受け入れます。
    先端:

    -A オプションを使用して、保留中のすべてのキー (sudo salt-key -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または jxmlease または yamlordereddictloader モジュールがインストールされていないか、Junosプロキシミニオンプロセスが実行されていないか、デバイスで認証できない可能性があります。

(オプション)Junos Syslogエンジンを設定する

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

手記:

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

Salt マスターで Junos syslog エンジンを有効にするには、次の手順に従います。

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

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

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

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

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

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

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