http://www.runoob.com/python/python-tutorial.html
fabric帮助文档:
http://fabric-chs.readthedocs.io/zh_CN/chs/tutorial.html
一、环境
1 安装python
python版本2.5 – 2.7
mac上安装方式
brew install python |
查看版本
python --version |
2 安装fabric
mac上安装命令
brew install fabric |
二、简单示例程序
这个程序要在多个服务器部署,可以部署多个项目,但是具体部署哪个项目,需要在参数中传入。部署多个服务器时,是依次部署,依次启动的方式,不会导致同时将服务器关闭,到时服务不可用的问题!
该脚本文件名为deploy.py
#!/usr/bin/env python # encoding:utf-8 from fabric.api import * import time TOMCAT_HOME = "/xxxx/apache-tomcat-8.0.29" WAR_DIR = "/home/jenkins/.jenkins/xxxx/target/" #要远程部署的几个服务器 servers = [ 'myserver1', 'myserver2' ] #这几个服务器有统一的用户名访问 env.user= "server_username " #服务器用户密码 env.password = "server_password" def deploy(projectname): for server in servers: print("正在部署服务器:" + server + " 项目名:" + projectname) with settings(host_string = server): deploy_one_server(projectname) print("部署服务器 "+ server +" 项目" + projectname + " 完成!") print "休息60秒" time.sleep(60) #部署一个服务器 def deploy_one_server(projectname): warfilename = projectname + ".war" #1,上传文件到tomcat根目录 print("1,上传文件到tomcat根目录") with lcd(WAR_DIR): with cd(TOMCAT_HOME): put(warfilename,warfilename) run("ls") #2,关闭服务器 print "2,关闭服务器" close_tomcat() #3,删除原有的部署文件 print "3,删除原有的部署文件" with cd(TOMCAT_HOME + "/webapps/"): run("rm -rf " + projectname + "/") run("rm -rfv " + warfilename) #4,将已上传的文件放到tomcat项目目录 print "4,将已上传的文件放到tomcat项目目录" with cd(TOMCAT_HOME): run("mv " + warfilename + " ./webapps/") #5,启动服务器 print "5,启动服务器" run(TOMCAT_HOME +"/bin/startup.sh",pty=False) #关闭tomcat服务器 def close_tomcat(): #kill可能会因为没有tomcat线程,导致关闭命令失败,所以需要在产生异常时继续执行 with settings( hide('warnings', 'running', 'stdout', 'stderr'), warn_only=True ): run("ps -ef |grep tomcat |grep -v grep |awk -F \" \" '{print $2}' | xargs kill -9")
注意:最后启动tomcat时,run方法要使用pty=False
pty在True的情况下启动tomcat正常,但会在结束后导致tomcat进程也被干掉 |
参考资料:https://segmentfault.com/q/1010000005131935
脚本调用:
fab -f deploy.py deploy:projectname=xxx |
相关推荐
Python Fabric 是一个强大的工具,专为自动化和部署任务而设计,而非如标题所误述的用于AI增强人类。它的核心功能在于简化远程服务器上的命令执行,使得开发者可以编写脚本来批量处理多台服务器的任务,极大地提高了...
Python Fabric 是一个强大的工具,它允许用户通过简单的Python脚本来执行远程命令,特别适用于自动化运维任务,例如远程部署。在多人协作开发项目时,Fabric可以帮助我们摆脱重复的手动部署过程,提高工作效率。 ...
由于 Fabric 是一个用于执行远程命令的任务自动化工具,主要用于简化通过 SSH 连接的服务器管理任务,因此它依赖于 Python 和其他一些必要的软件包。 ##### 第一步:安装 EPEL 源 EPEL (Extra Packages for ...
Python自动化部署工具Fabric是一个强大的用于远程服务器自动化执行任务的库,它基于SSH协议,使得开发者可以用Python语言编写脚本来管理和部署应用程序。Fabric简化了传统SSH命令行工具的操作,提高了效率和可读性。...
下面是一个简单的部署脚本示例,展示了如何使用Fabric来部署Python应用: ```python #!/usr/bin/env python # -*- coding: utf-8 -*- from datetime import datetime from fabric.api import * # 登录用户和主机名...
下面是一个简单的部署脚本,演示了如何使用Fabric 2执行远程部署任务。 ```python # deploy.py from fabric import Connection def main(): # 创建连接 c = Connection("root@232.231.231.22", connect_kwargs={...
包括:difflib 比对两个文件的区别用html高亮展示类似于git,dns操作python,fabric高效的ssh远程服务库,filecmp文件内容比对,func模块示例 python自定义模块,hadoop Python大数据分析示例,OMAudit 安全审计功能...
下面是一个简单的示例脚本: ```python # fabfile.py from fabric.api import local def test(): # 测试项目是否能正常运行 local('python manage.py test myapp') def commit(): # 提交代码 local('git add ...
《Python自动化运维:技术与最佳实践》是一本深入探讨如何使用Python进行系统管理和自动化运维的权威书籍。书中涵盖了从基础的脚本编写到高级的自动化框架应用,旨在帮助IT专业人员提升工作效率,减少手动干预,确保...
Fabric 的设计目标是提供一个简洁易用的接口,使得开发者或运维人员能够通过编写简单的 Python 脚本来实现复杂的自动化任务。 #### 二、Fabric的功能特点 1. **自动化部署**: Fabric 可以帮助快速部署应用程序到...
总之,Fabric是一个强大且灵活的Python库,它简化了远程服务器的自动化部署和管理。通过其简单易用的API,你可以编写出高效、可复用的部署脚本,大大提高工作效率。无论你是开发者还是运维人员,学习并掌握Fabric都...
Fabric是一个用Python编写的开源库和命令行工具,用于简化远程服务器的管理和部署过程。它通过提供一系列高级接口来封装复杂的SSH会话管理,使得开发者或运维人员能够更加高效地执行常见的远程操作。Fabric的主要...
Python中的`pymterm`是一个用于创建具有多...总之,`pymterm`是一个实用的Python库,它使得在Python环境中创建多选项卡的终端模拟器变得简单,对于需要高效管理多个命令行会话的开发者来说,它是一个值得尝试的工具。
3. **启动网络**:使用`byfn.sh`脚本启动一个简单的"two-orgs"网络,该脚本会创建通道、部署智能合约并启动相应的Docker容器。 4. **部署和实例化智能合约**:编写或下载一个链码(智能合约)文件,使用`peer ...
面料-SDK-Py Fabric-SDK-Py是Hyperledger Fabric SDK的Python 3.x实现! 当前,它主要支持Fabric 1.4.x版本。前提条件该SDK需要Python3和Libssl pkgs。 如果没有,请运行以下cmd来安装必备组件: 作业系统命令Ubuntu...
`fabric-samples` 是一个基于 Python 的项目,它提供了一系列示例脚本,主要用于演示如何使用 Fabric 这个自动化部署工具来执行常见的系统管理和部署任务。Fabric 是一个强大的 Python 库,它允许用户编写简单的 ...
Fabric是一个用Python编写的开源库,主要用于简化系统管理员的任务——实现远程服务器上的自动化部署、管理等操作。它通过SSH协议来与远程服务器交互,允许开发者编写简洁且易于理解的Python脚本来完成一系列复杂的...
4. **自动化部署**:Python可以实现应用程序的自动化部署,如使用fabric或ansible进行远程任务执行和配置管理。 5. **日志处理**:Python的日志模块提供了一套完善的日志记录和分析机制,同时第三方库如logstash-py...
Fabric是Python中的一个流行工具,主要用于执行远程命令和管理多台服务器。这个库可能是对Fabric的扩展,提供了一种更高级、更结构化的客户端接口来控制和协调远程操作。 **Python 运维库** 在Python中,运维库...