百科狗-知识改变命运!
--

Python fabric远程自动部署简介

百变鹏仔1年前 (2023-11-21)阅读数 11#技术干货
文章标签命令

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.创建连接(否则会报错提示“命令不存在”)

Python fabric远程自动部署简介

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.baikegou.com/

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)