Fabric常用API

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xzg1109/article/details/79135866

Fabric常用API

local   执行本地命令,如local('uname -s')
lcd     切换本地目录,如lcd('/home')
cd      切换远程目录
run     执行远程命令
sudo  sudo   方式执行远程命令,如sudo('/etc/init.d/httpd start')
put          上传本地文件到远程主机,如put('/home/user.info', '/data/user.info')
get          从远程主机下载文件到本地,如get('/data/user.info', '/home/user.info')
prompt       获得用户输入信息,如prompt('please input user password:')
confirm      获得提示信息确认,如confirm('Test faild, Continue[Y/N]?')
reboot       重启远程主机,如reboot()
 
@task        函数装饰符,标识的函数为fab可调用,非标记对fab不可见,纯业务逻辑
@runs_once   函数装饰符,标识的函数只会执行一次,不受多台主机影响

编辑fabtest.py文件,给showColor函数添加@task装饰符

from fabric.api import *
from fabric.colors import *	
env.roledefs = {
			'slave1server':['root@slave1',],
			'slave2server':['root@slave2',],
			'slave3server':['root@slave3',]
			}
#env.password = '123qwe!@#'

@roles('slave1server')
def task1():
	run('/usr/zookeeper/bin/zkServer.sh restart')
	run('/usr/zookeeper/bin/zkServer.sh status')

@roles('slave2server')
def task2():
	run('/usr/zookeeper/bin/zkServer.sh restart')
	run('/usr/zookeeper/bin/zkServer.sh status')

@roles('slave3server')
def task3():
	run('/usr/zookeeper/bin/zkServer.sh restart')
	run('/usr/zookeeper/bin/zkServer.sh status')
	
def dotask():
	execute(task1)
	execute(task2)
	execute(task3)
#*************************************************	

def task4():
	local('/usr/zookeeper/bin/zkServer.sh restart')
	local('/usr/zookeeper/bin/zkServer.sh status')

def task5():
	local('ls -ls /usr')
	
def taskLocal():
	task4()
	task5()
@task	
def showColor():
	print green('success')
	print red('fail')
	print yellow('yellow')
执行命令
[root@master ~]# fab -f fabtest.py -l
Available commands:

    showColor
[root@master ~]#

[root@master ~]# fab -f fabtest.py taskLocal

Warning: Command(s) not found:
    taskLocal

Available commands:

    showColor
[root@master ~]#



展开阅读全文

没有更多推荐了,返回首页