1.调用方法:
from fabric.api import require,pormpt,put,get,run,sudo,local,reboot,open_shell
或
from fabric.operations import require,pormpt,put,get,run,sudo,local,reboot,open_shell
2.方法的使用:
(1)require #检查你在env.的环境变量中是否有值(即不为None),如果有,则继续执行,否则将退出
(2)prompt #提示:类似一个raw_input,提供一个交互接口,用来保存一个字符串
例:
def prompt_test():
path=prompt('输入一个路径:')
run('ls %s' % path)
输出:
[root@salt-monion-1 gyk_fab]# fab -f operations_test.py prompt_test
[192.168.1.219] Executing task 'prompt_test'
输入一个路径: /home
[192.168.1.219] run: ls /home
[192.168.1.200] Executing task 'prompt_test'
输入一个路径: /home
[192.168.1.200] run: ls /home
[192.168.1.200] out: eventlisten.py
[192.168.1.200] out:
Done.
Disconnecting from 192.168.1.200... done.
Disconnecting from 192.168.1.219... done.
(3)put #上传本地文件到远程主机
例:
def put_test():
put('/tmp/dir/1','/tmp/dir_test')
输出:
[root@salt-monion-1 gyk_fab]# fab -f operations_test.py put_test
[192.168.1.219] Executing task 'put_test'
[192.168.1.219] put: /tmp/dir/1 -> /tmp/dir_test/1
[192.168.1.200] Executing task 'put_test'
[192.168.1.200] put: /tmp/dir/1 -> /tmp/dir_test/1
Done.
Disconnecting from 192.168.1.200... done.
Disconnecting from 192.168.1.219... done.
(4)get #从远程主机下载文件到本地,但是这只能对应1台主机,不然传过来的文件名相同,会报错的(因此不能当做批量下载来使用)。
(5)run #执行系统命令,当warn_only=True是,你可以用一个变量来接收它(变量=run()),然后用 变量.succeeded查看命令是否执行成功了。
(6)sudo和local 用sudo cmd的方式执行命令 && 只在本地执行命令(即不会在远程主机上执行)
(7)reboot 重启主机,但它有一个好处,就是当主机重启时,fabric会进入等待,当你重启以后,它会继续执行后面的内容
(8)open_shell自动连接到另一个终端上,重新打开一个shell。
转载于:https://blog.51cto.com/sky66/1684904