参考资料:
【1】http://python.jobbole.com/87241/
1、Fabric简介:
Fabric是一个Python的库,它提供了丰富的同SSH交互的接口,可以用来在本地或远程机器上自动化、流水化地执行Shell命令。因此它非常适合用来做应用的远程部署及系统维护。其上手也极其简单,你需要的只是懂得基本的Shell命令。
2、Fabric安装:
#!/bin/bash #create by huangdengji #version:1.0 #create time:2017-09-27 15:22:00 #email:huangdengji@126.com #description: install fabric #1.install python2.7.14 #2.install pip #3.install fabric set -m #安装依赖 yum -y install wget gcc openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel cd /home/hdj/ [ -d /home/hdj/fabric ] && { rm -rf /home/hdj/fabric } mkdir fabric cd fabric #安装Python2.7 wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz tar -xvf Python-2.7.14.tgz cd Python-2.7.14 ./configure --prefix=/usr/local/python2.7 make make install /usr/local/python2.7/bin/python2.7 -V [ $? -ne 0 ] && { echo 'python 2.7 install fail' exit 1 } ln -fs /usr/local/python2.7/bin/python2.7 /usr/bin/python #由于yum依赖于Python2.6,需修改yum文件 yumFirstLine=`head -n 1 /usr/bin/yum` [ ${#yumFirstLine} -eq 17 ] && { sed -i 's#/usr/bin/python#/usr/bin/python2.6#g' /usr/bin/yum echo 'modify /usr/bin/yum first line to /usr/bin/python2.6' } echo '------------------------------------------------------------------------------------------------------------------' echo '' echo '' echo '' echo '' echo '' echo 'python 2.7 install success' echo '' echo '' echo '' echo '' echo '' echo '------------------------------------------------------------------------------------------------------------------' #安装pip cd .. wget https://bootstrap.pypa.io/get-pip.py python get-pip.py ln -s /usr/local/python2.7/bin/pip /usr/bin/pip #安装fabric pip install fabric ln -s /usr/local/python2.7/bin/fab /usr/bin/fab echo '------------------------------------------------------------------------------------------------------------------' echo '' echo '' echo '' echo '' echo '' echo 'fab install success' echo '' echo '' echo '' echo '' echo '' echo '------------------------------------------------------------------------------------------------------------------'
3、编写本地打包shell脚本
#!/bin/bash #create by huangdengji #version:2.0 #create time:2017-09-25 18:22:00 #email:huangdengji@126.com #description:do repackage project to tar.gz set -m projectName="ROOT" tomcatDir="/resources/apache-tomcat-6.0.41/webapps/" cd ${tomcatDir} rm -rf ${projectName}.tar.gz tar -zcf ${projectName}.tar.gz ${projectName}
4、编写远程服务器中,重新部署项目的shell脚本
#!/bin/bash #create by huangdengji #version:1.0 #create time:2017-09-12 18:22:00 #email:huangdengji@126.com #description:do reploy tomcat project set -m source /etc/profile tomcatName='apache-tomcat-6.0.41' projectName='ROOT' deployEndTag='.tar.gz' deployName=${projectName}${deployEndTag} projectDir='/u0/'${tomcatName}'/webapps/' #str=`ps -ef | grep ${tomcatName}` str=`ps -ef | grep ${tomcatName} | grep -v grep | grep -v tail` pid=`echo $str | awk '{print $2}'` echo ${tomcatName}' pid:'${pid} [ -f /home/hdj/${deployName} ] || { echo '/home/hdj/'${deployName}' not exist' exit 1 } kill -9 ${pid} if [ $? -eq 0 ] then echo "kill tomcat success!" else echo "kill tomcat fail!" fi sleep 3 while true do count=`ps -ef | grep ${tomcatName} | grep -v grep | grep -v tail | wc -l` [ ${count} -eq 0 ] && { break } && { kill -9 ${pid} sleep 1 } done #path='/project_bak/'$(date +%Y%m%d%H%M) path='/project_bak/' if [ -d ${path} ] then rm -rf ${path} mkdir -p ${path} else mkdir -p ${path} fi if [ -d ${path} ] then echo 'created dir:'${path}' success!' else echo 'created dir:'${path}' fail!' exit 1 fi if [ -d ${projectDir}${deployName} ] then mv ${projectDir}${deployName} ${path} if [ $? -eq 0 ] then echo 'project back to dir:'${path}' success!' else echo 'project back to dir:'${path}' fail!' exit 1 fi else echo ${projectDir}${deployName}' is first depoly' fi mv /home/hdj/${deployName} ${projectDir} if [ $? -eq 0 ] then echo 'deplory project to dir:'${projectDir}' success!' else echo 'deplory project to dir:'${projectDir}' fail!' exit 1 fi cd ${projectDir} rm -rf ${project} tar -zxf ${deployName} /u0/${tomcatName}/bin/startup.sh echo 'starting '${tomcatName}' ...'
5、遍写fabric执行的Python脚本,来实现多服务器的:本地代码打包、上传至远程服务器、远程服务重启
#!/usr/bin/env python # encoding: utf-8 from fabric.api import local,cd,run,env,put,sudo env.hosts=['root@10.255.8.57:22','root@10.255.8.59:22','root@10.255.8.61:22'] #ssh要用到的参数 env.password = '111111' tomcatName='apache-tomcat-6.0.41' projectName='ROOT' def local_package(): local('sh /home/hdj/fab_task/repackage.sh') put('/resources/'+tomcatName+'/webapps/'+projectName+'.tar.gz', '/home/hdj/') def update_to_remote(): print "remote update" with cd('/home/hdj'): #cd用于进入某个目录 run('sh redeploy.sh') #远程操作用run def update(): local_package() update_to_remote()
6、执行fab命令,完成批量部署
fab -f redeploy.py update
相关推荐
文章讲述超级账本2.0版本分布式集群部署,包括以下主要内容: Fabric 2.0 新特性说明 Fabric 2.0 单机部署详细操作(基础环境、Fabric 环境搭建、链码的生命周期等) Fabric 2.0 多机部署详细操作(分布式)
超级账本 Fabric 区块链在集群中利用docker compose的部署样例
使用Docker和Fabric启动新Web项目的框架
超级账本 Fabric 区块链在kubernetes集群中的部署样例
基于hyperledger fabric 1.4版本实现的kafka集群配置文件,环境搭建可以参考https://blog.csdn.net/u010857052/article/details/84309264。有任何问题可以评论下面留言。谢谢
Fabric v1.0 多节点集群的部署,超级账本 Fabric v1.0 多节点集群的部署
超级账本 Fabric v1.0 多节点集群的部署
前端项目-fabric.js,HTML5画布的对象模型,以及SVG到画布的分析器。由JSDOM和节点画布支持。
超级账本fabric多节点集群部署,超级账本fabric多节点集群部署
在采用Kafka作为启动过类型的Fabric网络中,configtx.yaml 及 cryto-config.yaml配置文件依然有着重要的地位,但是其中的配置样本与先前的内容会有些不同。 本章将进行基于Kafka集群的部署,其中重要的概念是对前三...
超级账本Fabric 1.0 多节点集群的部署(1):http://8btc.com/article-4542-1.html超级账本Fabric 1.0 多节点集群的部署(2):http://8btc.com/article-4543-1.html( 接上期,部署配置中大量使用了 docker 和 doc
如何设置安全Service Fabric集群的证书信息当创建Service Fabric集群时,处于安全考虑,建议采用安全模式,但从Azure门户上操作时,却发
使用 Fabric 可以在服务器中自动执行命令。因为整个代码部署过程都是相同的,只要我们用 Fabric 写好部署脚本,以后就可以通过运行脚本自动完成部署了。 首先在本地安装 Fabric: $ pipenv install fabric --dev ...
基于Fabric的农产品溯源系统项目源码(毕业设计).zip 该项目是个人毕设项目源码,评审分达到95分以上,都经过严格调试,确保可以运行!放心下载使用。 该项目资源主要针对计算机java相关专业的学生或从业者下载使用...
文档中含有对整个hyperledger-fabric项目的网络搭建,命令使用,参数解读,以及对应一个用fabric-java-sdk写的demo项目。主要包含整个区块链网络的工作原理,如何搭建网络,对应demo学习如何开发链码,如何通过...
食品安全问题多发已经成为一个社会安全亟待解决的问题,由于区块链具有溯源功能,可以将区块链应用在食品溯源领域,...本实验参考相关资料,基于linux开源项目Hyperledger制作了一个牛奶生产溯源项目的完整搭建流程。
Hyperledger fabric集群搭建docker-compose-peer.yaml、docker-compose-orderer.yaml配置文件
)前篇:超级账本Fabric 1.0 多节点集群的部署(1)二、操作步骤1、环境构建与测试本文中用到的宿主机环境是 Ubuntu 14.04.5 LTS,通过 Docker 容器来运行 Fabric 的节点, 版本为 v1.0 beta。因此,启动 Fabric 网络中...
Hyperledger Explorer ...目的是为了能够监控链码、查看区块、调用链码等,这个项目目前还在发展中,能够查看网络组成、区块、交易内容、链码、通道信息等。搭建Hyperledger Fabric区块链浏览器所需要的三个配置文件。
GitHub上的Hyperledger Fabric 1.0项目代码,原下载地址:https://github.com/hyperledger/fabric/tree/release-1.0