Salt を使用して Junos OS を実行しているデバイスを管理する際の接続エラーのトラブルシューティング
問題
形容
Junos OSを実行しているデバイスのプロキシミニオンプロセスを開始し、Salt マスター上のキーを受け入れると、Junos プロキシ(Salt 用)がデバイスに接続できず、プロキシ ミニオン サーバー上のプロキシ ログ ファイルに、 init() または shutdown() 機能の欠落に関するエラーが含まれます。例えば:
saltuser@salt-master:~$ sudo salt 'router1' test.ping
router1:
Minion did not return. [No response]
saltuser@minion:~/.ssh$ sudo cat /var/log/salt/proxy ... KeyError: 'junos.initialized' 2019-06-21 22:23:07,044 [salt.minion :3414][ERROR ][31048] Proxymodule junos is missing an init() or a shutdown() or both. Check your proxymodule. Salt-proxy aborted. 2019-06-21 22:23:07,044 [salt.cli.daemons :533 ][ERROR ][31048] Proxymodule junos is missing an init() or a shutdown() or both. Check your proxymodule. Salt-proxy aborted.
原因
Junosプロキシミニオンサーバーには、Saltを使用してJunos OSを実行しているデバイスを管理するために、ジュニパーネットワークのJunos PyEZライブラリ(junos-eznc)と jxmlease Pythonモジュール、および yamlordereddictloader Pythonモジュールがサーバーにインストールされている必要があります。
解決
Junos PyEZと jxmlease および yamlordereddictloader Pythonモジュールを、Saltがインストールされているのと同じバージョンのPythonのJunosプロキシミニオンサーバーにインストールします。例えば:
saltuser@minion:~$ sudo pip3 install junos-eznc jxmlease yamlordereddictloader
依存関係がインストールされたら、プロキシ ミニオン サーバーでそのデバイスのプロキシ ミニオン プロセスを開始し、Salt マスターで新しい Salt キーを受け入れます。
saltuser@minion:~$ sudo salt-proxy --proxyid=router1 -d
saltuser@salt-master:~$ sudo salt-key -a router1 The following keys are going to be accepted: Unaccepted Keys: router1 Proceed? [n/Y] y Key for minion router1 accepted.