Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Ansible を使用した Junos デバイスへの接続

概要 ジュニパーネットワークスのAnsibleモジュールを使用すると、SSH、Telnet、またはシリアルコンソール接続を使用してJunosデバイスに接続できます。

ジュニパーネットワークスは、Junosデバイスの管理に使用できるAnsibleモジュールを提供しています。ジュニパーネットワークスのモジュールは、Ansible GalaxyでホストされているコレクションとJuniper.junosロールを通じてjuniper.device配布されます。モジュールは、このドキュメントで説明されているさまざまなプロトコルとAnsible接続を使用して、Junosデバイスに接続できます。

接続方法の概要

ジュニパーネットワークスのAnsibleモジュールを使用すると、SSH、Telnet、またはシリアルコンソール接続を使用してJunosデバイスに接続できます。端末またはラップトップがJunosデバイスのコンソールポートに物理的に接続されている場合は、シリアル コンソール 接続を使用する必要があります。SSHまたはTelnetを使用して、デバイスの管理インターフェイス、またはデバイスのコンソール ポートに直接接続されている コンソール サーバーに接続できます。

工場出荷時のデフォルト設定の新規またはゼロ化されたデバイスは、コンソール接続を介してアクセスする必要があります。このように、Ansibleを使用して、デバイスに直接接続している場合はシリアルコンソール接続を使用するか、デバイスに直接接続されているコンソールサーバーを介してtelnetまたはSSHを使用して、リモートアクセス用にまだ構成されていません。

デフォルトでは、ジュニパーネットワークスモジュールはSSHを使用してデバイスに接続します。Telnet またはシリアル コンソール接続を使用するには、モジュールのパラメーターをmode適切な値に設定します。デバイスにtelnetで接続するには、引数を mode に設定します"telnet"。シリアル・コンソール接続を使用するには、引数"serial"mode に設定します。表1は、接続モード、特定のパラメーターのデフォルト値、必要なJunos OS設定、およびそのJuniper.junos接続モードのサポートが最初に導入されたリリースをまとめたものです。モジュールは、juniper.device初期リリース時点ですべての接続モードをサポートしています。

表 1: ジュニパーネットワークス Ansible モジュールの接続モード

接続モード

引数の値mode

デフォルトポート

必要な Junos OS 設定

最初にサポートされたリリース (Juniper.junos)

SSH経由のNETCONF(デフォルト)

830

[edit system services]
netconf {
    ssh;
}

1.0.0

シリアルコンソール接続

serial

/dev/ttyUSB0

2.0.0

コンソール サーバー経由の SSH

22

2.2.0

JunosデバイスへのTelnet

telnet

23

[edit system services]
telnet;

1.4.0

2.0.0で追加されたデフォルトポート

コンソール・サーバーを介した Telnet

telnet

23

1.4.0

メモ:

SSH経由でTelnetまたはNETCONFを使用して管理インターフェイスにアクセスするには、まず階層 [edit system services] レベルで適切なサービスを有効にする必要があります。Telnet はクリア テキスト パスワードを使用するため (したがって、潜在的なセキュリティの脆弱性を生み出す)、SSH の使用を推奨します。

ジュニパーネットワークスモジュールを実行してJunosデバイスを管理する場合、リモートデバイスは、特定のプロトコルに適した資格情報を使用してAnsibleユーザーを認証できる必要があります。詳細については、次を参照してください: JunosデバイスでAnsibleモジュールを実行しているユーザーの認証

ジュニパーネットワークス モジュールは、Junos デバイスに接続するときに、ローカル(タスク単位)接続や永続的(プレイ単位)接続など、さまざまな Ansible 接続をサポートします。Ansible接続は、Ansibleがプレイ内のタスクごとにホストへの個別の接続を確立するか、プレイ内のすべてのタスクにわたって保持するホストへの単一の接続を確立するかを決定します。Ansible接続の指定については、 ローカルおよび永続的なAnsible接続についてを参照してください。

ローカルおよび永続的なAnsible接続について

