使用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自动化运维工具fabric的安装相关推荐

  1. 轻量级自动化运维工具Fabric的安装与实践

    一.背景环境 在运维工作中,经常会遇到重复性的劳动,这个时候为了效率就必须要使用自动化运维工具. 这里我给大家介绍轻量级自动化运维工具Fabric,Fabric是基于Python语言开发的,是开发同事 ...

  2. Python自动化运维工具-Fabric部署及使用总结

    使用shell命令进行复杂的运维时,代码往往变得复杂难懂,而使用python脚本语言来编写运维程序,就相当于开发普通的应用一样,所以维护和扩展都比较简单,更重要的是python运维工具fabric能自 ...

  3. 自动化运维工具ansible的安装管理以及模块介绍

    自动化运维工具ansible的安装管理以及模块介绍 目录 自动化运维工具ansible的安装管理以及模块介绍 一.ansible概述 1.几种常用运维工具比较 2.Ansible简介 3.Ansibl ...

  4. 自动化运维工具ansible(安装与模块介绍)

    自动化运维工具ansible(安装与模块介绍) 一.ansible运维工具概述 (一).ansible的特点 (二).ansible的原理 (三)ansible的优点 二.安装ansible 三.an ...

  5. Ansible自动化运维工具使用

    概述 本文描述自动化运维工具 Ansible 的安装及基础使用方法,包含: Centos 下的安装 主机配置 Ad-Hoc command(命令行执行) Playbook (任务剧本) Ansible ...

  6. 常见的自动化运维工具介绍及特点、安装ansible

    常见的自动化运维工具介绍及特点.安装ansible 一.什么是自动化运维? 简单来说,自动化运维就是将日常重复性工作按照事先设定好的规则,在一定时间范围内自动化运行,而不需要人为参与. 将周期性.重复 ...

  7. 自动化运维工具——ansible安装及模块介绍

    ansbile 前言 一.主流自动化运维工具简介 1.1 Puppet 1.2 Saltstack 1.3 Ansible 二.Ansible 运维工具原理 三.Ansible安装 3.1 下载软件包 ...

  8. python开发web运维工具_【实战小项目】python开发自动化运维工具--批量操作主机...

    有很多开源自动化运维工具都很好用如ansible/salt stack等,完全不用重复造轮子.只不过,很多运维同学学习Python之后,苦于没小项目训练,本篇演示用Python写一个批量操作主机的工具 ...

  9. python自动化运维:python环境的安装

    python自动化运维 第一章 python环境的安装 一.准备工作 1.聘通外网 ping 114.114.114.114 清理yum源 yum repolist 3.安装阿里云的镜像 sudo y ...

最新文章

  1. GitHub上大热的Deep Photo终于有TensorFlow版了!
  2. linux下mysql的root密码忘记解决方案
  3. NSArray利用Cocoa框架进行汉字排序
  4. 判断2个list中是否有相同的数据(相交)Collections.disjoint
  5. Docker最全教程——从理论到实战(二)
  6. strip and linux lib compile
  7. 1003 我要通过! (20 分)
  8. Java有快速打好基础的方法?
  9. 程序员小哥月入5万,却被丈母娘拒绝,丈母娘一番话让小哥很尴尬
  10. 招聘 集群研发工程师
  11. 金山pdf阅读器 独立版V10.1.0.6683
  12. 回顾12306数据泄露事件
  13. 杨老师课堂_Java教程第一篇之认识计算机
  14. python+VBA实现照片转Excel
  15. Sparse R-CNN
  16. xlsx发现不可读取的内容,是否恢复此工作簿的内容?
  17. java 反射无参方法_无参构造方法 ? 反射
  18. 群星闪耀,OpenStack技术峰会后援团深度曝光
  19. 22春天津大学《基础会计》在线作业二
  20. Ubuntu/debian软件仓库源配置详解

热门文章

  1. 提示丢失libgcc_s_dw2-1.dll问题
  2. FreeRTOS中断配置与临界段
  3. excel oledb mysql_OLEDB操作Excel
  4. java多个页面爬取_java爬取html页面(简易通用版)
  5. uva 11105——Semi-prime H-numbers
  6. 28. 实现 strStr() golang
  7. fork()请问下面的程序一共输出多少个“A”?多少个-?
  8. C语言之scanf中的格式
  9. 组件文件已损坏或android内部模块,android - Android Q更新后,模块化系统组件在托管配置文件中不可用 - 堆栈内存溢出...
  10. arm-linux 交叉编译 mp4v2