Fabric运维从入门到精通
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运维从入门到精通的更多相关文章
- saltstack自动化运维快速入门
saltstack自动化运维快速入门 关于saltstack 这个软件是干啥的 我这里就不介绍了 只是简单的说下是干啥的 网上的说法是 它是func的强化版本+ puppet的精简版 关于puppet ...
- Linux运维工程师入门的10大实用工具
说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具. 我就大概列出这几方面,这样入门就基本没问题了. 工具如下: 1.Linux系统基础 这个不用说了,是基础中的基础,连这 ...
- Linux运维工程师入门须掌握的10个技术点
本人是linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧 说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具. 我就大概列出这几方面,这样入门就基本没问 ...
- fabric运维
fabric中文文档:http://fabric-chs.readthedocs.io/zh_CN/chs/ 视频教程:http://study.163.com/course/courseMain.h ...
- Linux系统运维工程师入门绝招放送
运维是干嘛的?安装服务器系统?重装系统再装系统?背锅的? 我就稀里糊涂的,这样报着必死的决心,考下RHCE认证,走上了Linux运维的道路,成为了一名linux运维工程师.有些心得跟大家分享下,避免小 ...
- 自动化运维Shell入门
运维shell 作用 项目部署 项目监控 什么是shell shell是一个程序,/bin/bash/,是一个命令解释器所有linux命令都由他来执行,打开终端就进入了 shell的交互式命令 运行方 ...
- Linux运维基础入门(四):Linux中的网络知识04
一,虚拟机的安装 略 二,Linux系统下的网络配置(Linux虚拟机的网络设定为桥接模式) 桥接模式:虚拟机同主机一样,在网络中相当于一个真实存在的装有Linux系统的电脑.(我们先用这个模式) N ...
- Linux运维基础入门(三):网络基础知识梳理03
一,ARP协议 使用ARP协议可以查出擅自更改IP地址主机的MAC地址.在学习ARP协议前需要了解广播和广播域的相关概念. 1.1 广播与广播域 在超市找人时,如果不知道对方的位置就需要到服务台通过广 ...
- Linux运维基础入门(一)网络基础知识梳理01
一,计算机网络参考模型 1.1 OSI七层模型 1)物理层 主要功能是完成相邻节点之间原始比特流的传输.(网卡等) 物理层协议关心的典型问题是使用什么样的物理信号来表示数据1和0:持续的时间有多长:数 ...
随机推荐
- tomcat 安装配置部署到nginx+tomcat+https
目录 1 Tomcat简介 2.下载并安装Tomcat服务 2.2 部署java环境 2.3 安装Tomcat 2.4 Tomcat目录介绍 (关注点 bin conf logs webapps) 2 ...
- 01 python初学(注释、交互、if while for)
为了能生存下去,一定要坚持学习! 目录 1. 注释 2. 用户交互 3. if .while.for 语句 1. 注释 单行注释: # 多行注释: 三个单引号 || 三个双引号 2. 用户交互: ...
- 正确生成浮点型的方法,解决sqlachemy Float浮点型的坑,生成float类型时,长度和精度均为0,导致查询不到结果!
问题描述 在使用flask_sqlachemy时,给price字段选择了Float类型,数据库用的mysql,生成数据库表后,发现 from sqlalchemy import Float,Colum ...
- git分支开发的好处
有不少开发者们不习惯使用Git分支开发.原因有如下几个方面?(1)不熟悉不习惯;(2)觉得太麻烦;今天我想说的是使用git分支开发绝对是一个高效版本控制的做法. 当你遇到测试人员给你提的bug,你只需 ...
- DAO层基础设计原理
在实际的开发中有一种项目的程序组织架构方案叫做MVC模式,按照程序 的功能将他们分成三个层,如下图 Modle层(模型层).View层(显示层).Controller层(控制层). Modle层:可以 ...
- Python排序算法——插入排序
有趣的事,Python永远不会缺席! 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10787464.html 一.插入排序(Inse ...
- Generative Adversarial Nets[Introduction]
0. 背景 通过阅读书籍<Pro Deep Learning with TensorFlow: A Mathematical Approach to Advanced Artificial In ...
- windows下数据挖掘相关包numpy、pandas的安装
安装Anaconda的绕道 这里介绍如何在windows下安装numpy/scipy/matplotlib/pandas/scikit_learn等数据分析相关包 相关环境: win7 64位 pyt ...
- [C#] LINQ之SelectMany
声明:本文为www.cnc6.cn原创,转载时请注明出处,谢谢! 一.第一种用法: public static IEnumerable<TResult> SelectMany<TSo ...
- H5 字符实体
41-字符实体 (greater than) © 版权符号 --> 我 爱你 到此为止我们的HTML的基础标签就学习完毕了, 例如我们学习了<h1>标签, <table&g ...