Junos OS 用 Salt のインストール方法
Salt バージョン 3001(ナトリウム)以降を使用して、Junos OS を実行するデバイスを管理できます。Salt マスターは、Salt プロキシ ミニオンを介して Junos OS を実行しているデバイスを管理できます。このデバイスは Salt マスターまたは別のサーバーで実行できます。管理対象デバイスごとにプロキシ ミニオンが 1 つ必要で、各プロキシ ミニオンには約 40 MB~100 MB の RAM が必要です。
一般的なインストール プロセスは次のとおりです。
Junos OS を実行している各デバイスでは、次の手順に従います。
NETCONF over SSH を有効にします。
Salt がデバイスへの接続に使用するユーザー アカウントと認証方法を構成します。
ソルトレークについて:
Salt とその依存関係をインストールします。
各管理対象デバイスのプロキシ設定を定義します。
salt-master プロセスを開始します。
各 Junos プロキシ ミニオン サーバーでは、次の手順を実行します。
Junos PyEZ と Python モジュールを
jxmlease
yamlordereddictloader
インストールします。サーバーが Salt マスターから分離されている場合は、Salt とその依存関係をインストールします。
管理対象デバイスごとに Junos プロキシ ミニオン プロセスを開始します。
Salt マスターで、各 Junos プロキシ ミニオンのキーを受け入れます。
(オプション)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 キーのペアを生成し、必要なオプションや必要なオプションを指定します。
saltuser@minion:~$ cd ~/.ssh saltuser@minion:~/.ssh$ ssh-keygen -t rsa -b 2048 Generating public/private rsa key pair. Enter file in which to save the key (/home/saltuser/.ssh/id_rsa): id_rsa_salt Enter passphrase (empty for no passphrase): ***** Enter same passphrase again: *****
Junos OS を実行するデバイスを設定するには、次の手順に従います。
Junos OSを実行しているデバイスでNETCONFを有効にし、SSHセッションを確立するための要件を満たす方法については、 NETCONF XML管理プロトコル開発者ガイドを参照してください。
「」も参照
ソルトレークマスターを設定する
Salt マスターは、1 つ以上のノード、つまりミニオンを管理するメイン制御サーバーです。SaltStack では、専用の管理サーバーまたは仮想マシン(VM)に Salt マスターをインストールすることをお勧めします。Junos OS を実行するデバイスを管理するには、Salt Release 3001(ナトリウム)以降をインストールする必要があります。
Salt マスターをインストールして設定するには、次の手順に応えます。
Junos プロキシ ミニオン サーバーのセットアップ
Junos OS を実行するデバイスを管理するプロキシ ミニオン サーバーに次のソフトウェアをインストールする必要があります。
Salt ソフトウェア
ジュニパーネットワークスの Junos PyEZ ライブラリ
jxmlease
Pythonyamlordereddictloader
モジュール
Junos プロキシ ミニオンは、Junos PyEZ ライブラリを使用してデバイスの NETCONF サーバーに接続し、管理タスクを実行します。
同じサーバー上で Salt マスターと Junos プロキシのミニオンを実行した場合、このセクションのミニオン ホスト名は前のセクションの Salt マスター ホスト名と同じになります。
Salt マスター サーバーまたは別のサーバーで Junos プロキシ ミニオンを設定するには、以下の手順にしたがっています。
プロキシミニオンは Salt マスターに接続し、パブリックキーを送信します。Salt マスターとプロキシミニオンが通信するには、その前に Salt マスターが鍵を受け入れる必要があります。
Salt マスターでプロキシ ミニオン キーを許可する
Salt は Salt マスター プロセスで認証にパブリック キーを使用します。デフォルトでは、Saltマスターはミニオンキーやプロキシミニオンキーを許可しません。対応するデバイスを管理するには、事前にキーを受け入れる必要があります。
このセクションの説明に従って、鍵を手動で受け入れることもできます。または、たとえば、salt-master プロセスと salt-proxy プロセスが同じサーバー上で実行されている場合、受信したキーがセキュリティ上の脅威でないことがわかっている場合は、Salt マスター構成ファイルにオプションを含 auto_accept: True
めて、すべての受信キーを自動的に受け入れることもできます。セキュリティの目的で、このオプションはデフォルトで無効になっています。
保留中のキーを一覧表示して受け入れる方法は次のとおりです。
管理対象デバイスへの接続を確認する
Salt マスターでキーを受け入れた後、実行関数を test.ping
呼び出してメッセージ バス上でプロキシ ミニオンに ping を実行し、ミニオンが稼働し、通信していることを確認します。対象のミニオンを指定することも、すべてのミニオンに ping を実行するために使用 '*'
することもできます。
次の例では、Junos プロキシ ミニオン ルーター 1 に関連付けられている Junos OS を実行しているデバイスに ping を実行します。
saltuser@salt-master:~$ sudo salt 'router1' test.ping router1: True
次の例では,Saltマスターが管理するすべてのミニオンに ping を実行します。
saltuser@salt-master:~$ sudo salt '*' test.ping router1: True router2: True
次の例では、この関数を junos.cli
使用して、Junos OS を show version
実行している指定されたデバイスでコマンドを発行します。
saltuser@salt-master:~$ sudo salt 'router1' junos.cli 'show version' router1: ---------- message: Hostname: router1 Model: mx104 Junos: 18.4R1.8 JUNOS Base OS boot [18.4R1.8] JUNOS Base OS Software Suite [18.4R1.8] JUNOS Crypto Software Suite [18.4R1.8] JUNOS Packet Forwarding Engine Support (TRIO) [18.4R1.8] JUNOS Web Management [18.4R1.8] JUNOS Online Documentation [18.4R1.8] JUNOS SDN Software Suite [18.4R1.8] JUNOS Services Application Level Gateways [18.4R1.8] JUNOS Services COS [18.4R1.8] JUNOS Services Jflow Container package [18.4R1.8] JUNOS Services Stateful Firewall [18.4R1.8] JUNOS Services NAT [18.4R1.8] JUNOS Services RPM [18.4R1.8] JUNOS Services SOFTWIRE [18.4R1.8] JUNOS Services Captive Portal and Content Delivery Container package [18.4R1.8] JUNOS Macsec Software Suite [18.4R1.8] JUNOS Services Crypto [18.4R1.8] JUNOS Services IPSec [18.4R1.8] JUNOS DP Crypto Software Software Suite [18.4R1.8] JUNOS py-base-powerpc [18.4R1.8] JUNOS py-extensions-powerpc [18.4R1.8] JUNOS jsd [powerpc-18.4R1.8-jet-1] JUNOS Kernel Software Suite [18.4R1.8] JUNOS Routing Software Suite [18.4R1.8] out: True
このエラーが発生'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 OS を実行するデバイスのイベントベースの状態管理には、Junos syslog エンジン(Salt 用)を使用できます。Junos syslog エンジンを有効にすると、syslog イベントをリッスンし、イベント情報を抽出して Salt 形式に変換し、Salt イベント バスで公開します。Junos syslog エンジンを有効にするには、Salt マスターで Junos syslog エンジンを設定する必要があります。また、Junos OS を実行しているデバイスが Syslog イベントを Salt サーバーの設定済みポートに送信するように構成する必要もあります。
Junos syslog エンジンはプロキシ ミニオン サーバーでも実行できます。
Salt マスターで Junos syslog エンジンを有効にするには、次の手順にしたがってください。
Junos OS を実行しているデバイスが、Junos syslog エンジンが実行されているホストに syslog イベントを送信するように設定するには、次の手順に従います。
Junos syslog エンジンが実行されているサーバーのホスト名または IP アドレスを設定し、リッスンしているポートを設定します。
[edit] saltuser@router1# set system syslog host salt-master.example.com port 9999
送信するイベントのタイプを設定します。
すべてのイベントを送信するには、すべてのファシリティとすべてのメッセージの重大度レベルを示すように設定
any any
します。[edit] saltuser@router1# set system syslog host salt-master.example.com any any
特定のイベントのみを送信するには、キャプチャするイベントのファシリティレベルとメッセージ重大度レベルを設定します。
[edit] saltuser@router1# set system syslog host salt-master.example.com kernel info saltuser@router1# set system syslog host salt-master.example.com security any
設定をコミットします。
[edit] saltuser@router1# commit