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‘:[‘[email protected]:22‘,],
10     # 第二组
11     ‘servers2‘:[‘[email protected]: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/

  

时间: 2024-08-01 22:34:23

Python自动化运维工具fabric的安装的相关文章

自动化运维工具--Ansible(安装部署、模块简介与操作)

一.Ansible概述 互联网的快速发展导致产品更新换代速度加快,按照传统维护操作使得工作效率低下,自动化运维以尽可能安全高效的完成工作为目的,实现代替传统工作方式. 自动化运维工具划分为两类: 一是需要使用代理工具的,也就是基于agent程序来实现管理功能,例如puppet.func.zabbix等 二是不需要代理配置工具的,可以直接基于SSH服务来完成管理功能,如ansible,fabric等. 自动化运维工具比较: 工具 开发语言 结构 配置文件格式 运行任务 Ansible Python

【Ansible】自动化运维工具Ansible的安装及使用

常用自动化运维工具: ①CFengine ②Chef ③Puppet ③SaltStack ③Ansible-基于python开发,分布式,无需客户端,轻量级.配置语言采用YAML. Ansible基本架构 Ansible工作原理 Ansible的安装及使用 ①CentOS Linux release 7.3.1611 (Core) 安装: yum install -y ansible [[email protected] ansible]# ls /etc/ansible/ ansible.c

自动化运维工具fabric的简明使用手册

1.简介 Fabric 是一个 Python (2.5-2.7) 的库和命令行工具,用来提高基于 SSH 的应用部署和系统管理效率.更具体地说,Fabric 是: 一个让你通过命令行执行Python函数的工具: 一个让你通过SSH执行Shell命令更加容易. 更符合Python风格的命令库. 自然而然地,大部分用户把这两件事结合着用,使用Fabric来写和执行Python函数或task,以实现与远程服务器的自动化交互.让我们一睹为快吧. 2.安装 创建.pip目录和配置文件: cd ~ mkdi

linux下自动化运维工具ansible的安装和使用

ansible是基于python语言开发的模块化批量管理工具.ansible无终端,基于ssh实现管理:支持主从模式,支持playbook.实验环境:3台Centos7 .131做为主控节点.130和132做为被控节点.一.在131上安装ansible(1).yum install ansible -y(2).查看ansible版本ansible --version(3).ansible相关的文件rpm -qc ansible/etc/ansible/ansible.cfg #ansible配置

自动化运维工具Ansible实战(一)安装部署

1,基本介绍 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能. ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括: (1).连接插件connection plugins:负责和被监控端实现通信: (2).host inventory:指定操作

自动化运维工具ansible——安装及模块管理

ansible简介 ?ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能. ?ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括:(1).连接插件connection plugins:负责和被监控端实现通信:(2).host inventory:指

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

有很多开源自动化运维工具都很好用如ansible/salt stack等,完全不用重复造轮子.只不过,很多运维同学学习Python之后,苦于没小项目训练,本篇演示用Python写一个批量操作主机的工具,大家空余时候可以试着写写,完善完善. 1 思路分析 在运维工作中,古老的方式部署环境.上线代码可能都需要手动在服务器上敲命令,不胜其烦.所以,脚本,自动化工具等还是很有必要的.我觉得一个批量操作工具应该考虑以下几点: (1)本质上,就是到远程主机上执行命令并返回结果. (2)做到批量.也就是要并发

自动化运维工具介绍

运维目标有三个阶段,第一是追求稳定性,第二是追求标准化,第三是追求自动化.对于第三阶段来说,什么是运维自动化呢?简单地讲,运维自动化就是将日常重复性工作按照事先设定好的规则,在一定时间范围内自动化运行,而不需要人工参与.接下来简单介绍运维自动化工具,要了解运维平时用到的自动化工具,就需要了解运维人员的日常工作有哪些. 一.运维的日常工作 运维的日常工作可以总结为以下四个部分,分别是: (1) 系统安装 (2) 应用程序配置(Configuration) (3) 命令执行与控制(Command a

自动化运维工具之ansible

ansible ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能. ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架. 主要包括: (1).连接插件connection plugins:负责和被监控端实现通信: (2).host inventory:指定