Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Ansible を使用して Junos デバイスからファクトを取得する

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

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

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

コンテンツセット

モジュール名

juniper.device コレクション

facts

Juniper.junos 役割

juniper_junos_facts

モジュールjuniper_junos_factsfactsモジュールは、ansible_facts.junosディクショナリ内のデバイスのファクトを返します。このモジュールを使用すると、返されたデータをローカルの Ansible 制御ノード上のファイルに保存することもできます。取得した情報を保存するディレクトリを指定するには、module 引数を含めsavedir、ターゲット ディレクトリへのパスを定義します。引数を含めるsavedirと、プレイブックはデバイスごとに次のファイルを生成します。ここでhostname、 はデバイスから取得されたhostnameファクトの値であり、モジュールに渡されたホスト名とは異なる場合があります。

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

  • hostname-inventory.xml:XML 形式のデバイスのハードウェア インベントリ

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

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

オプションを含める config_format と、モジュール応答のディクショナリには ansible_facts.junos 、指定された形式の構成を持つキーが 1 つの複数行文字列で含まれ config ます。 savedir オプションが含まれている場合、コンフィギュレーション・データはファイルに書き込まれ ません

ヒント:

Ansible を使用して Junos デバイスから設定データを取得し、そのデータをファイルに保存するには、 モジュールではなく、 facts モジュール または モジュールjuniper_junos_factsjuniper_junos_configを使用しますconfig。詳細については、次を参照してください:Ansible を使用して Junos OS 設定を取得または比較する。

次の例のプレイブックでは、次の操作が実行されます。

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

  • 各デバイスのファクトとハードウェア インベントリを、Ansible制御ノードのプレイブック ディレクトリ内の個別のファイルに保存します

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