美文网首页
fabric 远程调用的利器

fabric 远程调用的利器

作者: hugoren | 来源:发表于2018-06-12 14:47 被阅读0次

fabric简介

fabric是python基于InvokeParamiko封解的高级操作命令,可以本地,也可远程操作命令。

fabric 在gitlab上目前有约1万+星, 目前api有这些http://docs.fabfile.org/en/2.1/

image.png

Fabric3(https://github.com/mathiasertl/fabric/)是基于fabric又一层封装, 网上常说的各种fabric教程,大多数是说的是Fabric3

fab 参数含义

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

env变量设定

属性 含义
env.host 定义目标主机,以python的列表表示,如env.host=[‘xx.xx.xx.xx’,’xx.xx.xx.xx’]
env.exclude_hosts 排除指定主机,以python的列表表示
env.port 定义目标主机端口,默认为22
env.user 定义用户名
env.password 定义密码
env.passwords 与password功能一样,区别在于不同主机配置不同密码的应用情景,配置此项的时候需要配置用户、主机、端口等信息,如:env.passwords = {‘root@xx.xx.xx.xx:22’: ‘123’, ‘root@xx.xx.xx.xx’:’234’}
env.getway 定义网关
env.deploy_release_dir 自定义全局变量
env.roledefs 定义角色分组

常用的api

方法 说明
local 执行本地命令,如:local(‘hostname’)
lcd 切换本地目录,lcd(‘/root’)
cd 切换远程目录,cd(‘cd’)
run 执行远程命令,如:run(‘hostname’)
sudo sudo执行远程命令,如:sudo(‘echo “123456″ passwd –stdin root’)
put 上传本地文件到远程主机,如:put(src,des)
get 从远程主机下载文件到本地,如:get(des,src)
prompt 获取用户输入信息,如:prompt(‘please enter a new password:’)
confirm 获取提示信息确认,如:confirm(‘failed.Continue[Y/n]?’)
reboot 重启远程主机,reboot()
@task 函数修饰符,标识的函数为fab可调用的
@runs_once 函数修饰符,表示的函数只会执行一次

fabric 调用的两种方式

  1. fab 入口方式


    image.png
  1. python程序内调用
def start(ip, port, user, password):
    env.warn_only = True
    env.hosts = [""]
    env.port = 22
    env.user = "test"
    env.password = ""

    execute(install_salt_client, "test")

参考:
http://xuefy.cn/2017/05/06/python-fabric/
http://www.bjhee.com/fabric.html

相关文章

  • fabric 远程调用的利器

    fabric简介 fabric是python基于Invoke和Paramiko封解的高级操作命令,可以本地,也可远...

  • 一个利用fabric-java-sdk调用balance-tra

    一个完整的fabric-java-sdk调用chaincode的例子 利用fabric-java-sdk调用cha...

  • fabric2.0 使用说明

    fabric2.0 使用说明 fabric框架,主要的目的就是用来远程自动化部署。在最近,作者将fabric框架重...

  • 如何在Java中实现远程方法调用

    如何在Java中实现远程方法调用 一、Java中的远程方法调用 JAVA教程远程方法调用(Remote Metho...

  • Go语言之GRPC

    RPC:远程调用框架(Remote Procedure Call), 远程调用原理: 比如 A (client) ...

  • JAVA常用的RPC框架

    RPC(Remote Process Call),远程过程调用。RPC将本地调用转化为远程调用(非本地调用,个人理...

  • 远程部署工具fabric

    关于fabric fabric是一款python库,可以在执行本地或者远端服务器上执行shell命令,一般用于远程...

  • dubbo三

    九、最佳实践分布式应用和单体应用的主要区别是本地调用和远程调用,解决的主要问题都是和远程调用相关。首先,远程调用的...

  • Hyperledger Fabric 1.2系列fabcar:

    简介 fabcar事例可以让我们了解到,如何使用fabric-ca来生成证书、通过node-sdk调用fabric...

  • RPC实战与核心原理

    RPC全称是Remote Procedure Call,即远程过程调用。RPC的作用: 屏蔽远程调用跟本地调用的区...

网友评论

      本文标题:fabric 远程调用的利器

      本文链接:https://www.haomeiwen.com/subject/dlgleftx.html