[[Fabric]] *接続情報を記述する [#kb3ccad8] env.hosts = [ '192.168.33.11', '192.168.33.12', ] env.key_filename = ['~/.ssh/id_rsa'] env.user = 'vagrant' env.password = 'vagrant' *踏み台経由で接続する [#oa439165] env.gateway = '192.168.33.100' *エラーが出ても続行する [#zbccfff4] ※デフォルトではエラーが出たらその時点で中止する **envで指定する [#rca1a371] env.warn_only=true **warn_only=trueをコマンドの後に記述する [#eec00ff2] def yumcheck() run("yum list installed, warn_only=true") *実行するタスクが何か、fab --listで表示させる [#q524348d] def hostinfo(): """ これはホストの情報を確認するタスクです """ run("uname -a") run("hostname") $ fab --list hostinfo これはホストの情報を確認するタスクです *タスクごとに適用するroleを変更する [#j3f017b9] env.roledefs= { 'webservers': ['192.168.33.10', '192.168.33.11'], 'mailservers': ['192.168.33.12'] } @roles("webservers") def sometask(): #do something **タスクごとに適用するhostsを変更する [#n7e9fb76] 上記のようにroleを設定しても良いけど、特定のタスクで特定のroleだけを指定したい場合に下記のように記述するこもと可能 WEBSERVER="192.168.1.10" @hosts(WEBSERVER) def hogetask(): *ファイルで定数を設定してタスクで参照するようにする [#if54a233] TESTID="testdayo" MAILADDRESS="hogepiyo@hogepiypiyo.com" def testshell(): run("/bin/bash test.sh %s %s" % (TESTID, MAILADDRESS)) *コマンドの結果を変数にセットする [#dc7c774f] hostname = run("hostname -s") run("echo %s" % hostname) *SFTPでファイルをGETする [#ifcfce8c] hostname = run("hostname -s") get("/remote/path/%s.log" $ hostname, "/local/path/%s" % env.user)