[[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)


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS