0

Ansible を使用して構成を一部の Juniper デバイスにプッシュしています。始めるために、ここで公式デモから事実を収集する Playbook を調整しようとしています。 実際のジュニパー デバイスの 1 つを使用するようにホスト ファイルを変更しました。Ansible はすべてのモジュール ライブラリがどこにあるかを認識しているようですが、何らかの理由で、ドキュメントがないように見えるエラーがスローされます。Netconf::OpenError

自分のホストでホスト ファイルを使用する以外に、ポート 830 の代わりに tasks/nc_check.yml のポート 22 も変更しました。これは、(私の知る限り)、スイッチにアクセスできるのは SSH (ポート 22)

Juniper モジュールはすべて Ruby で記述されています。インストールしたすべての依存関係のバージョンは次のとおりです。

junos-ez-stdlib (0.1.2)
mini_portile (0.5.2)
net-scp (1.1.2)
net-ssh (2.7.0)
netconf (0.3.1)
nokogiri (1.6.0)
serialport (1.2.3)

以下は、デモで提供された同じ Playbook を実行した場合の出力です。私の質問は次のとおりです。

  1. Netconf::OpenError エラーの原因は何ですか?
  2. Juniper スイッチの Netconf には別のポートを使用する必要がありますか? 使用するポートを知るために、ジュニパーの設定で何を見ればよいでしょうか? (EX4200 および EX4500)

    ansible-playbook junos/get_junos_facts.yml -i ホスト -vvv

    PLAY [Junos Facts を表示します。必ず -v を使用してください] * ** * ** * ** * ** * ***

    TASK: [デバイスへの NETCONF 到達可能性を確認中] * ** * ** * ** * ** * *** <10.113.7.002> EXEC ['/bin/sh', '-c', 'mkdir -p $HOME/.ansible/tmp/ansible-1384993979.41-2345029032433 && chmod a+rx $HOME/.ansible/tmp/ansible -1384993979.41-2345029032433 && echo $HOME/.ansible/tmp/ansible-1384993979.41-2345029032433'] <10.113.7.002> REMOTE_MODULE wait_for host="10.113.7.002" port=22 timeout="1>" <10.023. tmp/tmpwhWU6X TO /home/gateway/.ansible/tmp/ansible-1384993979.41-2345029032433/wait_for <10.113.7.002> EXEC ['/bin/sh', '-c', '/usr/bin/python /home/ゲートウェイ/.ansible/tmp/ansible-1384993979.41-2345029032433/wait_for; rm -rf /home/gateway/.ansible/tmp/ansible-1384993979.41-2345029032433/ >/dev/null 2>&1'] ok: [10.113.7.002] => {「変更」: false、「経過」: 0 、 "アイテム":

    TASK: [ターゲットに連絡して Junos の事実を入手] * ** * ** * ** * ** * **** <10.113.7.002> EXEC ['/bin/sh', '-c', 'mkdir -p $HOME/.ansible/tmp/ansible-1384993979.48-89494360697375 && chmod a+rx $HOME/.ansible/tmp/ansible -1384993979.48-89494360697375 && echo $ home/.ansible/tmp/ansible-138499979.48-89494360697375 '] <10.113.7.002> compmule tirt = 10.1133.7.pmm.33.7.7.pmmedule = vismule tible = vismule tible_module gateway/.ansible/tmp/ansible-1384993979.48-89494360697375/junos_get_facts <10.113.7.002> PUT /tmp/tmp28DLzs TO /home/gateway/.ansible/tmp/ansible-1384993979.48-89494360697375/arguments <1. /bin/sh', '-c', '/usr/local/bin/ruby /home/gateway/.ansible/tmp/ansible-1384993979.48-89494360697375/junos_get_facts /home/gateway/.ansible/tmp/ansible-1384993979.48 -89494360697375/引数;rm -rf /home/gateway/.ansible/tmp/ansible-1384993979.48-89494360697375/ >/dev/null 2>&1'] 失敗: [10.113.7.002] => {「失敗」: true、「解析済み」: false無効な出力: /var/lib/gems/1.9.1/gems/netconf-0.3.1/lib/net/netconf/transport.rb:49:inopen': Netconf::OpenError (Netconf::OpenError) from /var/lib/gems/1.9.1/gems/netconf-0.3.1/lib/net/netconf/transport.rb:28:in/var/lib/gems/1.9.1/gems/netconf-0.3.1/lib/net/netconf/ssh.rb:21:in initialize' from /home/gateway/.ansible/tmp/ansible-1384993979.48-89494360697375/junos_get_facts:46:innew から「initialize」を /home/gateway/.ansible/tmp/ansible- から1384993979.48-89494360697375/junos_get_facts:46:in `'

    FATAL: すべてのホストがすでに失敗しています -- 中止します

    PLAY RECAP * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * * 再試行するには、次を使用します: --limit @/ホーム/ゲートウェイ/get_junos_facts.retry

    10.113.7.002 : OK=1 変更=0 到達不能=0 失敗=1

4

1 に答える 1