`
zhou.xingbo
  • 浏览: 53035 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

fabric自动部署

阅读更多

Fabric commands

run - run a command on a remote host

sudo - run a sudoed command on a remote host

local - run a command on the local host

get/put - copy a file from/to a remote host

prompt - ask the user for information*

 

Execute commands

get output and return code

output = run("command")

 

chain commands

run("workon project && git pull origin master")

 

start pseudo-daemons

run("screen -d -m not-a-daemon")

 

any return code except() is treated as an error and an exception is

thrown(unless warn_only is set)

 

Move files

Put a file(upload)

put("local-file", "remote-file", mode=0755)

 

Get a file(download):

get("remote-file", "local-file")

 

if a problem occurs while uploading or downloading files, fabric throws an exception

 

Ask questions

Validation

relase_name = prompt("What do you want to name the new release?: ", validate="^[a-zA-Z0-9] + $")

proxy_port_number = prompt("Proxy port: ", validate=int)

 

Default

username = prompt("Username: ", default="jack")

 

Keeping state(sort of)

Directories

with cd("xmpp/"):

 run("git clone git://git/something.git")

 run("mkvirtualenv --no-site-packages somthing")

 

For those running from trunk 

with prefix("workon something"):

 run("pip install xx>=1.1")

 

Contrib

Append text to files

from fabric.contrib.files import append

append(" DATABASE_NAME = 'hello.db' ", "local_settings.py")

 

Search and replace

Use fabric's sed function to modify content of files

from fabric.contrib.files import sed

sed("local_settings.py", "^DEBUG = True$", "DEBUG = False")

 

Fabric decorators

hosts 定义那些host或hosts可以执行

roles 定义一个角色名称的list,用于查看host lists

runs_once 确保方法只运行一次

 

Example

from fabric.api import run

env.hosts = [localhost]

env.user = 'djangodev'

 

def install_django():

 run('workon myproject && pip install diango')

 

$fab install_django

 

ps:

rails的自动部署框架Capistrano

http://gist.github.com/472566

1. 修正bugs和实现新的特征

2. git存档

3. 把文件从开发环境分期移到生产环境

4. 安装更新,重复使用apps,pypi,packages

5. 运行备份

6. 保持跟踪本地设置

7. 清空和预热缓存

8. 迁移数据库

 

推荐

http://www.slideshare.net/


 

分享到:
评论

相关推荐

    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 ...

    fabric环境1.4手动部署.docx

    区块链环境的搭建 第一:了解fabric的搭建流程; 第二:搭建有手动搭建和自动搭建,这里介绍的是手动搭建; 第三:作为fabric环境的入门基础。

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

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

    HyperLedger Fabric1.1部署笔迹(入门篇)

    ### HyperLedger Fabric 1.1 部署详解 #### 一、环境准备与基本要求 HyperLedger Fabric 1.1 的部署首先需要确保系统满足一定的硬件和软件环境需求。具体而言: - **操作系统**:建议使用 Linux 操作系统,并且其...

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

    Python自动化部署工具Fabric是一个强大的用于远程服务器自动化执行任务的库,它基于SSH协议,使得开发者可以用Python语言编写脚本来管理和部署应用程序。Fabric简化了传统SSH命令行工具的操作,提高了效率和可读性。...

    Ganymed实现自动化部署接口

    这个库的主要功能包括安全的远程登录、文件传输、命令执行等,为自动化部署提供了便利。在“Ganymed实现自动化部署接口”这一主题中,我们将深入探讨如何利用Ganymed库来实现这些功能。 1. **SSH2协议介绍**:SSH...

    用 Kubernetes 部署超级账本 Fabric 的区块链

    部署 Fabric 在 Kubernetes 上的优点在于可以利用 Kubernetes 的动态扩展、自我修复和监控功能,确保 Fabric 网络的稳定运行。 #### 1. 环境准备 首先,你需要一个 Kubernetes 集群。你可以使用 Minikube 进行本地...

    自动化部署教程.docx

    下面将从 pexpect 和 Fabric 两个方面对自动化部署进行讲解。 1. pexpect 模块 pexpect 是一个 Python 模块,实现了 Expect 语言的功能,能够启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其...

    devops持续集成自动化部署常用功能

    3. **Python**:Python在自动化部署中也有广泛的应用,它提供了许多强大的库,如Fabric、Ansible和SaltStack,用于远程系统管理、自动化配置和部署。Python脚本可以用来执行复杂逻辑,如动态生成配置文件、自动化...

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

    Fabric 是一个基于 Python 的工具,用于自动化部署和管理远程服务器任务。它允许你编写简单的 Python 函数,这些函数可以在多台主机上执行,极大地简化了命令行操作。这个框架特别适合开发者和运维人员进行批量处理...

    Python-Fabric是一款django2Fabric3python3开源的代码部署工具

    在这个例子中,`deploy`任务会连接到指定的服务器,拉取最新的代码,收集静态文件,迁移数据库,并触发动态Web服务器的重启,实现代码的自动部署。 总结来说,Python Fabric是Python开发者必备的工具之一,它提供了...

    fabric-demo:PyTexas 2015关于Fabric Web部署的演示

    Fabric是Python中一个强大的自动化部署和系统管理工具,它建立在Paramiko库之上,提供了SSH协议的简单封装,使得远程执行命令和传输文件变得异常简便。PyTexas 2015是一个面向Python开发者的重要会议,这次会议中...

    fabric安装

    在自动部署方面,Fabric可以帮助你实现自动化构建、测试和发布流程。你可以定义一系列任务,比如构建应用、运行测试、停止单元、更新代码、重启服务等。这些任务可以按顺序执行,以实现完整的部署过程。 总之,...

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

    ### Fabric在Python自动化运维和部署中的应用 #### Fabric概述 Fabric是一个用Python编写的开源库,主要用于简化系统管理员的任务——实现远程服务器上的自动化部署、管理等操作。它通过SSH协议来与远程服务器交互...

    Fabric-1.8.2.zip

    Fabric是Python中一个强大的自动化部署和系统管理工具,它基于Paramiko库,提供了一种简单易用的SSH接口,使得用户可以通过Python脚本执行远程命令。在这个“Fabric-1.8.2.zip”压缩包中,您将找到Fabric库的1.8.2...

    Fabric Docker:多机多节点部署生产网络

    你可能还需要其他辅助脚本和配置文件来自动化整个部署过程。 总之,Fabric Docker 多机多节点部署生产网络是一项复杂但必要的任务,它涉及到网络架构设计、安全策略设定以及容器化服务的管理。通过合理规划和精心...

    python fabric实现远程部署

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

Global site tag (gtag.js) - Google Analytics