使用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. rhel-server版安装vbox增强功能
  2. linux 脚本案例,30个关于Shell脚本的经典案例(上)
  3. mysql illegal mix of_mysql字符集问题:Illegal mix of collations
  4. 【MySQL查询】复杂查询:别名、外键join
  5. 使用基本ACL规则限制用户登录
  6. 组合数学 —— 组合数取模
  7. 《剑指Offer》 调整数组顺序使奇数位于偶数前面
  8. 第一节 Java语言发展史
  9. kabina 使用说明_Kibana安装及使用说明
  10. 测试Lock锁-可重入锁(Java)
  11. xencenter服务器不显示,XenCenter 不能连接 XenServer 解决方法
  12. 网页字体生成器「谷雨解字」——不仅仅是中文字体子集化工具
  13. 图像处理--图像细化处理
  14. 技术债务_不要浪费时间跟踪技术债务
  15. SDH与SONET(整理)
  16. 对象含有与成员函数不兼容的类型限定符
  17. 4.13nbsp;经济分析
  18. 七、Android定位与拨打电话、发送短信
  19. NBD(Network Block Device)简介及基本使用
  20. 地图的电子围栏功能的技术选型

热门文章

  1. LeetCode 20. 有效的括号 golang(三)
  2. 《C++ Primer 第五版》(第3.5-3.6节) ——C++中的内置数组类型,string对象和C风格字符串
  3. 汇顶软件开发初面总结20180921
  4. 网络基础 2-1(应用层,HTTP三点注意,HTTP协议格式, 最简单的HTTP服务器)
  5. C++11 标准新特性:Defaulted 和 Deleted 函数
  6. fork、vfork、clone
  7. python生成泊松分布随机数_泊松分布随机数
  8. Codeforces 773D Perishable Roads 最短路 (看题解)
  9. 【转载】移动端布局概念总结
  10. 线性代数-矩阵-转置 C和C++的实现