Fabric 批量安装ZeroMQ
来源:互联网 发布:淘宝不满意怎么退货 编辑:程序博客网 时间:2024/05/01 11:46
Fabric是一个用Python开发的部署工具,最大特点是不用登录远程服务器,在本地运行远程命令,几行Python脚本就可以轻松部署。关于Fabric的安装可以直接参考官网的内容(Fabric 官网)
部署ZeroMQ,本就是一件麻烦的事情,所以写了一个脚本,用来实现多机统一部署
import sys, os, timeimport fabricfrom fabric.api import * netifs = {}now = time.strftime('%Y%m%d-%H%M%S', time.localtime(time.time()))def host(str=''): if str == '-': list = _to_list(sys.stdin) else: list = str.split('\n') env.hosts = _to_hosts(list) env.passwords = _to_passwords(list) print env.passwords netifs = _to_netifs(list) print env.hostsdef _to_list(handle): list = [] while True: line = handle.readline().strip() if line: list.append(line) else: return listdef _to_hosts(list): hosts = [] for line in list: kvp = line.split('|') hosts.append(kvp[1]) return hostsdef _to_passwords(list): passwords = {} for line in list: kvp = line.split('|') passwords[kvp[1]] = kvp[2] return passwords def _to_netifs(list): passwords = {} for line in list: kvp = line.split('|') netifs[kvp[1]] = kvp[0] return netifsdef rsync_zmq(): run('mkdir -p /data/soft') put("/data1/deploy1/deploy/bandwidth/zeromq/zeromq-2.2.0.tar.gz","/data/soft/zeromq-2.2.0.tar.gz")def rsync_jzmq(): run('mkdir -p /data/soft') put("/data1/deploy1/deploy/bandwidth/zeromq/jzmq-2.2.2.zip","/data/soft/jzmq-2.2.2.zip")def yum_install(name): run('yum -y install ' + name ) def install_zmq(): run('tar -zxvf /data/soft/zeromq-2.2.0.tar.gz -C /data/soft') with cd('/data/soft/zeromq-2.2.0'): run('./autogen.sh') run('./configure') run('make install') with cd('/data/soft/zeromq-2.2.0/perf'): run('./inproc_lat 100 20')def install_jzmq(): run('unzip -o -d /data/soft/ /data/soft/jzmq-2.2.2.zip') with cd('/data/soft/jzmq-2.2.2'): run('chmod +x autogen.sh') run('chmod +x configure') run('dos2unix *.sh') run('./autogen.sh') run('./configure -with-zeromq=/data/soft/zeromq-2.2.0') run('make install') run('echo -e "/usr/local/lib" >> /etc/ld.so.conf') run('sudo ldconfig')def install_zmq_auto(): rsync_zmq() rsync_jzmq() yun_install('libuuid-devel') install_zmq() install_jzmq()
执行方式:
echo "eth0|服务器ip|密码|描述信息" | fab -f deploy host:- rsync_soft
cat server.db |fab -f zeromq.py host:- install_zmq
上面的语句可以单独对一台机器执行相应的方法,也可以将服务器信息写入文件,统一执行
Fabric提供几个简单的API来完成所有的部署,最常用的是local()和run(),分别在本地和远程执行命令,put()可以把本地文件上传到远程,当需要在远程指定当前目录时,只需用with cd('/path/to/dir/'):即可。默认情况下,当命令执行失败时,Fabric会停止执行后续命令。有时,我们允许忽略失败的命令继续执行,比如run('rm /tmp/abc')在文件不存在的时候有可能失败,这时可以用with settings(warn_only=True):执行命令,这样Fabric只会打出警告信息而不会中断执行。
Fabric是如何在远程执行命令的呢?其实Fabric所有操作都是基于SSH执行的,必要时它会提示输入口令,所以非常安全。更好的办法是在指定的部署服务器上用证书配置无密码的ssh连接。
0 0
- Fabric 批量安装ZeroMQ
- 批量部署工具Fabric
- Fabric 远端 批量部署
- ZeroMQ安装
- Fabric批量远程执行操作
- python + fabric 实现批量部署
- ubuntu 安装 fabric 步骤
- mysql fabric 安装篇
- 安装fabric模块小计
- 如何安装fabric
- MySQL:Fabric 安装
- zeromq安装手册
- zeroMQ/jzmq 安装
- centOS安装ZeroMQ
- 转载:zeroMQ/jzmq 安装
- 安装zeromq-2.2.0
- ZeroMQ下载和安装
- 安装zeromq-2.2.0
- 织梦仿站系列教程第四讲——首页页首代码
- 为什么Android不如iOS那么顺滑?
- linux+nginx+mysql+php安装 以及常见问题得解决方案
- oracle 字符集
- spring 源码学习1
- Fabric 批量安装ZeroMQ
- 【众数】【bzoj 2945】: [Poi2000]气垫船
- Linux apache日志分析常用命令汇总
- 设计模式(Design Patterns)
- SPICE协议定义----显示通道(1)
- linux 调试环境搭建
- ArcGIS教程:“提取值到表”的工作原理
- php5.4环境下DedeCMS登录退出后台空白的解决办法汇总
- linux 模拟弱网络环境工具