Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos OS イベント用の Salt Reactor の設定

Salt 反応装置は、Salt イベント バス上の特定のイベントに応じて対応する機能を提供します。Salt リアクタ システムは Salt イベント バス上のイベントを監視し、構成済みのルールに基づいてイベントに一致させるアクションをトリガーします。Junos syslog エンジン(Salt 用)が、Junos OS を実行する管理対象デバイスから Salt イベント バスにイベントを発行できるようにできます。その後、既存のリアクタまたはカスタム リアクタを設定して、これらのイベントに対してアクションを実行できます。これにより、イベント駆動型インフラストラクチャ(EDI)を作成して、クローズドループ自動化をリアルタイムで実現できます。

塩炉を構成する方法

Salt リアクタを使用して Junos OS イベントに応答する前に、まず Junos syslog エンジンを有効にして、Junos OS イベント バスに Junos OS イベントを公開し、Junos OS を実行する管理対象デバイスがエンジンの実行中のサーバーに syslog メッセージを送信するように設定する必要があります。詳細については、「 Salt 用 Junos Syslog エンジン」を参照してください。Junos syslog エンジンを有効化した後、特定の Junos OS イベントに応じて自動的にトリガーされる Salt リアクタを設定できます。

特定のイベントに反応するリアクタを設定するには、

  1. アクションをトリガーするイベントおよび対応するイベント タグを定義します。

  2. Salt マスター上に 1 つ以上のリアクタ SLS ファイルを作成し、特定のイベントが発生したときに実行するアクションを定義します。

  3. Salt マスター構成ファイルで オプションを reactor 定義し、各イベント タグを 1 つ以上のリアクタ ファイルに関連付けます。

  4. Salt マスターを再起動して、更新された設定を適用します。

これらの手順については、以下のセクションで詳しく説明します。

イベントとイベントタグを定義する方法

Junos syslog エンジンは、以下のデフォルトのイベント タグ文字列を使用して、Junos OS イベントを Salt イベント バスに公開します。タグには、ターゲットのホスト名とJunos OS syslogイベント名が含まれています。

Salt イベント バスから一致させるイベント タグを定義するには、ホスト名と、対応をトリガーするイベントを指定します。アスタリスク(*)を使用して、すべてのホストのイベントで一致させることができます。Junos OSのシステムログメッセージの詳細については、 システムログエクスプローラを参照してください。

例えば、Junos OS を実行している管理対象デバイスからのイベントで UI_COMMIT_COMPLETED 一致するには、以下のイベント タグを使用できます。

メモ:

構成で engines パラメーターを設定してイベント タグをtopicカスタマイズした場合、一致するイベント タグには同じフィールドが反映されている必要があります。

Salt マスター構成ファイルでリアクタを構成する場合は、このイベント タグを参照します。

リアクタの SLS ファイルを作成する方法

リアクタの SLS ファイルは、特定のイベントが発生したときに実行するアクションを定義します。リアクタのSLSファイルは、YAML形式を使用し、Jinjaを使用してサポートするという点で、他の Salt SLSファイルと似ています。一般に、ファイルは/srv/reactor や /srv/salt/reactor など、別のディレクトリに格納されます。リアクタ ファイルはイベントのデータを使用し、Salt マスターまたはミニオンに対してアクションを実行し、ターゲットなどに状態を適用できます。リアクタ ファイルの書き込みの詳細については、Salt の公式ドキュメントを参照してください。

たとえば、次のリアクタ ファイルはターゲット デバイスに junos_backup_config 状態を適用します。この場合、ターゲットはイベント データの値と一致する hostname プロキシ ID です。

リアクタを構成する方法

リアクタを設定するには、Salt マスター設定ファイルで オプションを定義 reactor します。アクションと実行するアクションをトリガーするイベントを定義します。一致してアクションを実行するイベントごとに、そのイベントのイベント タグを 1 つ以上のリアクタ SLS ファイルに関連付けます。イベント バスでイベントが発生すると、ファイルで定義されたアクションが自動的にトリガーされます。

例えば、次のリアクタ構成では、Junos syslog イベントを Junos syslog エンジンに送信するように構成された Junos OS を実行している管理対象デバイスでイベントが発生するたびにUI_COMMIT_COMPLETEDjunos_backup_on_commit.sls リアクタ ファイルを呼び出します。

リアクタの設定を適用するには、オペレーティング システムに適したコマンドを使用して Salt マスターを再起動する必要があります。例えば:

例:Junos OS コミット イベントへの応答

この例では、Junos OS を実行している管理対象デバイスが設定をコミットするたびにバックアップ構成ファイルを生成するシンプルな Salt リアクタを示します。

