使用python-fabric进行远程环境部署
使用fabric可以通过ssh连接远程终端,对终端进行操作,可以进行远程环境的部署,前提是远程终端已安装openssh-server,且ssh-server开启
安装fabric
fabric支持python2和python3,不过python3在安装时,要安装fabric3,虽然安装fabric也可以成功,但是用不了,会有报错
$pip install fabric #python2
$pip3 install fabric3 #python3
使用方法
1、安装后,手动创建一个fabfile.py的脚本文件
2、名称不能变,必须是fabfile.py,否则运行时会报错,找不到任何fabfile.py文件;当然如果非要命名成其他文件也可以,但是运行时要加参数-f filename
3、在终端中运行命令即可 (fab -h显示帮助信息,可以查看所有参数)
常用的fabric.api
'abort' 终止执行
'cd' 远程终端切换到指定路径
'lcd' 本地终端切换到指定路径
'env' fabric环境变量,这是个dict
'get' 从远程终端下载文件到本地
'put' 从本地上传文件到远程终端
'run' 执行远程命令
'local' 执行本地命令
'sudo' 以sudo的权限执行命令
常用的就这几个,其余的后期再去研究
简单的例子
在某路径下创建一个fabfile.py的文件
# -*- coding: utf-8 -*-
from fabric.api import *
env.hosts = ['10.4.66.87']
env.user = 'jkwang'
env.password = '20160418'
def mytest():
run('ls -ll')
with cd('testforfab'):
run('echo "hello"> a')
run('ls -la')
运行结果

1: svn checkout命令:svn co url --username xxx --password xxx ./ 参考http://riaoo.com/subpages/svn_cmd_reference.html
2: 参考廖雪峰老师的博客,有更具体的例子:http://www.liaoxuefeng.com/article/001373892650475818672edc83c4c978a45195eab8dc753000
使用python-fabric进行远程环境部署的更多相关文章
- python fabric实现远程操作和部署示例
https://www.jb51.net/article/48434.htm 近期接手越来越多的东西,发布和运维的工作相当机械,加上频率还蛮高,导致时间浪费还是优点多.修复bug什么的,测试,提交版本 ...
- 【转】python fabric实现远程操作和部署
fabric title是开发,但是同时要干开发测试还有运维的活……为毛 task*3 不是 salary * 3 (o(╯□╰)o) 近期接手越来越多的东西,发布和运维的工作相当机械,加上频率还蛮高 ...
- PYTHON FABRIC实现远程操作和部署
转载至:http://wklken.me/posts/2013/03/25/python-tool-fabric.html fabric title是开发,但是同时要干开发测试还有运维的活 (o(╯□ ...
- (数据科学学习手札132)Python+Fabric实现远程服务器连接
本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 日常工作中经常需要通过SSH连接到多台远程 ...
- centos7 nginx配置httpsCenos(6.6/7.1)下从源码安装Python+Django+uwsgi+nginx环境部署(二)
1.yum安装nginx 下载对应当前系统版本的nginx包(package) # wget http://nginx.org/packages/centos/7/noarch/RPMS/ngin ...
- 后端程序员之路 6、Python fabric
直接写shell固然也很好,但是用python来写脚本,也是美滋滋.fabric是一个封装部署.多机操作等功能的python库. Welcome to Fabric! - Fabric documen ...
- Python Fabric远程自动部署简介
Fabric是一个Python(2.5-2.7)库,用于简化使用SSH的应用程序部署或系统管理任务. 它提供的操作包括:执行本地或远程shell命令,上传/下载文件,以及其他辅助功能,如提示用户输入. ...
- Python 远程开发环境部署与调试
一.下载相应开发工具 Pycharm :下载地址 二.部署开发机 一般在工作过程中,开发环境并不是本地环境,而是指在开发机:因为,有很多依赖本地部署非常麻烦,而开发机中则内置了很多相关的服务 三.代 ...
- 使用python fabric搭建RHEL 7.2大数据基础环境以及部分优化
1.使用python fabric进行Linux基础配置 使用python,可以让任何事情高效起来,包括运维工作,fabric正式这样一套基于python2的类库,它执行本地或远程shell命令提供了 ...
随机推荐
- getpass密码隐藏
使用getpass模块对输入的字符进行隐藏输入 #-*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import getpass u ...
- Java面向对象-递归
Java面向对象-递归 递归,就是程序调用自身,我们讲的是方法递归调用,也就是在方法里自己调用自己: 我们给出一个案例,求阶乘 1*2*3*...*(n-1)*n 我们用非递归和递归方式分别实现下, ...
- 关于linux创建用户的有趣事情!
小博主今天接受了一项光荣的任务!为什么说是光荣任务呢?因为这个任务是需要创建一个linux用户!!! 肯定有小伙伴要嘲笑了!创建一个用户有什么难的啊! 对!这个并不难,即使是小白也能轻松应对! 但是! ...
- HTTP直接请求webService
在实际开发中,会遇到各种各样的webService接口,并且对方提供的接口并不规范,一些客户端反而就不好使了,如cxf(客户端与动态调用)等,直接用java提供的api比较繁琐,这时直接用http r ...
- 22-从零玩转JavaWeb-代码块
配套详解视频 局部代码块与初始化代码块 面向对象-静态代码块 代码块总结 组合关系与类的加载 静态代码块及字段初始化练习 一.什么是代码块 在类中或方法当中 使用{}括起来的一段代码 就称它是一个代码 ...
- 通过class类获取类的方法信息
测试:
- Android中资源文件夹res/raw和assets的使用
Android中资源文件夹res/raw和assets的使用 2011-12-08 11:05 494人阅读 评论(0) 收藏 举报 androidxml存储stringencodinglayout ...
- php扩展开发环境搭建
首先要安装编译php时要的几个扩展库 (1)libxml2,若无php安装一些解析xml的扩展时会提示xml2-config not found sudo apt-get install libxml ...
- 69. Sqrt(x) 求根号再取整
[抄题]: Implement int sqrt(int x). Compute and return the square root of x, where x is guaranteed to b ...
- java 实现mysql数据库备份
package com.itenp.gen.action; import java.io.BufferedReader; import java.io.FileInputStream; import ...