久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > Python fabric遠(yuǎn)程自動(dòng)部署簡(jiǎn)介

Python fabric遠(yuǎn)程自動(dòng)部署簡(jiǎn)介

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-07 10:08:45 1699322925

Fabric是一個(gè)Python(2.5-2.7)庫(kù),用于簡(jiǎn)化使用SSH的應(yīng)用程序部署或系統(tǒng)管理任務(wù)。

它提供的操作包括:執(zhí)行本地或遠(yuǎn)程shell命令,上傳/下載文件,以及其他輔助功能,如提示用戶(hù)輸入、中止執(zhí)行等。

本文主要介紹CentOS6.3上使用fabric進(jìn)行自動(dòng)部署的基本方法。

1.環(huán)境部署

本節(jié)主要介紹python版本升級(jí),pip及fabric部署方法。

1.1.Python版本升級(jí)

CentOS6.3自帶的Python版本為2.6,首先需要升級(jí)到2.7版本。由于舊版本的Python已被深度依賴(lài),所以不能卸載原有的Python,只能全新安裝。

1.下載Pyhon,選擇下載Gzippedsourcetarball(2.7.6)(sig),網(wǎng)址: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.創(chuàng)建鏈接來(lái)使系統(tǒng)默認(rèn)python變?yōu)閜ython2.7

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

4.查看Python版本

python–V

5.修改yum配置(否則yum無(wú)法正常運(yùn)行)

vi/usr/bin/yum

將第一行的#!/usr/bin/python修改為系統(tǒng)原有的python版本地址#!/usr/bin/python2.6

至此CentOS6.3系統(tǒng)Python已成功升級(jí)至2.7.6版本。

1.2.安裝pip

Pip是一個(gè)安裝和管理python包的工具。

安裝方法如下:

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

2.執(zhí)行安裝命令

pythonget-pip.py

3.創(chuàng)建連接(否則會(huì)報(bào)錯(cuò)提示“命令不存在”)

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

1.3.安裝fabric

1.執(zhí)行安裝命令

pipinstallfabric

2.創(chuàng)建連接(否則會(huì)報(bào)錯(cuò)提示“命令不存在”)

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

2.腳本編寫(xiě)

本節(jié)對(duì)fabric用法進(jìn)行簡(jiǎn)單介紹,并提供實(shí)例以供參考。

2.1.Hello,fab

1.在當(dāng)前目錄下新建文件fabfile.py,輸入內(nèi)容如下

defhello():

print("Hellofab!")

2.執(zhí)行命令fabhello,結(jié)果如下

#fabhello

Hellofab!

3.文件名不為fabfile.py時(shí)需進(jìn)行指定

#mvfabfile.pytest.py

#fabhello

Fatalerror:Couldn'tfindanyfabfiles!

Rememberthat-fcanbeusedtospecifyfabfilepath,anduse-hforhelp.

#fab-ftest.pyhello

Hellofab!

4.參數(shù)傳遞

#vifabfile.py

defhello(name):

print'Hello%s!'%name

#fabhello:name=fab

Hellofab!

#fabhello:fab

Hellofab!

2.2.本地操作

執(zhí)行本地操作命令使用local

1.fabfile.py腳本內(nèi)容如下

fromfabric.apiimportlocal

deftest():

local('cd/home/')

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

2.執(zhí)行命令fabtest,結(jié)果如下

#fabtest

[localhost]local:cd/home/

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

2.3.遠(yuǎn)程操作

執(zhí)行遠(yuǎn)程操作命令使用run

1.fabfile.py腳本內(nèi)容如下

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.執(zhí)行命令fabtest,結(jié)果如下

#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.多服務(wù)器混合,需要在不同服務(wù)器進(jìn)行不同操作時(shí),可參考如下腳本

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)

結(jié)果如下

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

以上內(nèi)容為大家介紹了Pythonfabric遠(yuǎn)程自動(dòng)部署簡(jiǎn)介,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://m.2667701.com/

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專(zhuān)屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
Python之map、reduce和filter

今天給大家介紹的是Python當(dāng)中三個(gè)非常神奇的方法:map、reduce和filter。不知道大家看到map和reduce的時(shí)候有沒(méi)有什么感覺(jué),如果看過(guò)之前我們大...詳情>>

2023-11-07 13:01:34
Python工具庫(kù)之collections

collection在英文當(dāng)中有容器的意思,所以顧名思義,這是一個(gè)容器的集合。這個(gè)庫(kù)當(dāng)中的容器很多,有一些不是很常用,本篇文章選擇了其中最常用的...詳情>>

2023-11-07 12:54:22
Python中heapq與優(yōu)先隊(duì)列

今天的文章來(lái)介紹Python當(dāng)中一個(gè)蠻有用的庫(kù)——heapq。heapq的全寫(xiě)是heapqueue,是堆隊(duì)列的意思。這里的堆和隊(duì)列都是數(shù)據(jù)結(jié)構(gòu),在后序的文章當(dāng)...詳情>>

2023-11-07 12:25:33
python閉包的定義

如果在一個(gè)內(nèi)部函數(shù)中,引用了外部非全局作用域中的變量,那么這個(gè)內(nèi)部函數(shù)就被認(rèn)為是閉包(closure)。在一些語(yǔ)言中,在函數(shù)中可以(嵌套)定義另...詳情>>

2023-11-07 11:53:09
Python中可以hash的數(shù)據(jù)類(lèi)型

在Python中,僅僅只有不可變數(shù)據(jù)類(lèi)型可以被hash,然而每個(gè)自定義的對(duì)象在Python中都可以被hash,默認(rèn)的他們的hash值是由他們的id派生的。也就意...詳情>>

2023-11-07 11:49:33