Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Ansibleを使用して実行中のデバイスからファクトを取得Junos OS

ジュニパーネットワークスは、Ansibleを使用してJunos OSを実行するデバイスをサポートし、デバイスで運用と設定のタスクを実行できる Ansibleモジュールを提供します。モジュールは、デバイスへのインターフェイスに PyEZ 管理対象デバイス Junos PyEZ Junos XML API を NETCONF 上で使用Junos Python を必要としません。そのため、Ansible を使用してデバイスで Junos OS を実行する場合、Ansible モジュールをコントロール ノード上でローカルに実行する必要があります。そのため、Ansibleのデフォルトでは、マネージドノードではなく、Ansibleコントロールノードからファクトを収集します。

ジュニパーネットワークスは、アクティブ構成を含むデバイスのファクトを、Junos OS を実行しているデバイスから収集できるモジュールを提供しています。表 1 に、使用可能なモジュールの概要を示します。モジュールは PyEZ Junos PyEZ ファクト収集システムを使用してデバイスの情報を取得します。PyEZ のJunos収集システムと、返された辞書キーの完全なリストの詳細については、 jnpr.junos.facts を参照してください

表 1:ファクトを収集するモジュール

コンテンツ セット

モジュール名

juniper.device コレクション

facts

Juniper.junos 役割

juniper_junos_facts

facts モジュール juniper_junos_facts は、デバイスの情報を辞書 ansible_facts.junos で返します。これらのモジュールを使用すると、戻されたデータをローカルの Ansible コントロール ノード上のファイルに保存することもできます。取得した情報を保存するディレクトリを指定するには、module の引数を含め、ターゲット ディレクトリへの savedir パスを定義します。引数を指定すると、各デバイスで次のファイルが生成されます。デバイスから取得した情報の値は、モジュールに渡されるホスト名とは異なる savedir hostname 可能性があります hostname

  • hostname -facts.json— デバイスのファクト(JSON 形式)

  • hostname -inventory.xml— デバイスのハードウェア インベントリ(XML 形式)を使用

たとえば、以下のプレイブックは、インベントリ グループ内の各デバイスのデバイスのファクトを取得し、Ansible Control Node のプレイブック ディレクトリにある個別のファイルに各デバイスのデータを保存します。プレイブックはローカルでジュニパーネットワークスモジュールを実行します。Ansibleは制御ノードからファクトを収集します。プレイブックには、Ansibleが制御ノードからファクトを収集するのではなく、収集にモジュールを使用してサーバーからファクトを取得する引数 gather_facts: no facts juniper.device が含管理対象デバイス。デバイスでの認証を行う場合、この例ではデフォルトの場所で既存のSSHキーを使用するため、プレイブック内のモジュールの認証情報は facts 明示的に提供されません。

デフォルトでは、 facts および juniper_junos_facts モジュールはデバイス設定を返しません。デバイスのアクティブな設定をデバイスのファクトに加えて返す場合は、 オプションを含め、設定を返す形式 config_format を指定します。受け入れ可能な形式の値は 'json''set''text' 'xml' です。要求された形式は、デバイスで実行されているJunos OSでサポートされている必要があります。

オプションを含める場合、モジュール応答の辞書には、指定された形式で設定された鍵が 1 つの複数行の文字列 config_format ansible_facts.junos config で含まれます。オプションが savedir 含まれている場合、設定データ はファイル に書き込まれません。

ヒント:

Ansibleを使用してJunos OSを実行しているデバイスから設定データを取得し、データをファイルに保存するには、 または モジュールの代わりに、 または モジュール config juniper_junos_config facts を使用 juniper_junos_facts します。詳細については、「 Ansible を使用してネットワーク設定を取得または比較Junos OSする 」 を参照してください

次の例のプレイブックでは、次の操作を実行します。

  • インベントリ グループ内の各デバイスのデバイスのファクトとアクティブな設定を取得します。

  • Ansible Control Nodeのプレイブックディレクトリにある別のファイルに、各デバイスのファクトとハードウェアインベントリを保存します。

  • 各デバイスの設定を標準出力に印刷します。