#Fabric# Python知名开源自动化部署模块Fabric,强烈推荐给各位!(运维,测试…均可以用它实现无比具有想象力的任务)他主要用于对设备/服务器批量执行任务(同时更换500台服务器的密码、同时更新或者重启500台虚拟机)~安装和使用也极其方便,没有什么中间代码,没有架构,没有内幕! 或许对于批量自动化部署而言,这是一个很大很大的福音。 我们来看一个VPSee提供的案例: #!/usr/bin/python # -*- coding: utf-8 -*- from fabric.api import * import string from random import choice import socket import paramiko env.user = 'root' env.password = 'root' env.hosts = [ 'grid00', 'grid01', 'grid02', 'grid03', 'grid04', 'grid05'] @task @parallel def passwd(user, passwd=False): with settings(hide('running', 'stdout', 'stderr'), warn_only=True): if isup(env.host): if not passwd: passwd = genpass() sudo("echo -e '%s %s' | passwd %s" % (passwd, passwd, user)) def genpass(length=10): return ''.join(choice(string.ascii_letters + string.digits) for _ in range(length)) def isup(host): print 'connecting host: %s' % host timeout = socket.getdefaulttimeout() socket.setdefaulttimeout(1) up = True try: paramiko.Transport((host, 22)) except Exception, e: up = False print '%s down, %s' % (host, e) finally: socket.setdefaulttimeout(timeout) return up