ここで尋ねるのか、他のスタック交換コミュニティから尋ねるのかわかりませんが、Python設定を使用してサーバーリストからいくつかの簡単なコマンドを実行しようとしています。
コマンドコード:
from fabric.api import run
def host_type():
run('uname -s')
uname -s
これにより、以下を呼び出してすべてのLinuxサーバーでコマンドを実行します。
$fab -H < ......Comma, separated , Servers , List , Here.....> host_type
これで問題は、実行中にユーザー/ルートパスワードを要求せずに結果を返すように実行/構成する方法です。いくつかのLinuxコマンドライントリックがあるかもしれませんが、覚えていません。
編集1:
さて、fabコマンドには-pオプションがありますが、サーバーごとにパスワードが異なるため、そのオプションは機能しない可能性があります。
答え1
これを行う方法は2つあります。バックエンドでFabric
使用されるため、openssh
パスワードのない接続を構成した場合は、何も設定する必要はなく、機能します。
別の方法も非常に簡単です。env
変数を設定するだけです。
from fabric.state import env
env.user = "user"
env.password = "password"
env.colorize_errors = True
env.connection_attempts = 3
env.disable_known_hosts = True
env.skip_bad_hosts = True
env.parallel = False
env.linewise = True
これはトリックを行う必要があります。私は通常別のファイルに入れてインポートします。
PS:私は個人的に簡単な作業にparamiko
どんなライブラリをFabric
使うのが簡単だと思います。