ジュニパーネットワークスモジュールは、Junos PyEZとJunos XML APIをNETCONF上で使用してデバイスとインターフェイスするため、Junosデバイス上でPythonは必要ありません。したがって、Junosデバイスで操作を実行するには、PythonがインストールされているAnsible制御ノードでモジュールをローカルで実行する必要があります。プレイブックの再生に含めることで connection: local 、モジュールをローカルで実行できます。を使用すると connection: local、Ansibleは、ホストで操作を実行するプレイ内のタスクごとに、ホストへの個別の接続を確立します。

juniper.device収集モジュールは、ホストへの永続的な接続を確立することもサポートconnection: juniper.device.pyezしています。永続的な接続を使用する場合、Ansibleは引き続き制御ノードでモジュールをローカルに実行しますが、各ホストへの単一の接続を確立および維持するだけで、プレイ内のすべてのタスクの実行にわたって保持されます。ホストへの永続的な接続を確立する方が、プレイ中のタスクごとにホストに個別の接続を確立するよりも、複数のタスクを実行するのに効率的です。

表 2 は、Ansible 接続とそれをサポートするコンテンツ セットをまとめたものです。

表2:ジュニパーネットワークスのモジュールでサポートされているAnsible接続

Ansible接続

説明

コンテンツ セットのサポート

connection: local

Ansible制御ノードでモジュールをローカルに実行しますが、ホストで操作を実行するプレイ内のタスクごとに、ホストへの個別の接続を確立します。

juniper.deviceコレクション

Juniper.junos役割

connection: juniper.device.pyez

Ansibleコントロールノードでモジュールをローカルに実行しますが、プレイ内のすべてのタスクの実行に対して持続するホストへの永続的な接続を確立します。

juniper.deviceコレクション

メモ:

Ansibleは非推奨になりました connection: local。したがって、コレクション モジュールを使用する場合は juniper.device 、Ansible が今後のリリースでローカル接続のサポートを削除する場合の問題を回避するために、プレイブックで使用する connection: juniper.device.pyez ことをお勧めします。

を使用すると connection: local、Ansible はモジュールごとにホストへの個別の接続を確立するため、モジュールの引数リストでモジュール固有の接続および認証パラメーターを定義できます。対照的に、 を使用すると connection: juniper.device.pyez、プレイ内のすべてのタスクで接続が維持されるため、すべてのモジュールに対して接続と認証のパラメーターをグローバルに定義する必要があります。パラメーター vars: は、プレイのセクションで定義するだけでなく、SSH 構成ファイルや Ansible インベントリ ファイルなどの他の方法でパラメーターを指定できます。詳細については、 JunosデバイスでAnsibleモジュールを実行しているユーザーの認証を参照してください。

次のプレイブックは、プレイ内のすべてのタスクに使用される各ホストへの永続的な接続を確立します。Ansibleボールトファイルに保存されているユーザーの資格情報は、プレイの vars: セクションで定義されます。

SSH を使用したデバイスへの接続

ジュニパーネットワークスのAnsibleモジュールは、SSHを使用したJunosデバイスへの接続をサポートしています。デバイスの管理インターフェイスでSSH経由でNETCONFセッションを確立するか、デバイスのコンソールポートに直接接続されている コンソール サーバーとSSH接続を確立できます。SSHサーバーは、 JunosデバイスでAnsibleモジュールを実行しているユーザーの認証で説明されているように、標準のSSH認証メカニズムを使用してユーザーを認証できる必要があります。SSH経由でNETCONFセッションを確立するには、 Junos OSマネージドノード向けにAnsibleをセットアップするで説明されている要件も満たす必要があります。

ジュニパーネットワークスモジュールは、~/.ssh/configにあるデフォルトのSSH設定ファイルがあれば、それに対して自動的にクエリーを実行します(パラメータで ssh_config 別の設定ファイルが指定されていない限り)。SSHを使用してJunosデバイスまたはデバイスに接続されたコンソールサーバーに接続する場合、モジュールはまずSSH公開キーベースの認証を試み、次にパスワードベースの認証を試みます。パスワードベースの認証を使用する場合、指定されたパスワードがデバイスパスワードとして使用されます。SSHキーが使用されている場合、提供されたパスワードが秘密キーのロックを解除するためのパスフレーズとして使用されます。SSH 秘密キーのパスフレーズが空の場合、パスワードは必要ありません。ただし、空のパスフレーズを含むSSHプライベートキーは推奨されません。

