python中自动化运维工具Fabric

Fabric介绍

     Fabric 主要用在应用部署与系统管理等任务的自动化,简单轻量级,提供有丰富的 SSH 扩展接口。Fabric 主要依赖另一大核心组件 Paramiko,它是基于 SSH 协议的远程控制模块,Fabric 在其基础上封装出了更加友好的接口,可以远程执行 Shell 命令、传输文件、批量操作服务器、身份认证、多种配置与设置代理,等等

1、安装

pip install fabric3  

可以把fabric看做是一个软件,安装后提供操作系统级命令“fab”,然后这个软件开放一些API,可以通过python去调用

2、常用参数

格式:fab 选项参数

常用选项参数:

-l:查看目标fab程序可用的函数。(需要和-f结合使用)

-f:告诉fab程序去读取哪个.py文件

-g:指定网关

-H:指定需要控制的目标主机,多个主机用“,”隔开

-P:以异步并行方式运行多主机任务,默认为串行任务。(可以理解为多线程执行,默认为一个线程)

-u:指定主机用户名

-p:指定主机密码

例:fab -p 密码 -H 主机1,主机2 --'命令'

    fab -u root -p 密码 -H '172.20.163.121,172.20.163.126' -- 'ifconfig'   ===>执行此命令后会输出172.20.163.121和172.20.163.126的ifconfig信息

3、fabfile脚本编写

3.1、普通场景示例(适用于所有服务器的用户名、密码、业务类型都一致的情况)(即:一个程序对应一个集群):

from fabric.api import *  ===>导入fabric

# 全局属性的设定()

# env为fabric.api里面的一个对象,可以通过操纵它的各个属性实现对自动化运维程序的全局参数配置,它的属性包括目标主机ip、用户、密码、角色等

# 1、env.host:存放目标主机的列表

env.hosts = ['192.168.1.1', '192.168.1.2']

# 2、env.user:定义用户名

env.user = 'root'

# 3、env.port:定义端口

env.port = 22

# 4、env.password:定义密码

env.password = '123456'

@task    ===> 如果没加@roles、@hosts等装饰器,一旦下面这个函数被执行,则全局env.hosts里面所有的机器都会运行函数内的命令

def show_net():

    run('ifconfig')  ===>在远程主机上执行“ifconfig”命令(默认情况下fabric会调用/bin/bash来执行该命令,这时如果你连接的是交换机等CLI命令的设备就会出错)

 注意:run('show ip route',

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值