`
j2ee_yohn
  • 浏览: 168618 次
  • 性别: Icon_minigender_1
  • 来自: 湖南/株洲
社区版块
存档分类
最新评论

fabric 自动化部署 python

阅读更多
1、安装python-devel yum install python-devel

2、pip python安装管理
       a、下载安装setuptools包 curl -O https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
            python ez_setup.py
       b、下载安装pip包 curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
             python get-pip.py

3、安装fabric pip install fabric
          如果出现encode异常设置 /usr/bin/pip添加 sys.setdefaultencoding('utf8')

http://docs.fabfile.org/en/1.4.0/index.html
Fabric是一个Python库,可以通过SSH在多个host上批量执行任务。你可以编写任务脚本,然后通过Fabric在本地就可以使用SSH在大量远程服务器上自动运行。这些功能非常适合应用的自动化部署,或者执行系统管理任务。
让我们首先看一个例子。我们知道在*NIX下面,uname命令是查看系统的发行版。可以写这样一个Fabric脚本:
from fabric.api import run
def host_type():
    run('uname -s')


=====================================================

Python fabric实践操作
前面学习了理论,下面该练练手了。两台机器:10.1.6.186、10.1.6.159。fabric部署在10.1.6.186上面。

1  执行一个简单的task任务,显示两台机器的/home/guol/目录下的文件
#!/usr/bin/python
from fabric.api import *
from fabric.context_managers import *


env.hosts=['10.1.6.186','10.1.6.159']
env.password='xxxxxx'


def task1():
    with cd('/home/guol'):
        run('ls -l')


##结果
root@vm11:/tmp# fab task1
[10.1.6.186] Executing task 'task1'
[10.1.6.186] run: ls -l
[10.1.6.186] out: total 0
[10.1.6.186] out: -rw-r--r-- 1 root root 0 Dec 21 13:32 186-local
[10.1.6.186] out:

[10.1.6.159] Executing task 'task1'
[10.1.6.159] run: ls -l
[10.1.6.159] out: total 0
[10.1.6.159] out: -rw-r--r-- 1 root root 0 Dec 21 13:32 159-remote
[10.1.6.159] out:


Done.
Disconnecting from 10.1.6.159... done.
Disconnecting from 10.1.6.186... done.


2  执行和1相同的任务,不过排除掉10.1.6.159这台机器
#!/usr/bin/python
from fabric.api import *
from fabric.context_managers import *


env.hosts=['10.1.6.186','10.1.6.159']
env.password='xxxxxx'

env.exclude_hosts=['10.1.6.159']


def task1():
    with cd('/home/guol'):
        run('ls -l')


##执行
root@vm11:/tmp# fab task1
[10.1.6.186] Executing task 'task1'
[10.1.6.186] run: ls -l
[10.1.6.186] out: total 0
[10.1.6.186] out: -rw-r--r-- 1 root root 0 Dec 21 13:32 186-local
[10.1.6.186] out:




Done.
Disconnecting from 10.1.6.186... done.


更多请看:http://www.fabfile.org/
分享到:
评论

相关推荐

    Linux redhat python fabric自动化部署脚本

    settings.ini配置文件: [group_weblogicgp] group = weblogicgp group_id = 1001 [user_weblogic] group = weblogicgp user = weblogic user_id = 1001 home_dir = /weblogic shell = /bin/bash ...

    Python自动化部署工具Fabric的简单上手指南.pdf

    Python自动化部署工具Fabric的简单上手指南

    Python应用自动化部署工具Fabric原理及使用解析

    Fabirc是基于python实现的SSH命令行工具,非常适合应用的自动化部署,或者执行系统管理任务。 python2:pip3 install fabric python3:pip3 install fabric3 简单的例子: root@openstack:~# cat fabfile.py def ...

    Python自动化运维和部署项目工具Fabric使用实例

    Fabric是一个Python库,只要目标机器支持ssh访问,就可以借助fabric来进行远程操作(如在host1上对host2远程运行shell命令),显然,由于fabric是个Python package,故其它Python package都可以被import到fabric特有...

    python fabric实现远程部署

    python fabric实现远程部署 需求描述 在多人协同开发项目的过程中,几乎每天我们都要提交代码到git服务器,然后部署到测试服务器,每天都在敲那重复的几行命令,实在是无...借助Python的fabric模块可以将自动化部署或者

    使用Fabric自动化部署Django项目的实现

    因为整个代码部署过程都是相同的,只要我们用 Fabric 写好部署脚本,以后就可以通过运行脚本自动完成部署了。 首先在本地安装 Fabric: $ pipenv install fabric --dev 因为 Fabric 只需在本地使用,因此使用 –dev...

    Python自动化部署工具Fabric的简单上手指南

    Fabric 是基于 SSH 协议的 Python 工具,相比传统的 ssh/scp 方式,用 Python 的语法写管理命令更易读也更容易扩展,管理单台或者多台机器犹如本地操作一般。 官网地址:http://fabfile.org 安装 省略python、pip...

    Python的自动化部署模块Fabric的安装及使用指南

    fabric是python2.5或者更高的库,可以通过ssh在多个host上批量执行任务.完成系统管理任务.它提供一套基本操作在本地和远程执行shell命令,或者上传下载文件,辅助提供用户输入或终止执行. 下面安装fabric模块有2种方法:...

    Python下Fabric的简单部署方法

    主要介绍了Python下Fabric的简单部署方法,Fabric是Python下一个流行的自动化工具,需要的朋友可以参考下

    Python项目自动化多服务器部署的工具

    essay是我们团队在过去两年Python项目持续部署上经验的总结,核心功能是打包和多Server部署。这个工具的主要功能是简化从开发到部署的流程,方便服务器的扩展。除了打包和部署功能之外,essay还提供了其他的工具,在...

    如何利用Fabric自动化你的任务

    大家都知道Fabric是一个Python库,可以通过SSH在多个host上批量执行任务。你可以编写任务脚本,然后通过Fabric...这些功能非常适合应用的自动化部署,或者执行系统管理任务。本文将介绍如何利用Fabric自动化你的任务。

    python三大神器之fabric使用教程

    fabric 是一个python包 是一个基于ssh的部署工具包 通常用来对网站 微服务等等的批量部署 例如 我有5台...它提供了丰富的同 SSH 交互的接口,可以用来在本地或远程机器上自动化、流水化地执行 Shell 命令。 安装Fabric

    基于Python的wiki系统mdwiki-Python.zip

    wiki检索图片管理备份管理标签文章编辑定时独占锁定IP、session两层登录次数等限制及登录验证码通过fabric支持自动化分发部署不开放注册,仅限个人或小团体使用。提供dokuwiki to markdown转换脚本其他目前尚待完善...

    ansible自动化运维实践

    ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能

    ansible自动化运维手册

    ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

    python fabric实现远程操作和部署示例

    近期接手越来越多的东西,发布和运维的工作相当机械,加上频率还蛮高,导致时间浪费还是...直到,发现了fabric可以将自动化部署或者多机操作的命令固化到一个脚本里和某些运维工具很像,用它主要是因为,简单好用易上

    python-deployer:通过SSH自动化部署的库

    在2011年夏天,当我对Fabric的某些功能不满意时,我(Jonathan)从头开始开发新的交互式部署系统。 (Django项目的)第一个成功的部署仅在几个月后完成,但是自那时以来,所有代码都已经重构了好几次。

    基于python web开发的简易订单系统+源代码+文档说明

    * 采用fabric自动化部署 * 采用nose单元测试框架 * 实现了标准规范的log模块 * web.py 设计RestAPI * 采用JQuery 调用WEB API渲染展示 * 采用nginx + gunicorn + web.py + supervisor 部署运行 ### 3. 自动化部署 ...

Global site tag (gtag.js) - Google Analytics