1. fabric的安装

在windows下的python3中安装fabric:

在python安装根目录下使用pip install fabric 安装

如图:

fabric只支持python2不支持python3

在windows下的python2中安装fabric:

问题:

如何在已经安装了python3的windows操作系统中安装python2

已知 python2的安装路径为D:\python2      python3的安装路径为D:\python3

将D:\python2,  D:\python2\Scripts, D:\python3, D:\python3\Scripts添加到path环境变量中

将D:\python2\python.exe重命名为python2.exe, 将D:\python3\python.exe重命名为python3.exe

配置完以后检测如图所示:

python2和python3都已安装成功!

问题:

在D:\python2中执行pip install fabric报错,Fatal error in launcher: Unable to create process using '"'   如图所示:

在python2和python3共存的情况下,正确使用pip的方法是:

例如,在python2下安装fabric:

python2 -m pip install fabric

安装成功,如图所示:

2.  fabric 全局属性

from fabric.api import  env

env.host = ["192.168.1.1", "192.168.1.2"]

env.passwords = {"root@192.168.1.1": "password1", "liudaoqiang@192.168.1.2": "123456"}

3. fabric 常用api

lcd("/html")          本机上改变当前工作目录

cd("/html")           远程主机上改变当前工作目录

local("uname -s")          本机上执行命令

run("uname -s")            远程主机上执行命令

sudo("touch /abc")        远程主机上使用sudo权限执行命令

reboot()                         重启远程主机

put("localfilepath", "serverfilepath")                上传文件

get("serverfilepath", "localfilepath")                下载文件

@runs_once                                          仅执行一次装饰器函数

@task                                                    标记为fab可调用的装饰器函数

应用1,使用fabric编写自动代码上传到多台服务器

步骤:

1. 编写fabric程序

# coding: UTF-8

from fabric.api import env,run

env.hosts = ['114.55.34.61', '114.55.110.10']
env.password = {'root@114.55.34.61':'asdQWE@#', 'root@114.55.110.10':'Yydr1234!@#$'}

@runs_once
def tar_files():
    lcd("D:")
    lcd("test/scrapy")
    local("tar zcvf yimoney.tar.gz yimoney.py")

def upload():
    cd("/home/")
    put("yimoney.tar.gz", "yimoney.tar.gz")

def untar_files():
    run("tar zxvf yimoney.tar.gz")

@task
def go():
    '''将本地的D:\test\scrapy\tencert_hr目录打包并上传到服务器并解压'''
    tar_files()
    upload()
    untar_files()

2. 列出fab标记函数

fab -f  online.py  -l

注意:

执行程序时报错如下:

是因为fabric不支持python3

使用fab -V 查看fabric的版本号:

3. 执行fab标记函数

fab -f  online.py  go

参考资料:

1.python fabric实现远程操作和部署

http://blog.csdn.net/wklken/article/details/8719541/

2. 传智播客公开课之python自动化运维

http://itcast.com