要件

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

  • NETCONF を有効にした Junos OS を実行しているデバイス

  • 次の要件を持つ塩マスター:

    • Salt バージョン 3001(ナトリウム)以降

    • Junos OS を実行しているデバイスで ping と操作を実行できます。

概要

この例では、Junos OSを実行している管理対象デバイスが設定をコミットするたびにバックアップ設定ファイルを生成します。この例では、イベントに一致したときにアクションをトリガーするように Salt リアクタ システムを UI_COMMIT_COMPLETED 構成します。ここでは、参考までにサンプル イベントを示します。

この例では、まず Salt マスターで Junos syslog エンジンを有効にし、Junos OS を実行するデバイスが syslog メッセージを Salt マスター サーバー ポート 9999 に送信するように設定します。設定が適用されると、デバイスは Junos syslog エンジンにイベントの送信を開始し、Salt イベント バスでイベントを公開します。

に、イベント データ内のキーの値hostnameによって特定されたターゲットに状態をjunos_backup_config適用するリアクタ SLS ファイルjunos_backup_on_commit作成します。対応するステート ファイルは、RPC をjunos.rpc実行する機能をget_config使用して、ターゲット デバイスからテキスト形式で設定を取得します。その後、 パラメーターで指定されたファイル パスのプロキシ ミニオン サーバーに設定をdest保存します。引数はdestidグレインと現在の時刻を参照して、デバイスの ID とタイムスタンプを含む一意のファイル名を生成します。

次に、イベント タグを reactor リアクタ ファイルに関連付ける Salt マスター構成ファイルで オプションを定義して、リアクタを設定します。Salt マスターを再起動して構成を適用すると、イベントが発生したときに Salt リアクタ システムから適切なリアクタ ファイルが呼び出されます。そのため、Salt マスターによって管理される Junos OS を実行しているデバイスでコミット完了イベントが発生すると、Junos syslog エンジンがイベント バスでイベントを公開し、Salt Reactor システムがリアクタ ファイルを呼び出します。

構成

Junos Syslogエンジンを有効にする

手順

Junos syslogエンジンを有効にするには:

  1. Salt マスター設定ファイルで Junos syslog エンジンを設定します。

  2. Salt マスターを再起動して、設定を適用します。例えば、

  3. Junos OS を実行しているデバイスが、Salt マスター上の同じポートに syslog イベントを転送するように設定します。

状態ファイルの作成

手順

状態が適用されるたびにターゲット ノードのバックアップ構成ファイルを生成する状態ファイルを作成するには、次の手順にしたがっています。

  1. Salt マスターで、 /srv/salt/junos_backup_config.sls という名前の新しい状態ファイルを作成します。

  2. 設定を取得する状態を定義し、一意の名前付きファイルに保存します。

    メモ:

    プロキシIDとホスト名が同一でない場合は、 を に置き換えてホスト名を{{ grains['junos_facts']['hostname'] }}{{ grains['id'] }}参照できます。

リアクタ ファイルを作成する

手順

リアクタの SLS ファイルを作成するには、次の手順にしたがっています。

  1. Salt マスターで、 /srv/reactor/junos_backup_on_commit.sls という名前の新しいリアクタ SLS ファイルを作成します。

  2. ターゲットに状態を適用 junos_backup_config するようにリアクタ ファイルを構成します。

    • プロキシIDがデバイスのホスト名と同じ場合、イベントデータのホスト名をターゲットとして参照できます。

    • プロキシIDがデバイスのホスト名と異なる場合は、グレインの値を参照することで、ホスト名をプロキシIDに junos_facts:hostname マッピングできます。

リアクタを設定する

手順

リアクタを設定するには:

  1. Salt マスター構成ファイルで、 オプションを reactor 構成し、イベント ファイルとリアクタ ファイルを指定します。

  2. Salt マスターを再起動して、設定を適用します。例えば、

結果

Junos OS を実行しているデバイスで設定をコミットすると、Salt Reactor システムがイベントに一致し、リアクタを呼び出します。リアクタは、その状態をデバイスに適用して、構成を取得して保存します。

検証

塩炉の動作検証

目的

Junos OS を実行するデバイスが設定を junos_backup_config コミットするときに、Salt リアクタが状態を適用し、プロキシ ミニオン サーバーにバックアップ設定ファイルを保存することを確認します。

アクション

Junos OSを実行しているデバイスで設定をコミットした後、プロキシミニオンサーバー上のディレクトリを確認 /var/log/salt/backup-configs して、バックアップ設定ファイルが生成されたことを確認します。

意味

この設定は、プロキシ ミニオン サーバー上の指定されたファイルにテキスト形式で保存されます。