fabric部署详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fabric部署详解相关的知识,希望对你有一定的参考价值。

安装fabric

pip install fabric

ln -s /usr/local/python2.7/bin/fab /usr/bin/fab  #创建软连接(创建fab为环境变量,如果python安装目录没有自定义,就无需此次操作)

测试

本地:rs1

远程 : rs2,ip:192.168.11.190;rs3,ip:192.168.11.20

一、基本用法(fab -l 查看可用的命令)

1.vim fabfile.py

技术分享
技术分享
def hello():
    print("Hello fab!")

 

 [[email protected] tmp]# fab hello
Hello fab!


Done.
技术分享

2.文件名不为fabfile.py时需进行指定

技术分享
技术分享
mv fabfile.py test.py
[[email protected] tmp]# fab hello
Fatal error: Couldn‘t find any fabfiles!
Remember that -f can be used to specify fabfile path, and use -h for help.
Aborting.
[[email protected] tmp]# fab -f test.py hello
Hello fab!

Done.
[[email protected] tmp]# fab hello -f test.py
Hello fab!

Done.
技术分享

3.参数传递

技术分享
def hello(name):
    print ‘Hello %s!‘%name
技术分享
技术分享
[[email protected] tmp]# fab hello:name=hy
Hello hy!

Done.
[[email protected] tmp]# fab hello:hy
Hello hy!

Done.
技术分享

 二、本地操作  local

vim fabfile.py  

技术分享
from fabric.api import local

def test():
    local(‘uname -a‘)

fab test

技术分享
[localhost] local: uname -a
Linux rs1 2.6.32-504.el6.i686 #1 SMP Wed Oct 15 03:02:07 UTC 2014 i686 i686 i386 GNU/Linux

Done.

 三、远程操作  run

 1.要执行的命令在脚本里

vim fabfile.py  

技术分享
from fabric.api import run

def test():
    run(‘uname -a‘)

fab test

技术分享
技术分享
[[email protected]] Executing task ‘test‘
[[email protected]] run: uname -a
[[email protected]] Login password for ‘root‘: 
[[email protected]] out: Linux rs2 2.6.32-504.el6.i686 #1 SMP Wed Oct 15 03:02:07 UTC 2014 i686 i686 i386 GNU/Linux
[[email protected]] out: 


Done.
Disconnecting from 192.168.11.190... done.
技术分享

2.自己传要执行哪些命令

技术分享
from fabric.api import run

def test(command):
           run(command)

fab test:‘uname -a‘ -H [email protected]

技术分享 View Code

 3.执行时省略-H。host放在脚本里

技术分享 View Code

fab test:‘uname -a‘

技术分享 View Code

 4.host、密码放在脚本里,执行时不用指定

技术分享 View Code

fab test:‘uname -a‘

技术分享 View Code

多台服务器

同种操作

fab test:‘uname -a

技术分享 View Code
技术分享 View Code

多种操作

1
2
3
4
5
[[email protected] tmp]# fab -l
Available commands:
 
    test
    test1
技术分享 View Code

fab test:‘uname -a‘

技术分享 View Code

fab test1:‘uname -a‘

技术分享
技术分享
[[email protected]:22] Executing task ‘test1‘
[[email protected]:22] run: uname -a
[[email protected]:22] out: Linux rs3 2.6.32-504.el6.i686 #1 SMP Wed Oct 15 03:02:07 UTC 2014 i686 i686 i386 GNU/Linux
[[email protected]:22] out: 

servergroup2执行完毕,请指示

Done.
Disconnecting from 192.168.11.20... done.

以上是关于fabric部署详解的主要内容,如果未能解决你的问题,请参考以下文章

fabric实战指南二Fabric v1.0 部署过程原理详解

fabric实战指南二Fabric v1.0 部署过程原理详解

Hyperledger Fabric架构详解

python Fabric使用详解及示例

Python3自动化运维之Fabric模版详解

Tungsten Fabric架构解析丨详解vRouter体系结构