Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Salt を使用して Junos OS を実行しているデバイスにファイルをコピーする

Salt は、デバイスとの SSH 経由の NETCONF セッションを確立するプロキシ ミニオンを介して、Junos OS を実行しているデバイスを管理できます。プロキシ ミニオンを使用する場合、デバイスは salt ミニオン プロセスを直接実行しないため、標準の Salt 関数を使用してデバイス上でファイル コピー操作を実行することはできません。 salt.modules.junos.file_copy 実行機能と salt.states.junos.file_copy 状態機能を使用すると、Salt マスター サーバまたはプロキシ ミニオン サーバから、Junos OSを実行している管理対象デバイスにファイルをコピーできます。

junos.file_copy 関数の構文

salt.modules.junos.file_copy実行関数の構文は次のとおりです。

salt.states.junos.file_copy状態関数の構文は次のとおりです。

どこ:

  • src- ソース ファイルのパス。Salt マスターでパスを指定するには、 salt:// 表記を使用します。プロキシ ミニオン サーバー上のパスを指定するには、絶対パスを使用します。

  • dest—Junos OS を実行しているデバイス上の宛先ファイルの絶対パスまたは相対パス。ターゲット・デバイスで絶対パスを指定しない場合、パスは現在の作業ディレクトリー(ユーザーのホーム・ディレクトリー)からの相対パスになります。

junos.file_copy実行機能でファイルをコピーする方法

junos.file_copy実行機能を使用すると、Salt マスター サーバまたはプロキシ ミニオン サーバから Junos OS を実行しているデバイスにファイルをすばやくコピーできます。

たとえば、次のコマンドは、 bgp.slax ファイルをSaltマスターからJunos OSを実行しているターゲットデバイスであるrouter1にコピーし、ファイルの名前を bgp-neighbors.slaxに変更します。

コマンドでは宛先ファイルの絶対パスが指定されていないため、ファイルはユーザーのホームディレクトリにコピーされます。

ファイルを特定の場所にコピーするには、ターゲット・デバイスの絶対パスを指定します。

junos.file_copy State 関数でファイルをコピーする方法

Salt ステート ファイル内で junos.file_copy ステート機能を使用して、Salt マスター サーバまたはプロキシ ミニオン サーバから Junos OS を実行しているデバイスにファイルをコピーできます。これにより、ファイルのマスター セットを 1 つの中央リポジトリに格納し、特定のミニオンにコピーするファイルを定義する状態を宣言できます。状態を適用または適用すると、Salt は必要なファイルをリポジトリからデバイスにコピーします。

次の状態ファイルは、2つのスクリプトを、Saltマスターサーバー上の /srv/salt/scripts/op ディレクトリから、Junos OSを実行しているデバイスの /var/db/scripts/op ディレクトリにコピーします。

状態をターゲットデバイスに適用すると、各スクリプトが指定された場所にコピーされます。

別の例として、Salt マスターの /srv/salt/scripts ディレクトリにスクリプト ファイルのライブラリがあり、特定のスクリプトが Junos OS を実行している管理対象デバイスに確実にコピーされるとします。

Salt マスターでは、スクリプト情報をピラー データとして指定し、ピラー トップ ファイル内の適切なミニオンがアクセスできるようにすることができます。

その後、Jinjaテンプレートを使用してスクリプトタイプとスクリプト名を反復処理するSalt Stateファイルを作成し、スクリプトをターゲットデバイスにコピーするための適切な命令を生成できます。

手記:

Jinja の構文は、Salt が使用する Python のバージョンによって異なる場合があります。

レンダリングされた状態ファイルは次のようになります。

ターゲットデバイスに状態を適用すると、各スクリプトがそのスクリプトタイプのデバイス上の適切なディレクトリにコピーされます。