码迷,mamicode.com
首页 > 其他好文 > 详细

批量执行命令:fabric

时间:2019-02-09 12:00:02      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:2.3   cat   开发包   def   发包   lease   NPU   批量执行命令   默认   

Fabric 可以通过 SSH 在多台客户端主机上批量执行任务,是基于 paramiko 封装开发的,paramiko 更底层一些,安装方法如下:

[root@localhost ~]$ yum install -y python-devel     # 先安装 python 开发包
[root@localhost ~]$ pip install pycrypto==2.3       # 安装 paramiko 的依赖包,paramiko 使用 ssh 登录需要用到 pycrypto 来提供加密算法,保证 ssh 安全性
[root@localhost ~]$ pip install paramiko==1.12.4    # 安装 Fabric 的依赖包,Fabric 是基于 paramiko 封装的
[root@localhost ~]$ pip install fabric==1.8.3       # 最后安装 Fabric,安装之后会提供 fab 命令,也会提供很多 Fabric 的 API


Fabric 简单用法:

[root@localhost ~]$ cat fabfile.py     # 需要定义一个fabfile.py文件,文件名是固定的

from fabric.api import run # 使用Fabric提供的API,run用来远程执行命令 def getHostname(): # 定义一个函数,用来获取主机名 run(hostname)
[root@localhost ~]$ fab -H 192.168.216.130 getHostname    # 通过 fab 命令来调用 fabfile.py 文件
[192.168.216.130] Executing task getHostname            # -H 192.168.216.130 用于指定对哪个远程主机进行操作
[192.168.216.130] run: hostname                           # getHostname 表示执行 fabfile.py 文件里的哪个函数
[192.168.216.130] out: localhost.localdomain              # 注意:使用 Fabric 的前提是保证 ssh 可以通过密钥登录
[192.168.216.130] out: Done.
Disconnecting from 192.168.216.130... done.


Fabric 使用环境变量:

 



Fabric 常用 API:

run      # 远程执行命令,如 run(‘hostname‘)
env      # 用于定义内置属性,如 env.hosts = [‘ip1‘, ‘ip2‘, ‘ip3‘, ...]
put      # 上传本地文件到远程主机,如 put(‘/etc/passwd‘, ‘/tmp/passwd‘)
get      # 从远程主机下载文件到本地,如 get(‘/etc/passwd‘, ‘/tmp/passwd‘)
prompt   # 获得用户输入信息,如 prompt(‘please input user password: ‘)
confirm  # 获得提示信息确认,如 confirm(‘Test failed, Continue[Y/N]: ‘)


fab 命令:

-H    # 指定对哪台远程主机进行操作,如果有多台用逗号隔开
-R    # 指定对哪种角色的主机进行操作,角色需要在fabfile.py文件中自定义
-f    # 指定fab入口文件,默认入口文件名为fabfile.py
-t    # 指定连接到远程主机的超时时间
-T    # 指定连接到远程主机后命令执行的超时时间

 

 

 

 

 

     

批量执行命令:fabric

标签:2.3   cat   开发包   def   发包   lease   NPU   批量执行命令   默认   

原文地址:https://www.cnblogs.com/pzk7788/p/10357226.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!