代码
#/usr/bin/env python
#coding=utf-8
from fabric.api import *
# 定义机器列表
m110="root@192.168.0.110:22"
m228="root@192.168.0.228:22"
# 定义机器密码
env.passwords = {
m110:'123',
m228:'123'
}
# 定义机器分组
env.roledefs = {
'r110':[m110],
'rall':[m110,m228]
}
# 定义基本函数
def getuptime(): {
run('uptime')
}
# 定义组合函数
@roles('rall')
def all_getuptime(): {
getuptime()
}
满足场景
所有机器上查看uptime
fab all_getuptime
仅仅在110上面查看uptime
fab -H 192.168.0.110 getuptime
或者
fab -H m110 getuptime // 这种方式会报错,因为m110只允许在fabfile.py的内部调用
战术设想
- 3台机器
- 每个机器都必须满足基本条件
- 每个机器上分别部署一些软件