背景:fabric主要执行远程的shell命令,包括文件的上传、下载,以及提示用户输入等辅助其它功能。

测试系统:ubuntu16

要求:python    //系统有自带,ubuntu16 通常自带python2.7.5

一、安装fabric

  1、安装fabric

$ sudo apt-get install python-pip

$ sudo pip install --upgrade pip                            //升级pip

$ sudo pip install fabric

  2、查看安装结果

$ which fab

二、fabric的使用

  1、编写hello脚本: vim /tmp/fab/hello.py

  1.1 脚本内容

#!/usr/bin/env python

def hello():
print("Hello world!")

  1.2 运行文件及输出结果

$ fab -f hello.py hello

----------------------------------------->

Hello world!

Done.

  2、参数传递:vim /tmp/fab/test1.py

  2.1 脚本内容

#!/usr/bin/env python

def hello(name):

        print('Hello %s!' % name)

  2.2 运行文件及输出结果

$ fab -f test01.py hello:jeff

-------------------------------------->
Hello jeff! Done.

  3、本地操作

  3.1 vim /tmp/fab/lslocal.py

#!/usr/bin/env python

from fabric.api import local

def lslocal():
local('cd /usr/local')
local('ls')

  3.2 运行文件及输出结果

$ fab -f local.py lslocal
[localhost] local: cd /usr/local && ls
bin etc games include lib man sbin share src Done.

  4、远程操作

  4.1 脚本内容

#!/usr/bin/env python
# -*- coding: utf-8 -*- from fabric.api import * env.roledef = {
'server1': ['root@172.16.1.201:22',],
'server2': ['zun1@172.16.1.206:22',]
}
env.password = '123456' @roles('server1')
def task1():
run('cd /usr/local && ls') @roles('server2')
def task2():
  with cd('/home/zun1'):          //with的作用在于让后面的表达式语句继承当前的状态
run('ls')               // 以实现 “ls /home/zun1” 的效果 def test():
execute(task1)
execute(task2)

  4.2 运行文件及输出结果

$ fab -f test01.py test

------------------------------------------------------------------------------------>

[root@172.16.1.201:22] Executing task 'task1'
[root@172.16.1.201:22] run: cd /usr/local && ls
[root@172.16.1.201:22] out: bin etc games include lib lib64 libexec sbin share src
[root@172.16.1.201:22] out: [zun1@172.16.1.206:22] Executing task 'task2'
[zun1@172.16.1.206:22] run: cd /home/zun1 && ls
[zun1@172.16.1.206:22] out: test_fabric walle-web.vendor.tgz
[zun1@172.16.1.206:22] out: Done.
Disconnecting from root@172.16.1.201... done.
Disconnecting from 172.16.1.206... done.

以上只对fabric做个大概演示,如想深入研究,可查看 官网教程

  

python fabric的安装与使用的更多相关文章

  1. Python自动化运维工具fabric的安装

    使用shell命令进行复杂的运维时,代码往往变得复杂难懂,而使用python脚本语言来编写运维程序,就相当于开发普通的应用一样,所以维护和扩展都比较简单,更重要的是python运维工具fabric能自 ...

  2. python fabric安装

    1 安装epel wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 2 安装pip yum i ...

  3. Python Fabric远程自动部署简介

    Fabric是一个Python(2.5-2.7)库,用于简化使用SSH的应用程序部署或系统管理任务. 它提供的操作包括:执行本地或远程shell命令,上传/下载文件,以及其他辅助功能,如提示用户输入. ...

  4. Python - Fabric简介

    1 - Fabric Fabric是一个Python的库,提供了丰富的同SSH交互的接口,可以用来在本地或远程机器上自动化.流水化地执行Shell命令. 非常适合用来做应用的远程部署及系统维护.简单易 ...

  5. 轻量级自动化运维工具Fabric的安装与实践

    一.背景环境 在运维工作中,经常会遇到重复性的劳动,这个时候为了效率就必须要使用自动化运维工具. 这里我给大家介绍轻量级自动化运维工具Fabric,Fabric是基于Python语言开发的,是开发同事 ...

  6. 使用python fabric搭建RHEL 7.2大数据基础环境以及部分优化

    1.使用python fabric进行Linux基础配置 使用python,可以让任何事情高效起来,包括运维工作,fabric正式这样一套基于python2的类库,它执行本地或远程shell命令提供了 ...

  7. Python Fabric模块详解

    Python Fabric模块详解 什么是Fabric? 简单介绍一下: ​ Fabric是一个Python的库和命令行工具,用来提高基于SSH的应用部署和系统管理效率. 再具体点介绍一下,Fabri ...

  8. (数据科学学习手札132)Python+Fabric实现远程服务器连接

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 日常工作中经常需要通过SSH连接到多台远程 ...

  9. Python 2/3 安装与运行环境设置

    Python 2/3 安装与运行环境设置: 1.Python 软件源:https://www.python.org/    下载Win版本 https://www.python.org/downloa ...

随机推荐

  1. 让你快速上手Runtime(转)

    前言 本篇主要介绍Runtime在开发中的一些使用场景,顺便讲解了下MJExtension的底层实现.如果喜欢我的文章,可以关注我微博:袁峥Seemygo,也可以来小码哥,了解下我们的iOS培训课程. ...

  2. Data Structure Graph: cycle in a directed graph

    geeks上的解答复杂了些,用回溯就行了 #include <iostream> #include <vector> #include <algorithm> #i ...

  3. python编写脚本应用实例

    这里主要记录工作中应用python编写脚本的实例.由于shell脚本操作数据库(增.删.改.查)并不是十分直观方便,故这里采用python监控mysql状态,然后将状态保存到数据库中,供前台页面进行调 ...

  4. 解决COMODO Internet Security更新慢或失败的问题

    方法一: COMODO 默认更新服务器只有一个:http://download.comodo.com/ 我电信网络更新速度非常慢: 实在没有办法了,找到了几个更新服务器: http://eu1.dow ...

  5. POJ 1611并查集

    我发现以后写题要更细心,专心! #include<iostream>#include<algorithm>#include<stdio.h>#include< ...

  6. Nginx初步配置

    编辑 简介 Nginx ("engine x") 是一个轻量级,高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为 ...

  7. 算法(Algorithms)第4版 练习 1.3.3

    (a) 4 3 2 1 0 9 8 7 6 5 (b) 4 6 8 7 5 3 2 9 0 1 (c) 2 5 6 7 4 8 9 3 1 0 (d) 4 3 2 1 0 5 6 7 8 9 (e) ...

  8. fffmpeg 提取pcm

    ffmpeg -i input.aac -codec:a pcm_f32le -ar 48000 -ac 2 -f f32le output.pcm

  9. Linux课程---11、Linux中软件安装和调试

    Linux课程---11.Linux中软件安装和调试 一.总结 一句话总结: 启动过程:1.安装软件,2.修改配置文件,3.启动服务 查看过程:4.查看进程,5.查看端口 关闭过程:6.关闭软件,7. ...

  10. STL list链表的用法详解

    本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂.不失为STL的入门文章,新手不容错过! 0 前言 1 定义一个list 2 使用list的成员函 ...