■fabricインストール
easy_install fabric
■設定ファイル作成
touch fabfile.py
from fabric.api import run def current_ls(): run("ls")
■実行
fab -H 192.168.0.1,host1,host2 current_ls
上記の場合fabコマンドを実行したユーザの「192.168.0.1」でのログインパスワードを聞かれます
「host1」「host2」で同じパスワードを使用している場合は続けて聞かれませんが、パスワードが違う場合は再度パスワードの入力を求められます
上記の場合fabコマンドを実行したユーザの「192.168.0.1」でのログインパスワードを聞かれます
「host1」「host2」で同じパスワードを使用している場合は続けて聞かれませんが、パスワードが違う場合は再度パスワードの入力を求められます
[root@fabhost fabric]# fab -H 192.168.0.1,host1,host2 current_ls [192.168.0.1] Executing task 'current_ls' [192.168.0.1] run: ls [192.168.0.1] Login password for 'root':
■設定ファイル内に認証情報を記載する方法
from fabric.api import run, env def current_ls(): env.password = 'hogehoge' run("ls")
ポイントは「env」をimportするのと「env.password」でパスワードを記載するところ
current_ls を実行した場合はenv.passwordで設定したパスワードでまずSSH認証を試みます
もし、認証できない場合は先ほどのようにパスワードを入力するように促されます
envには他にも鍵情報やユーザを設定することもできます
http://docs.fabfile.org/en/latest/usage/env.html
基本的な動作は以上で完了です
これだけで複数のサーバに同時にSSH実行することができるのでだいぶオペレーションが楽になります
■Tips
sudoをimportしてrunの代わりにsudoとするとrootユーザで実行できるようになります
env.passwordにsudoのパスワードを入力しておけば実行時に省略できます、記載しなかった場合は入力を求められます
「--」を使用すると指定したコマンドをfabfile.pyを書かずとも実行できます、以下のような感じです
fab -H 192.168.0.1 -- ls
env.passwordにsudoのパスワードを入力しておけば実行時に省略できます、記載しなかった場合は入力を求められます
「--」を使用すると指定したコマンドをfabfile.pyを書かずとも実行できます、以下のような感じです
fab -H 192.168.0.1 -- ls
0 件のコメント:
コメントを投稿