Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Ansibleを使用してJunosデバイスに接続する

juniper.device Ansibleコレクションで設定されたjuniper.deviceモジュールを使用する場合のJunosデバイスへの接続方法を理解します。

ジュニパーネットワークス には、Junos OS を実行しているデバイスと Junos OS Evolved を実行しているデバイスの管理に使用できる Ansible モジュールが用意されています。ジュニパーネットワークス モジュールは、 juniper.device コレクションを介して配布されます。 juniper.device コレクションには、次の 2 つのモジュール セットが含まれています。

このドキュメントでは、異なるプロトコルとAnsible接続を使用してJunosデバイスに接続するためにのみ設定された juniper.device モジュールを使用する方法について説明します。 junipernetworks.junos モジュールを使用してJunosデバイスに接続する方法については、 juniper.device.junos_* Ansibleモジュールを使用したJunosデバイスの管理を参照してください。

接続方法の概要

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

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

デフォルトでは、 juniper.device モジュールはSSHを使用してデバイスに接続します。telnet またはシリアル・コンソール接続を使用するには、 mode パラメーターを適切な値に設定します。デバイスに telnet 接続するには、 mode 引数を telnet に設定します。シリアルコンソール接続を使用するには、 mode 引数を serialに設定します。 表1は 、接続モード、特定のパラメーターのデフォルト値、および必要なJunos OS設定をまとめたものです。 juniper.device モジュール は、すべての接続モードをサポートします。

表1:juniper.deviceの接続モードモジュールセット

接続モード

引数 mode

デフォルトポート

必要なJunos OS設定

SSHを介したNETCONF(デフォルト)

830

[edit system services]
netconf {
    ssh;
}

シリアルコンソール接続

serial

/dev/ttyUSB0

コンソールサーバーを介したSSH

22

Telnet から Junos デバイス

telnet

23

[edit system services]
telnet;

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

telnet

23

注:

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

juniper.deviceモジュールを使用してJunosデバイスを管理する場合、リモートデバイスは、指定されたプロトコルに適した認証情報を使用してAnsibleユーザーを認証できる必要があります。詳細については、「JunosデバイスでAnsibleモジュールを実行するユーザーの認証」を参照してください。

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

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

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

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

表2 は、 juniper.device モジュールセット内のモジュールのAnsible接続をまとめたものです。

表2:juniper.deviceでサポートされているAnsible接続モジュールセット

Ansible接続

説明

connection: local

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

connection: juniper.device.pyez

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

プレイブックでローカル接続と永続接続の接続パラメーターと認証パラメーターを定義できます。ローカル接続は、タスクごとにホストへの個別の接続を確立します。したがって、プレイの vars: セクションとモジュールの引数リストでローカル接続の接続と認証パラメータを定義できます。モジュール引数が優先されます。対照的に、永続的な接続は、プレイ内のすべてのタスクに対して単一の接続を持ちます。したがって、プレイの vars: セクションで、永続的接続の接続と認証パラメーターをグローバルに定義する必要があります。

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

SSHを使用してデバイスに接続する

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

モジュールは、~/.ssh/configにあるデフォルトのSSH設定ファイル(存在する場合)に自動的にクエリーを実行します。また、 ssh_config パラメーターを含めて、別の設定ファイルを指定することもできます。

Junosデバイスまたはデバイスに接続されたコンソールサーバーへのSSH接続の場合、モジュールはまずSSH公開キーベースの認証を試み、次にパスワードベースの認証を試みます。パスワードベースの認証を使用する場合、提供されたパスワードがデバイスパスワードとして使用されます。SSHキーが使用されている場合、提供されたパスワードがプライベートキーのロックを解除するためのパスフレーズになります。SSHキーエージェントにキーをロードする場合、またはSSHプライベートキーのパスフレーズが空の場合は、パスワードを指定する必要はありません。ただし、空のパスフレーズでSSHプライベートキーを使用することはお勧めしません。

次のプレイブックでは、JunosデバイスとのSSH経由でNETCONFセッションを確立し、デバイスのファクトを取得します。プレイブックでは、SSHキーエージェントにロードされたSSHキーを使用します。

このモジュールでは、コンソールサーバーへのSSH接続を介してJunosデバイスに接続することもできます。この場合、Junosデバイスとコンソールサーバーの両方のログイン資格情報を指定する必要があります。 user パラメーターと passwd パラメーターを使用して、Junos OSログイン資格情報を指定します。 cs_user パラメーターと cs_passwd パラメーターを使用して、コンソール サーバーの資格情報を指定します。SSHキーが使用されている場合、 cs_passwd がプライベートキーのパスフレーズになります。さらに、該当する場合は、 port 引数をTTYデバイスにマッピングするTCPポートに設定します。

次のプレイブックでは、コンソール サーバーと Junos デバイスのユーザーの資格情報を入力するよう求めます。モジュールは、コンソール サーバーで認証し、次に Junos デバイスで認証します。認証に成功すると、プレイブックはマネージドノードからデバイスのファクトを取得し、Junos OSのバージョンを印刷します。

ジュニパーネットワークスモジュールは、 ~/.ssh/configにあるデフォルトのSSHクライアント設定ファイル(存在する場合)を自動的にクエリします。 ssh_config パラメーターを含め、設定ファイルの場所を指定することで、別のSSH設定ファイルを使用できます。次に例を示します。

Telnet を使用してデバイスに接続する

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

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

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

シリアルコンソール接続を使用してデバイスに接続する

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

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

次のプレイブックでは、 コンソール ポートを介して Junos デバイスに接続し、初期設定を読み込んでコミットします。プレイブックは、ユーザー名とパスワードの入力を求めます。