click
モジュールを使用してコマンドラインアプリケーションを作成しています。このモジュールは、CiscoネットワークデバイスにSSH接続し、netmiko
モジュールを使用して接続を介してコンフィギュレーションコマンドを送信します。私が実行している問題は、ネットワークデバイスへのSSH-ingがホスト名/ IP、ユーザー名、およびパスワードを必要とすることです。私は、スクリプトのユーザーが一度デバイスにログインしてSSH接続を開いたままにして、毎回ログインせずにサブコマンドを実行できるようにする方法を実装しようとしています。例えば、コマンドラインアプリケーションのログイン資格情報の保存
$ myapp ssh
hostname/IP: 10.10.110.10
username: user
password: ********
Connected to device 10.10.101.10
$ myapp command1
log output
$ myapp --option command2
log output
$ myapp disconnect
closing connection to 10.10.101.10
は、どのように私は自分のCLIでこの機能を許可する資格情報の取り扱い/保管に行きますか?私はこの問題を研究する際にキャッシュやOAuthの推奨事項を見てきましたが、これを実装する方法やこれを行うための推奨され安全な方法はまだわかりません。
を。私は別々に各コマンドを呼び出すことができるようにしたい。 – mwalto7
おそらくソケットを待ち受け、同じソケットを介して送信する「myapp send」のような新しいコマンドを作成しますか?この質問は似ています.. https://stackoverflow.com/questions/12739539/using-cmd-module-with-a-socket – clutton
ログインとパスワードは機密情報です。 'keyring'パッケージ(OSX、Linux、Windows Credential Vaultで動作するhttps://pypi.python.org/pypi/keyring)を見てみることをお勧めします。 – Arminius