次のプレイブックは、JunosデバイスとSSH経由でNETCONFセッションを確立し、デバイスのファクトを取得します。プレイブックでは、既定の場所で SSH キーが使用されます。

ジュニパーネットワークスのAnsibleモジュールでは、コンソール・サーバーへのSSH接続を介してJunosデバイスに接続することもできます。この場合、Junosデバイスとコンソール・サーバーの両方のログイン資格情報を指定する必要があります。userおよび passwd パラメーターを使用してJunos OSのログイン資格情報を指定し、 および cs_passwd パラメーターを使用してcs_userコンソール サーバーの資格情報を指定します。SSH キーが使用されている場合、cs_passwdはプライベート キーのパスフレーズです。

以下のプレイブックでは、コンソール サーバーと Junos デバイスに対するユーザーの資格情報の入力を求めます。モジュールはコンソール サーバーで認証され、次に Junos デバイスで認証されます。認証が成功すると、プレイブックは管理対象ノードからデバイスのファクトを取得し、Junos OSのバージョンを出力します。

ジュニパーネットワークスモジュールは、デフォルトのSSHクライアント設定ファイル~/ .ssh/configがあれば、自動的にクエリーを実行します。別のSSH構成ファイルを使用するには、 パラメーターを含め ssh_config 、構成ファイルの場所を指定します。例えば:

Telnet を使用したデバイスへの接続

ジュニパーネットワークスのモジュールでは、ネットワーク デバイスへの暗号化されていないアクセスを提供する telnet を使用して Junos デバイスに接続できます。デバイスの管理インターフェイス、またはデバイスのコンソール ポートに直接接続されている コンソール サーバーに Telnet で接続できます。コンソール・サーバーを介してデバイスにアクセスすると、リモート・アクセス用にまだ構成されていない新規デバイスまたはゼロ化されたデバイスを最初に構成できます。管理インターフェイスに telnet 接続するには、インターフェイスへのアクセスを必要とするすべてのデバイスの 階層レベルで Telnet サービス [edit system services] を設定する必要があります。

リモート デバイスに telnet で接続するには、パラメータを mode に設定し、オプションでポートを指定するパラメータ"telnet"を含めportます。modeを に設定"telnet"し、パラメーターを省略した場合port、 の値はportデフォルトで 23 になります。永続的な接続の場合は、 セクションの下に vars:port を定義しますmode。ローカル接続の場合、パラメーターは セクションの下vars:またはモジュール引数として定義できます。

次のプレイブックは、ポート 7016 を使用して Junos デバイスに telnet 接続し、デバイスのファクトを取得して、ファイルに保存します。モジュールはデフォルトのユーザーを使用し、ログインパスワードの入力を求めます。

シリアルコンソール接続を使用したデバイスとの接続

ジュニパーネットワークスのモジュールでは、シリアルコンソール接続を使ってJunosデバイスに接続できます。これは、リモートアクセス用にまだ設定されていない新規デバイスやゼロ化されたデバイスを最初に設定する必要がある場合に便利です。この接続方法を使用するには、端末またはラップトップが CONSOLE ポートを介してJunosデバイスに物理的に接続されている必要があります。Junosデバイスの コンソール ポートへの接続に関する詳細な手順については、特定のデバイスのハードウェアマニュアルを参照してください。

シリアル コンソール接続を介して Junos デバイスに接続するには、モジュールのパラメータ"serial"mode に設定し、オプションでポートを指定するパラメータを含めportます。modeに設定"serial"し、 パラメータをport省略した場合、 の値はportデフォルトで /dev/ttyUSB0になります。永続的な接続の場合は、 セクションの下に vars:port を定義しますmode。ローカル接続の場合、パラメーターは セクションの下vars:またはモジュール引数として定義できます。

次のプレイブックは、 CONSOLE ポートを介して Junos デバイスに接続し、初期設定を読み込んでコミットします。モジュールはデフォルトのユーザーを使用し、ログインパスワードの入力を求めます。