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-minionプロセスを直接実行しないため、標準の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:// 表記を使用します。プロキシミニオンサーバー上のパスを指定するには、絶対パスを使用します。

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

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

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

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

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

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

junos.file_copy状態関数を使用してファイルをコピーする方法

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

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

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

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

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

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

メモ:

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

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

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