全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货  >  Python技术干货  >  详情

Python fabric远程自动部署简介

来源:千锋教育
发布人:xqq
2023-11-05

推荐

在线提问>>

Fabric是一个Python(2.5-2.7)库,用于简化使用SSH的应用程序部署或系统管理任务。

它提供的操作包括:执行本地或远程shell命令,上传/下载文件,以及其他辅助功能,如提示用户输入、中止执行等。

本文主要介绍CentOS6.3上使用fabric进行自动部署的基本方法。

1.环境部署

本节主要介绍python版本升级,pip及fabric部署方法。

1.1.Python版本升级

CentOS6.3自带的Python版本为2.6,首先需要升级到2.7版本。由于旧版本的Python已被深度依赖,所以不能卸载原有的Python,只能全新安装。

1.下载Pyhon,选择下载Gzippedsourcetarball(2.7.6)(sig),网址:https://www.python.org/download/releases/2.7.6

2.解压安装,命令如下

tar-xvfPython-2.7.6.tgz

cdPython-2.7.6

./configure--prefix=/usr/local/python2.7

make

makeinstall

3.创建链接来使系统默认python变为python2.7

ln-fs/usr/local/python2.7/bin/python2.7/usr/bin/python

4.查看Python版本

python–V

5.修改yum配置(否则yum无法正常运行)

vi/usr/bin/yum

将第一行的#!/usr/bin/python修改为系统原有的python版本地址#!/usr/bin/python2.6

至此CentOS6.3系统Python已成功升级至2.7.6版本。

1.2.安装pip

Pip是一个安装和管理python包的工具。

安装方法如下:

1.下载pip,地址https://raw.github.com/pypa/pip/master/contrib/get-pip.py

2.执行安装命令

pythonget-pip.py

3.创建连接(否则会报错提示“命令不存在”)

ln-s/usr/local/python2.7/bin/pip/usr/bin/pip

1.3.安装fabric

1.执行安装命令

pipinstallfabric

2.创建连接(否则会报错提示“命令不存在”)

ln-s/usr/local/python2.7/bin/fab/usr/bin/fab

2.脚本编写

本节对fabric用法进行简单介绍,并提供实例以供参考。

2.1.Hello,fab

1.在当前目录下新建文件fabfile.py,输入内容如下

defhello():

print("Hellofab!")

2.执行命令fabhello,结果如下

#fabhello

Hellofab!

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

#mvfabfile.pytest.py

#fabhello

Fatalerror:Couldn'tfindanyfabfiles!

Rememberthat-fcanbeusedtospecifyfabfilepath,anduse-hforhelp.

#fab-ftest.pyhello

Hellofab!

4.参数传递

#vifabfile.py

defhello(name):

print'Hello%s!'%name

#fabhello:name=fab

Hellofab!

#fabhello:fab

Hellofab!

2.2.本地操作

执行本地操作命令使用local

1.fabfile.py脚本内容如下

fromfabric.apiimportlocal

deftest():

local('cd/home/')

local('ls-l|wc-l')

2.执行命令fabtest,结果如下

#fabtest

[localhost]local:cd/home/

[localhost]local:ls-l|wc-l

2.3.远程操作

执行远程操作命令使用run

1.fabfile.py脚本内容如下

fromfabric.apiimportcd,run,env,hosts

env.hosts=['192.168.85.99:22','192.168.85.101:22']

env.password='test'

deftest():

withcd('/home'):

run("du-sh")

2.执行命令fabtest,结果如下

#fabtest

[192.168.85.99:22]Executingtask'test'

[192.168.85.99:22]run:du-sh

[192.168.85.99:22]out:392G.

[192.168.85.99:22]out:

[192.168.85.101:22]Executingtask'test'

[192.168.85.101:22]run:du-sh

[192.168.85.101:22]out:5.6G.

[192.168.85.101:22]out:

Disconnectingfrom192.168.85.99...done.

Disconnectingfrom192.168.85.101...done.

3.多服务器混合,需要在不同服务器进行不同操作时,可参考如下脚本

fromfabric.apiimportenv,roles,run,execute

env.roledefs={

'server1':['root@192.168.85.99:22',],

'server2':['root@192.168.85.100:22',]

}

env.password='test'

@roles('server1')

deftask1():

run('ls/home/-l|wc-l')

@roles('server2')

deftask2():

run('du-sh/home')

deftest():

execute(task1)

execute(task2)

结果如下

#fabtest

[root@192.168.85.99:22]Executingtask'task1'

[root@192.168.85.99:22]run:ls/home/-l|wc-l

[root@192.168.85.99:22]out:27

[root@192.168.85.99:22]out:

[root@192.168.85.100:22]Executingtask'task2'

[root@192.168.85.100:22]run:du-sh/home

[root@192.168.85.100:22]out:1.4G/home

[root@192.168.85.100:22]out:

Disconnectingfrom192.168.85.99...done.

Disconnectingfrom192.168.85.100...done.

以上内容为大家介绍了Pythonfabric远程自动部署简介,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。http://www.mobiletrain.org/

相关文章

如何使用python中的help函数?

如何使用python的callable函数?

python gensim库是什么?

python中xluntils库是什么?

python中getattr()是什么?

开班信息 更多>>

课程名称
全部学科
咨询

HTML5大前端

Java分布式开发

Python数据分析

Linux运维+云计算

全栈软件测试

大数据+数据智能

智能物联网+嵌入式

网络安全

全链路UI/UE设计

Unity游戏开发

新媒体短视频直播电商

影视剪辑包装

游戏原画

    在线咨询 免费试学 教程领取