码迷,mamicode.com
首页 > 编程语言 > 详细

Python自动化运维工具fabric的安装

时间:2016-04-29 14:11:40      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

  使用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/

 

  

Python自动化运维工具fabric的安装

标签:

原文地址:http://www.cnblogs.com/freeweb/p/5445749.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!