Fabric运维从入门到精通的更多相关文章

  1. saltstack自动化运维快速入门

    saltstack自动化运维快速入门 关于saltstack 这个软件是干啥的 我这里就不介绍了 只是简单的说下是干啥的 网上的说法是 它是func的强化版本+ puppet的精简版 关于puppet ...

  2. Linux运维工程师入门的10大实用工具

    说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具. 我就大概列出这几方面,这样入门就基本没问题了. 工具如下: 1.Linux系统基础 这个不用说了,是基础中的基础,连这 ...

  3. Linux运维工程师入门须掌握的10个技术点

    本人是linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧 说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具. 我就大概列出这几方面,这样入门就基本没问 ...

  4. fabric运维

    fabric中文文档:http://fabric-chs.readthedocs.io/zh_CN/chs/ 视频教程:http://study.163.com/course/courseMain.h ...

  5. Linux系统运维工程师入门绝招放送

    运维是干嘛的?安装服务器系统?重装系统再装系统?背锅的? 我就稀里糊涂的,这样报着必死的决心,考下RHCE认证,走上了Linux运维的道路,成为了一名linux运维工程师.有些心得跟大家分享下,避免小 ...

  6. 自动化运维Shell入门

    运维shell 作用 项目部署 项目监控 什么是shell shell是一个程序,/bin/bash/,是一个命令解释器所有linux命令都由他来执行,打开终端就进入了 shell的交互式命令 运行方 ...

  7. Linux运维基础入门(四):Linux中的网络知识04

    一,虚拟机的安装 略 二,Linux系统下的网络配置(Linux虚拟机的网络设定为桥接模式) 桥接模式:虚拟机同主机一样,在网络中相当于一个真实存在的装有Linux系统的电脑.(我们先用这个模式) N ...

  8. Linux运维基础入门(三):网络基础知识梳理03

    一,ARP协议 使用ARP协议可以查出擅自更改IP地址主机的MAC地址.在学习ARP协议前需要了解广播和广播域的相关概念. 1.1 广播与广播域 在超市找人时,如果不知道对方的位置就需要到服务台通过广 ...

  9. Linux运维基础入门(一)网络基础知识梳理01

    一,计算机网络参考模型 1.1 OSI七层模型 1)物理层 主要功能是完成相邻节点之间原始比特流的传输.(网卡等) 物理层协议关心的典型问题是使用什么样的物理信号来表示数据1和0:持续的时间有多长:数 ...

随机推荐

  1. 【转】MFC内嵌cef3浏览器内核

    一.cef3内核的下载 可以从http://opensource.spotify.com/cefbuilds/index.html下载,注意:很多版本编译都可以通过 但是运行的时候会崩溃,以cef_b ...

  2. Topshelf:一款非常好用的 Windows 服务开发框架 转发https://www.cnblogs.com/happyframework/p/3601995.html

    背景 多数系统都会涉及到“后台服务”的开发,一般是为了调度一些自动执行的任务或从队列中消费一些消息,开发 windows service 有一点不爽的是:调试麻烦,当然你还需要知道 windows s ...

  3. AI 可视化

    可视化 参考链接: http://www.tensorfly.cn/tfdoc/how_tos/summaries_and_tensorboard.html

  4. 深蓝词库转换2.2发布,支持手心输入法和Win10微软拼音

    距离上一次大版本的发布已经很久很久了,中间是不是会收到一些用户的来信,提出新的需求,于是只是做小版本的更新,终于积累了一些更新后,打算做个大版本的发布了. 深蓝词库转换是一个输入法的词库互转和生成软件 ...

  5. 使用python进行utf9编码和解码

    在2005年4月1日(也就是愚人节),IEEE的rfc4042文件规定了utf9和utf18这2个所谓的Unicode的高效转换格式. 具体的格式说明,有兴趣的话点击上面的rfc4042链接去观看. ...

  6. 重构JS代码 - 让JS代码平面化

    js中的嵌套函数用的很多,很牛叉,那为何要平面化? 易懂(自己及他人) 易修改(自己及他人) 平时Ajax调用写法(基于jQuery) $.post('url', jsonObj, function ...

  7. Python 学习 第十篇:正则表达式 - re

    规则表达式(Regular Expression, RE),又称作正则表达式,通常用于检索.替换符合指定规则的文本,正则表达式定义的规则,称作模式(Pattern),即正则表达式的作用是从文本中查找到 ...

  8. Java类的加载及实例的创建

    java中class.forName()和classLoader都可用来对类进行加载.class.forName()前者除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的sta ...

  9. Visual studio 2015 Community 安装过程中遇到问题的终极解决

    早就有给自己电脑升级VS的想法,可是安装过程并不顺利,一直拖到现在,昨天下定决心,把遇到的问题一个个解决,终于安装成功了,将安装过程中遇到的问题和解决方法记录一下. 需要说明一下的是,不同的电脑环境可 ...

  10. H3C交换机-SNMP配置

    1.1     SNMP基础配置 1.启动/关闭SNMP Agent服务 在系统视图模式下: 启用:snmp-agent 关闭:undo snmp-agent 注:缺省情况下snmp agent是关闭 ...