- 追加された行はこの色です。
- 削除された行はこの色です。
[[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)