Python的系统批量运维管理器Fabric介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/88072293

一 点睛

Fabric是基于Python(2.5及以上版本)实现的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包括命令执行、文件上传、下载及 完整执行日志输出等功能。Fabric在paramiko的基础上做了更高一层的封装,操作起来会更加简单。

Fabric官网地址为: http://www.fabfile.org

二 Fabric的安装

[root@localhost pymaintain]# pip install fabric==1.8.2

注意:如果要在windows下运行,需要参考下面文章,安装pycrypto

windows下安装报错解决方法

https://blog.csdn.net/qq_38677814/article/details/79437553

三 入门示例

1 代码

#coding=utf-8
#!/usr/bin/env python
from fabric.api import run
def host_type():    #定义一个任务函数,通过run方法实现远程执行‘uname -s’命令
    run('uname -s')

2 结果

[root@localhost pymaintain]# fab -H 192.168.0.101 host_type
[192.168.0.101] Executing task 'host_type'
[192.168.0.101] run: uname -s
[192.168.0.101] out: Linux
[192.168.0.101] out:


Done.

3 说明

其中,fab命令引用默认文件名为fabfile.py,如果使用非默认文件 名称,则需通过“-f”来指定,如:fab -H 192.168.0.101 host_type.py host_type。

如果管理机与目标主机未配置密钥认证信任, 将会提示输入目标主机对应账号登录密码。

四 fab的常用参数

fab作为Fabric程序的命令行入口,提供了丰富的参数调用,命令格式如下:

fab [options] <command>[:arg1,arg2=val2,host=foo,hosts='h1;h2',...]

下面列举了常用的几个参数,更多参数可使用fab-help查看。

  • -l:显示定义好的任务函数名; 
  • -f:指定fab入口文件,默认入口文件名为fabfile.py; 
  • -g:指定网关(中转)设备,比如堡垒机环境,填写堡垒机IP即可;
  • -H:指定目标主机,多台主机用“,”号分隔; 
  • -P:以异步并行方式运行多主机任务,默认为串行运行; 
  • -R:指定role(角色),以角色名区分不同业务组设备; 
  • -t:设置设备连接超时时间(秒); 
  • -T:设置远程主机命令执行超时时间(秒); 
  • -w:当命令执行失败,发出告警,而非默认中止任务。

有时候我们甚至不需要写一行Python代码也可以完成远程操作, 直接使用命令行的形式,例如:

[root@localhost pymaintain]# fab -p 123456 -H 192.168.0.101,192.168.0.120 -- 'uname -s'
[192.168.0.101] Executing task '<remainder>'
[192.168.0.101] run: uname -s
[192.168.0.101] out: Linux
[192.168.0.101] out:

[192.168.0.120] Executing task '<remainder>'
[192.168.0.120] run: uname -s
[192.168.0.120] out: Linux
[192.168.0.120] out:


Done.
Disconnecting from 192.168.0.120... done.
Disconnecting from 192.168.0.101... done.

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/88072293
今日推荐