Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos 実行およびステート Salt モジュールについて

概要 Junos 実行および状態 Salt モジュールを使用すると、アドホック コマンドを実行したり、Junos OS を実行するデバイス上で特定の状態を定義および適用したりできます。

Junos 実行および状態モジュールの概要

Salt は、システムの状態を宣言して適用し、管理対象デバイスで運用タスクと構成タスクを実行できる、構成管理およびリモート実行ツールです。Salt は Python モジュールを使用してこれらのタスクを実行します。モジュールの 2 つの主なタイプは、実行モジュールと状態モジュールです。

Salt 実行モジュールは Salt ミニオン上で動作する Python モジュールです。これらの関数は、ミニオンでタスクを実行できる機能を定義します。特定の関数を実行して結果を返すようにターゲットのミニオンに指示する、Salt マスターでアドホック コマンドを実行できます。同様に、Salt ステート モジュールは Salt ステート ファイルで使用される関数を定義し、ミニオンに状態のアプリケーションを管理します。

Salt インストールには、以下の実行モジュールとステート モジュールが含まれており、Junos OS を実行しているデバイスとやり取りできます。

  • salt.modules.junos—Junos 実行モジュール(Salt 用)は、Junos OS を実行するデバイスで運用タスクと設定タスクを実行できる機能を定義します。たとえば、デバイスで運用コマンドまたは RPC を実行したり、設定を変更したり、新しいソフトウェア イメージをインストールすることができます。

  • salt.states.junosJunos ステート モジュール(Salt 用)は、Salt ステート ファイルで使用できる機能を定義し、Junos OS を実行するデバイス上で特定の状態を宣言および適用します。例えば、設定に特定のステートメントのセットが含まれているか、デバイスが特定の動作状態を反映していることを確認することができます。Junos 状態関数は、同じ名前の Junos 実行機能を呼び出して、これらのタスクを実行します。

Salt が Junos OS を実行しているデバイスを Junos プロキシ(Salt 用)で管理し、関数と呼ぶ場合、Python モジュールはデバイス上で直接実行されません。代わりに、プロキシ ミニオンは Junos PyEZ を使用してリモート プロシージャ コール(RPC)を管理対象デバイス上の NETCONF サーバーに送信し、要求されたタスクを実行します。この機能を複数のターゲットで実行すると、Salt は異なるデバイス上でタスクを並行して実行します。

表 1 は、Junos 実行および状態モジュールで定義された関数を示し、各関数の簡単な説明を示しています。、 、facts_refreshおよび ping 関数をfacts除き、同じ関数が両方のモジュールで定義されます。

表 1:Junos 実行および状態モジュール機能

関数名

salt.modules.junos

salt.states.junos

説明

cli

Y

Y

CLI コマンドを実行し、指定された形式でコマンド出力を返します。

commit

Y

Y

ターゲットの構成データベースに読み込まれた変更をコミットします。

commit_check

Y

Y

候補構成に commit check 対する操作を実行して、構文が正しいことを確認します。

diff

Y

Y

候補コンフィギュレーションと指定されたロールバック・コンフィギュレーションの差を戻します。

facts

Y

接続フェーズで収集されたデバイスファクトを表示します。

facts_refresh

Y

ターゲット デバイスからデバイス ファクトを再読み込みし、Salt 穀物に格納されているファクトを更新します。

file_copy

Y

Y

Salt マスターまたはプロキシ ミニオン サーバーから Junos OS を実行するデバイスにファイルをコピーします。

get_table

Y

Y

Junos PyEZ テーブルおよびビューを使用して、Junos OS を実行しているデバイスから運用データまたは設定データを取得します。

install_config

Y

Y

ターゲットの設定データベースをロック、変更、コミット、ロック解除します。

install_os

Y

Y

デバイスにJunos OSソフトウェアイメージをインストールします。

load

Y

Y

指定されたファイル内のコンフィギュレーション・データをターゲット・コンフィギュレーション・データベースに読み込みます。

lock

Y

Y

候補構成に対して排他的ロックを要求します。

ping

Y

Junos OSを実行しているデバイスからインターネット制御メッセージプロトコル(ICMP)pingを指定されたターゲットに送信し、結果を表示します。

rollback

Y

Y

設定を以前にコミットした設定にロールバックし、コミットします。

rpc

Y

Y

ターゲット デバイスで指定された RPC を実行します。

set_hostname

Y

Y

Junos OS を実行する管理対象デバイスのホスト名を設定し、変更をコミットします。

shutdown

Y

Y

Junos OS を実行しているデバイスを再起動またはシャットダウンする。

unlock

Y

Y

候補コンフィギュレーションの排他ロックを解除します。

zeroize

Y

Y

デバイスを工場出荷時のデフォルト設定に戻します。

Junos 実行機能の使用方法

Salt 実行モジュールを使用すると、1 つ以上のミニオンでアドホック タスクを実行できます。Salt マスター コマンド ラインから実行関数を呼び出すには、次の構文を使用します。

どこ:

  • arguments-必須またはオプションの関数引数。

  • target機能を実行するミニオン。1 つのミニオンを指定したり、'*'すべてのミニオンをターゲットにしたり、例えば、名前が でrouter始まるすべてのミニオンを含めるために、'router*'ミニオンのグループをターゲットにする式を定義することができます。

  • module実行する関数を含む Salt 実行モジュールの名前。

  • function実行する関数の名前。

たとえば、すべてのミニオンへの接続をテストするには、モジュールの機能をtest実行し、ターゲットに使用'*'pingします。

Junos 実行機能を呼び出すには、モジュールと目的の関数を指定junosします。例えば、以下のコマンドは、ルーター1で動作モードコマンドをshow version実行する関数を呼び出しますcli

Salt マスター コマンド ラインでコマンドを実行すると、Salt は CLI 入力を渡して PyYAML 、適切な Python データ タイプとして読み込まれるようにします。場合によっては、整数を受け取る引数や、整数を解析する文字列値を取得する引数が正しく解析されない場合があります。これらの引数に対して、以下のいずれかのメソッドを使用して値を指定できます。

  • バックスラッシュ(\)を使用して、文字列値の引用符をエスケープします。

  • 二重引用符を使用して単一引用符を囲み、その逆も同様です。

  • オプションを --no-parse=param_name 含めます。

例えば、以下のコマンドは、デバイスが特定の時刻に再起動するようにスケジュールします。

以下のコマンドは、指定されたスロットのルーティング エンジンの情報を要求します。

Junos 状態機能の使用方法

Salt ステート ファイルから Junos ステート モジュール関数を呼び出すことができます。構文は機能によって異なります。関数を使用する前に、モジュールのドキュメントで適切な構文を確認してください。

状態関数の多くは、以下の一般的な構造を使用しています。

例えば、以下の状態ファイルは、 機能を junos.install_config 使用して、指定されたテンプレート内の設定をターゲットデバイスに適用します。

ただし、場合によっては、構造体の 1 行目は、関数の引数を提供できます。例えば、 rpc この関数は、前の構文を使用するか、データ構造の 1 行目として RPC を提供できます。以下の状態ファイルは、同等であり、ge-1/0/0 インターフェイスの情報を取得する関数を呼び出します rpc が、さまざまなメソッドを使用して RPC 引数を提供します。

ターゲット デバイスに状態を適用すると、指定されたインターフェイスの RPC が get-interface-information 実行され、結果が返されます。Salt はターミナルに terse 出力を表示し、プロキシ ミニオン サーバーの /tmp/interface.log ファイルにテキスト形式で出力を保存します。