Python fabric远程自动部署简介
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/
猜你喜欢LIKE
相关推荐HOT
python gensim库是什么?
pythongensim库是什么?gensim库在文本监控里,首先在稳定上,坚如磐石,不用担心稳定性问题,其次,时效性很强,执行能力很快,经常在最重要的...详情>>
2023-11-06 21:48:19python中getattr()是什么?
python中getattr()是什么?本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、getattr()用来获取对象中的属性值;获取对象object的属...详情>>
2023-11-06 21:41:07python标识符如何使用?
python标识符如何使用?为了给编程中函数、类等进行区分,会赋予它们不同的名称。我们把这种命名叫做标识符,也可以理解为符号的标记。当然这种...详情>>
2023-11-06 21:33:55Python IDE之Thonny的介绍
pythonIDE之Thonny的介绍今天要介绍的IDE,可能没用过,甚至可能没听说过。叫Thonny,是塔尔图大学开发的,适合程序员新手。它的界面很容易使用...详情>>
2023-11-06 20:54:19热门推荐
如何使用python中的help函数?
沸如何使用python的callable函数?
热python gensim库是什么?
热python中xluntils库是什么?
新python中getattr()是什么?
python中的win32com库是什么?
python标识符如何使用?
如何使用python中schedule模块?
python中ruamel.yaml模块是什么?
defaultdict在python中计算键值的和
python sleep和wait对比分析
python中字符串转成数字的几种方法
python中SocketServer是什么?
python中如何使用@contextmanage?