Junos OSにSaltをインストールする方法
Salt バージョン 3001(Sodium)以降を使用して、Junos OS を実行しているデバイスを管理できます。Salt マスターは、Junos OS を実行しているデバイスを Salt プロキシ ミニオンで管理できます。ミニオンは、Salt マスターまたは別のサーバーで実行できます。管理対象デバイスごとに 1 つのプロキシ ミニオンが必要であり、各プロキシ ミニオンには約 40 MB から 100 MB の RAM が必要です。
一般的なインストールプロセスは次のとおりです。
Junos OS を実行している各デバイス上で、以下を実行します。
SSH経由のNETCONFを有効にします。
Salt がデバイスへの接続に使用するユーザー アカウントと認証方法を構成します。
Salt マスターで、次の操作を行います。
Salt とその依存関係をインストールします。
各管理対象デバイスのプロキシ構成を定義します。
salt-master プロセスを開始します。
各Junosプロキシミニオンサーバーで、次の操作を行います。
Junos PyEZ と
jxmleaseおよびyamlordereddictloaderPython モジュールをインストールします。サーバーが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 マスターの設定
Salt マスターは、1 つ以上のノード(ミニオン)を管理するメイン コントロール サーバです。SaltStackでは、専用の管理サーバまたは仮想マシン(VM)にSaltマスターをインストールすることを推奨しています。Junos OS を実行しているデバイスを管理するには、Salt リリース 3001(Sodium)以降をインストールする必要があります。
Salt マスターをインストールして設定するには、次の手順を実行します。
Junos Proxy Minion Serverのセットアップ
Junos OSを実行するデバイスを管理するプロキシミニオンサーバーには、以下のソフトウェアをインストールする必要があります。
Salt ソフトウェア
ジュニパーネットワークスの Junos PyEZ ライブラリ
jxmleaseyamlordereddictloaderPythonモジュール
Junosプロキシミニオンは、Junos PyEZライブラリを使用してデバイスのNETCONFサーバーに接続し、管理タスクを実行します。
Salt マスター ミニオンと Junos プロキシ ミニオンを同じサーバー上で実行する場合、このセクションのミニオン ホスト名は前のセクションの Salt マスター ホスト名と同じになります。
JunosプロキシミニオンをSaltマスターサーバーまたは別のサーバーのいずれかでセットアップするには、次の手順に従います。
プロキシ ミニオンは 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 Syslogエンジン(Salt向け)は、Junos OSを実行しているデバイスのイベントベースの状態管理に使用できます。Junos syslogエンジンを有効にすると、syslogイベントをリッスンし、イベント情報を抽出してSalt形式に変換し、Saltイベントバスに公開します。Junos syslogエンジンを有効にするには、SaltマスターでJunos syslogエンジンを設定する必要があります。さらに、Junos OSを実行しているデバイスがSalt Server上の設定済みポートにsyslogイベントを送信するように設定する必要があります。
Junos syslogエンジンは、プロキシミニオンサーバー上で実行することもできます。
Salt マスターで Junos syslog エンジンを有効にするには、次の手順に従います。
Junos OS エンジンが実行されているホストに Syslog イベントを送信するように Junos OS を実行しているデバイスを設定するには、次の手順に従います。
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