Python自动化运维工具fabric的安装
使用shell命令进行复杂的运维时,代码往往变得复杂难懂,而使用python脚本语言来编写运维程序,就相当于开发普通的应用一样,所以维护和扩展都比较简单,更重要的是python运维工具fabric能自动登录其他服务器进行各种操作,这种实现使用shell是很难做到的,但是使用fabric实现就很简单,所以对于程序员的日常运维部署,建议使用python编写脚本
Linux下默认有python环境,安装fabric有两种方式一种是pip直接安装,另外一种是下载fabric源码,使用setuptools工具执行setup.py安装,两种方式都需要联网,基本上差不多,这里使用pip进行安装,安装的时候如果报错,一般是因为python-devel模块没有安装,需要进行安装,可以提前使用 rpm -qa | grep python-devel 查看是否安装python-devel,如果没有安装,使用yum安装如下:
yum -y install python-devel
pip安装之前说过,首先下载py文件:https://bootstrap.pypa.io/get-pip.py,上传至服务器之后执行: python get-pip.py 安装pip即可
使用pip安装fabric: pip install fabric 稍等一会就安装完毕了,这时输入 fab 就会弹出对应的选项
接下来编写一个简单的python脚本fabrictest.py来做测试:
1 #!/usr/bin/python 2 # -*- coding:utf-8 -*- 3 4 from fabric.api import * 5 6 # 设置服务器登录参数 7 env.roledefs = { 8 # 操作一致的放一组,一组执行同一个操作 9 'servers1':['root@linux2:22',], 10 # 第二组 11 'servers2':['root@linux3:22',] 12 } 13 14 # 本机操作 15 def localtask(): 16 local('/usr/local/nginx/nginx') 17 18 # servers1服务器组操作 19 @roles('servers1') 20 def task1(): 21 run('/usr/local/tomcat/bin/startup.sh') 22 23 # servers2 服务器组操作 24 @roles('servers2') 25 def task2(): 26 run('/usr/local/tomcat/bin/startup.sh') 27 28 # 执行任务 29 def doworks(): 30 execute(localtask) 31 execute(task1) 32 execute(task2)
以上代码,就是简单的在本地启动nginx服务器,在linux1和linux2上启动了tomcat服务器,为了接受nginx服务器的代理,这里专门使用分组的方式为了适应机器比较多的集群的需要,另外这里没有设置服务器的密码,一是为了服务器的安全;另外集群间建议设置ssh免密登录,脚本就不用设置密码了,方法doworks执行的就是最终汇总的任务,保存之后,开始执行:
fab -f fabrictest.py doworks
执行之后,脚本会自动的依次执行指定的命令,从控制台可以看到输出,也可以在程序适当位置添加输出,打印一些必要信息
到这里,就看到fabric这个工具的功能确实很强大,更多的编程接口可以查看官网网站的文档:http://www.fabfile.org/
离线安装的话在fabfile官网有指向python官网的链接,地址是:https://pypi.python.org/pypi/Fabric,进入页面后可以看到很多版本的下载链接,首先保证安装setuptools,下载之后解压释放,进入目录后执行: python setup.py install 安装期间需要一些依赖,比如paramiko,如果系统没有安装,这时候会自动联网下载安装,如果操作系统已经有相应的依赖,则直接离线安装成功
相关文章
- python安装python-lzf包,报错lzf_module.c:3:20: fatal error: Python.h: No such file or directory
- python - 如何使用 Docker 运行多个 Python 脚本和一个可执行文件?
- 掌握Python语言能做什么?python对小白友好吗?
- 学习Python之后,可以做哪些兼职?Python入门!
- 2023全网最详细的Python安装教程
- 【Python】自动化抢勾,python软件安装教程
- 人生苦短,我用Python!为什么现在越来越多的人转行python?
- 配置利用神经网络进行图片分类的某Python程序的运行环境记录(下)-安装scipy、scikit-learn、skimage、tensorflow、tflearn
- gyp ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.
- Python模块常用的几种安装方式
- Python js的解析
- Python requests 模块
- 【Python】操作JSON
- 安装kalibr踩坑5:E: Package ‘python-software-properties‘ has no installation candidate
- 实现Trie树-Python
- python读取csv文件
- 《树莓派Python编程入门与实战(第2版)》——3.3 安装Python和工具
- 《Python数据可视化编程实战》——1.6 安装图像处理工具:Python图像库(PIL)
- python 内置操作函数
- python 切片索引
- 本地python环境检查,插件检查及插件安装
- Jenkins持续集成实战之Jenkins构建Python项目提示:'python' 不是内部或外部命令,也不是可运行的程序。
- python 安装pycurl
- Python 常见问题 之 python 安装包下载安装速度慢 的 快速解决方法(之一)
- Python 工具 之 Anaconda 的下载、安装、环境创建,以及结合Pycharm在其Python环境下运行第一个HelloWorld
- 【python养成】:pip3如何安装依赖库和换国内源安装库
- Python 基础(二):搭建 Python 开发环境