Fabric是一个Python(2.5-2.7)库,用于简化使用SSH的应用程序部署或系统管理任务。
它提供的操作包括:执行本地或远程shell命令,上传/下载文件,以及其他辅助功能,如提示用户输入、中止执行等。
本文主要介绍CentOS 6.3上使用Fabric进行自动化部署的基本方法。
1. 环境部署
本节主要介绍python版本升级,pip及fabric安装方法。
1.1 Python版本升级
CentOS 6.3自带的Python版本为2.6,首先需要升级到2.7版本。由于旧版本的Python已被深度依赖,所以不能卸载原有的Python,只能全新安装。
下载Python,选择Gzipped source tarball,下载地址:https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz
解压安装,命令如下
1 | $ tar -xvf Python-2.7.14.tgz |
- 创建链接来使系统默认python变为python2.7
1 | $ ln -fs /usr/local/python2.7/bin/python2.7 /usr/bin/python |
- 查看Python版本
1 | $ python –V |
- 修改yum配置(否则yum无法正常运行)
1 | $ vi /usr/bin/yum |
将第一行的#!/usr/bin/python修改为系统原有的python版本地址#!/usr/bin/python2.6
至此CentOS 6.3系统Python已成功升级至最新2.7.14版本。
1.2 安装pip
Pip是一个安装和管理python包的工具。
安装方法如下:
下载pip,地址:https://raw.github.com/pypa/pip/master/contrib/get-pip.py
执行安装命令
1 | $ python get-pip.py |
- 创建连接(否则会报错提示“命令不存在”)
1 | $ ln -s /usr/local/python2.7/bin/pip /usr/bin/pip |
1.3 安装fabric
- 执行安装命令
1 | $ pip install fabric |
- 创建连接(否则会报错提示“命令不存在”)
1 | $ ln -s /usr/local/python2.7/bin/fab /usr/bin/fab |
2. Fabric脚本编写
本节对fabric用法进行简单介绍,并提供实例以供参考。
2.1 Hello,fab
- 在当前目录下新建文件fabfile.py,输入内容如下:
1 | def hello(): |
- 执行命令fab hello,结果如下:
1 | $ fab hello |
- 文件名不为fabfile.py时需使用-f进行指定:
1 | $ mv fabfile.py test.py |
- 参数传递
使用vi fabfile.py,修改fabfile.py:
1 | def hello(name): |
可以通过如下两种方式进行参数传递:
1 | $ fab hello:name=fab |
2.2 本地操作
执行本地操作命令使用local
- fabfile.py脚本内容如下
1 | from fabric.api import local |
- 执行命令fab test,结果如下
1 | $ fab test |
2.3 远程操作
执行远程操作命令使用run
- fabfile.py脚本内容如下
1 | from fabric.api import cd,run,env,hosts |
- 执行命令fab test,结果如下
1 | $ fab test |
- 多服务器混合,需要在不同服务器进行不同操作时,可参考如下脚本
1 | from fabric.api import env,roles,run,execute |
结果如下:
1 | $ fab test |
3. 参考
上面只是对Python+Fabric自动部署脚本编写方法的简单介绍,在实际应用过程中根据具体需求编写相应的脚本时可以参考如下文章:
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏
扫描二维码,分享此文章