Junos OSを実行しているデバイスを管理する際のAnsible収集、ロール、モジュールエラーのトラブルシューティング
問題
説明
Ansible プレイブックの実行中に、コントロール ノードは、コレクションまたはJuniper.junos
ロールがjuniper.device
見つからなかった、タスクでアクションが検出されなかった、またはモジュールを解決できなかったというエラーを生成します。例えば:
ERROR! the role 'Juniper.junos' was not found in /usr/share/ansible/roles:/etc/ansible/roles ...
または
ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.
または
ERROR! couldn't resolve module/action 'facts'. This often indicates a misspelling, missing collection, or incorrect module path.
原因
Ansible コントロール ノードは、コレクションまたはロールと関連するモジュールをJuniper.junos
見つけるjuniper.device
ことはできません。
ソリューション
コレクションとJuniper.junos
役割はjuniper.device
、Ansible Galaxyのウェブサイトでホストされています。コレクションまたはロールのモジュールを使用するには、Ansible コントロール ノードにコレクションまたはロールをインストールし、プレイブックでも参照する必要があります。
Ansible コントロール ノードにコレクションをインストール juniper.device
するには、コマンドを実行して、 を ansible-galaxy collection install
指定 juniper.device
します。
user@ansible-cn:~$ sudo ansible-galaxy collection install juniper.device
Ansible コントロール ノードにロールをインストール Juniper.junos
するには、コマンドを実行して、 を ansible-galaxy install
指定 Juniper.junos
します。
user@ansible-cn:~$ sudo ansible-galaxy install Juniper.junos
既定の場所にコレクションまたはロールをインストールしない場合は、Ansible セットアップでコレクションへのパスを定義する必要があります。コレクションとロールのインストールとパスの指定の詳細については、 Ansible の公式ドキュメントを参照してください。
コレクション モジュールを juniper.device
使用するには、モジュールを実行するときに完全修飾コレクション名を参照します。例えば:
--- - name: Get Device Facts hosts: junos-all connection: local gather_facts: no tasks: - name: Get device facts juniper.device.facts: savedir: "{{ playbook_dir }}"
ロール モジュールを Juniper.junos
使用するには、プレイブックプレイにロールを含める必要があります。例えば:
--- - name: Get Device Facts hosts: junos-all connection: local gather_facts: no roles: - Juniper.junos tasks: - name: Get device facts juniper_junos_facts: savedir: "{{ playbook_dir }}"