首页 > 网站 > 建站经验 > 正文

运维管理器Fabric使用方法

2019-11-02 16:10:14
字体:
来源:转载
供稿:网友

Fabric的安装

Fabric支持pip,easy_install或源码方式安装,很方便解决包依赖问题,(根据用户环境,自行选择pip或ease_install)

pip install fabric

easy_install fabric

源码安装不介绍了。

校验安装结果,如果导入模块没有提示异常,则说明安装成功:

root@Python_S6:~# python

Python 2.7.5+ (default, Sep 19 2013, 13:48:49)

[GCC 4.8.1] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import fabric

>>>

官网提供了一个简单的入门示例:

root@Python_S6:/home/chart7/test/fabric# cat farbic.py #!/usr/bin/env python# -*- coding: utf-8 -*-from fabric.api import run def host_type(): #定义一个任务函数,通过run方法实现远程执行'uname -s'命令  run('uname -s')

运行结果如果下图所示

wKioL1R32_KhwHwaAAK-ROg7uYQ972.jpg

命令引用默认文件名为fabfile.py,如果使用非默认文件名称,则需通过'-f'来制定,如:fab -H 192.168.1.23,192.168.1.24 -f 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,当命令执行失败,发出警告,而非默认终止任务

二、fabfile的编写

fab命令是结合我们编写的fabfile.py(其他文件名必须添加-f filename引用)来搭配使用,部分命令行参数可以通过相应的方法来代替,使之更加灵活,列如"-H 192.168.1.23,192.168.1.24",我们可以通过定义env.hosts来实现,如"env.hosts=[192.168.1.23,192.168.1.24]".fabfile的主体由多个自定义的任务函数组成,不同任务函数实现不同的操作逻辑,下面详细介绍

三、全局属性设定

env对象的作用是定义fabfile的全局设定,支持多个属性,包括目标主机,用户,密码角色,各属性说明如下:

复制代码 代码如下:

env.host,定义目标主机,可以用IP或主机名表示,以Python的列表形式定义,如env.hosts=['192.168.1.23,192.168.1.24'].

env.exculde_hosts,排除指定主机,如env.exclude_hosts=['192.168.1.23']

env.user,定义用户名,如env.user="root"

env.port,定义目标主机端口,如env.port = '22'

env.password,定义密码,如env.password='123456'

env.passwords,与password功能一样,区别在于不同主机不同密码的应用场景,需要注意的是,配置passwords时需要配置用户,主机,端口等信息,如:env.passwords = {'root@192.168.1.21:22':'123456',

'root@192.168.1.23:22':'3234234',

'root@192.168.1.24:23':'09887',

}

env.gateway,定义网关(中转,堡垒机)IP,如env.gateway = '192.168.1.1'
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表