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.****.net/wklken/article/details/8719541/
2. 传智播客公开课之python自动化运维
http://itcast.com