<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        如何利用Fabric自動(dòng)化你的任務(wù)

        來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 14:27:38
        文檔

        如何利用Fabric自動(dòng)化你的任務(wù)

        如何利用Fabric自動(dòng)化你的任務(wù):首先讓我們首先看一個(gè)例子。我們知道在*NIX下面,uname命令是查看系統(tǒng)的發(fā)行版。 可以寫這樣一個(gè)Fabric腳本: from fabric.api import run def host_type(): run('uname -s') 將上面的腳本保存為fabfile.py,就可以通過(guò)fab命令在多個(gè)主機(jī)
        推薦度:
        導(dǎo)讀如何利用Fabric自動(dòng)化你的任務(wù):首先讓我們首先看一個(gè)例子。我們知道在*NIX下面,uname命令是查看系統(tǒng)的發(fā)行版。 可以寫這樣一個(gè)Fabric腳本: from fabric.api import run def host_type(): run('uname -s') 將上面的腳本保存為fabfile.py,就可以通過(guò)fab命令在多個(gè)主機(jī)

        首先讓我們首先看一個(gè)例子。我們知道在*NIX下面,uname命令是查看系統(tǒng)的發(fā)行版。

        可以寫這樣一個(gè)Fabric腳本:

        from fabric.api import run
        def host_type():
         run('uname -s')

        將上面的腳本保存為fabfile.py,就可以通過(guò)fab命令在多個(gè)主機(jī)上執(zhí)行host_type腳本了:

        $ fab -H localhost,linuxbox host_type
        [localhost] run: uname -s
        [localhost] out: Darwin
        [linuxbox] run: uname -s
        [linuxbox] out: Linux

        執(zhí)行過(guò)程中可能需要你輸入系統(tǒng)密碼。

        安裝

        如果你看到這里了,說(shuō)明你開(kāi)始對(duì)Fabric感興趣了。但是上述操作在你那里無(wú)法執(zhí)行,因?yàn)槟氵€沒(méi)有安裝Fabric。安裝Fabric很簡(jiǎn)單,可以用pip或者easy_install,也可以下載原代碼安裝。

        任務(wù)函數(shù)

        很好,安裝Fabric并沒(méi)有難住你。可能你已經(jīng)成功的執(zhí)行了前面的任務(wù),現(xiàn)在讓我們更深入一些。

        Fabric中的任務(wù)就是一個(gè)python函數(shù),姑且讓我們稱之為“任務(wù)函數(shù)”。既然是python函數(shù),那么對(duì)函數(shù)的一些用法也適用于任務(wù)函數(shù)。比如傳遞參數(shù)、互相調(diào)用、返回值等等。

        首先看一個(gè)傳遞參數(shù)的例子:

        def hello(name="world"):
         print("Hello %s!" % name)

        在執(zhí)行任務(wù)的時(shí)候,可以通過(guò)fab的命令行參數(shù)為任務(wù)函數(shù)傳遞參數(shù):

        $ fab hello:name=Holbrook
        Hello Holbrook!

        組合任務(wù)的例子如下:

        from fabric.api import run
        def host_type():
         run('uname -s')
        
        def hello(name="world"):
         print("Hello %s!" % name)
        
        def composite(name="world"):
         hello(name)
         host_type()

        Fabric提供的命令

        前面我們見(jiàn)過(guò)了fabric.api模塊中的run函數(shù),其功能是在遠(yuǎn)端主機(jī)上執(zhí)行命令。fabric.api中還提供了local函數(shù),用于執(zhí)行本地(Fabric所在的主機(jī))命令。

        如下:

        from fabric.api import local
        def lslocal():
         local('ls')

        類似遠(yuǎn)端命令和本地命令,F(xiàn)abric也區(qū)分遠(yuǎn)端目錄和本地目錄。Fabric提供的對(duì)遠(yuǎn)端和本地目錄的操作分別是cd和lcd。如果你用過(guò)命令行的ftp,這很容易理解。

        讓我們看一個(gè)例子:

        def filepath():
         remote_dir = '/opt/xxx'
         with cd(remote_dir):
         run("touch README")

        上面代碼的功能是進(jìn)入遠(yuǎn)端的/opt/xxx目錄,并創(chuàng)建一個(gè)README文件。

        Fabric還提供了很多的命令,比如文件操作等。

        管理服務(wù)器連接

        前面的例子中,都需要在fab命令行參數(shù)中指定server。當(dāng)要管理大量服務(wù)器時(shí)很麻煩。Fabric提供了環(huán)境變量的字典env,其中就包含了hosts字典項(xiàng),可以定義需要連接的server。

        如下:

        from fabric.api import env, run
        
        env.hosts = ['host1', 'host2']
        def mytask():
         run('ls /var/www')

        也可以為每個(gè)任務(wù)單獨(dú)指定要執(zhí)行該任務(wù)的host列表:

        from fabric.api import env, run
        
        def set_hosts():
         env.hosts = ['host1', 'host2']
        
        def mytask():
         run('ls /var/www')

        這樣執(zhí)行 fab set_hosts mytask時(shí),就可以為set_hosts中指定的兩個(gè)host執(zhí)行mytask任務(wù)了。如果你懶得寫函數(shù),在fab命令行中指定也是一樣的:

        fab mytask:hosts="host1;host2"

        為了更方便的執(zhí)行批量任務(wù),F(xiàn)abric中還定義了Role,有興趣可以閱讀其官方文檔。

        管理SSH密碼、用戶、端口

        盡管更推薦使用SSH公鑰認(rèn)證,但是Fabric還是提供了管理密碼的機(jī)制。Fabric提供了兩層密碼。

        如果你的server有相同的密碼,可以在env.password中設(shè)置默認(rèn)的密碼;如果server密碼不同,還可以在env.passwords中設(shè)置(host,password)對(duì),為每個(gè)server設(shè)置單獨(dú)的ssh密碼。

        上面的host字符串采用這種格式:username@hostname:port。所以,在指定ssh密碼的同時(shí),也就指定了ssh用戶。同密碼一樣,你也可以在env.user中指定一個(gè)默認(rèn)的用戶。如果都沒(méi)有指定,執(zhí)行fab命令時(shí)會(huì)提示你輸入密碼。

        使用Fabric,你可以管理一系列host的SSH連接(包括主機(jī)名,用戶,密碼),定義一系列的任務(wù)函數(shù),然后靈活的指定在哪些host上執(zhí)行哪些任務(wù)。這非常使用于需要管理大量host的場(chǎng)景,比如運(yùn)維,私有云管理,應(yīng)用自動(dòng)化部署等。

        總結(jié)

        本文只是一篇入門文檔,遠(yuǎn)沒(méi)有體現(xiàn)出Fabric的強(qiáng)大。實(shí)際上,F(xiàn)abric還包括大量的功能,比如Role的定義,遠(yuǎn)程交互及異常處理,并發(fā)執(zhí)行,文件操作等,并且不僅僅局限于命令行方式,可以在你的應(yīng)用中調(diào)用Fabric。

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        如何利用Fabric自動(dòng)化你的任務(wù)

        如何利用Fabric自動(dòng)化你的任務(wù):首先讓我們首先看一個(gè)例子。我們知道在*NIX下面,uname命令是查看系統(tǒng)的發(fā)行版。 可以寫這樣一個(gè)Fabric腳本: from fabric.api import run def host_type(): run('uname -s') 將上面的腳本保存為fabfile.py,就可以通過(guò)fab命令在多個(gè)主機(jī)
        推薦度:
        標(biāo)簽: 自動(dòng) 如何 任務(wù)
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲无人区午夜福利码高清完整版 | 毛片在线播放免费观看| 久久久久亚洲爆乳少妇无 | 一级女性全黄久久生活片免费| 国产精品成人免费综合| 久久精品国产亚洲AV未满十八| 国产大片91精品免费观看男同| 国产天堂亚洲精品| 亚洲国产高清在线一区二区三区| 污视频网站在线观看免费| 国产成人精品日本亚洲专区| 中文字幕无码免费久久9一区9| 亚洲精品高清无码视频| 青青草无码免费一二三区| 亚洲制服丝袜在线播放| 成人免费无遮挡无码黄漫视频| 欧美日韩亚洲精品| 亚洲毛片不卡av在线播放一区| 本免费AV无码专区一区| 久久久久久亚洲精品| 91成人免费观看网站| 亚洲AV无码一区二区三区性色| 亚洲精品亚洲人成在线观看下载| 免费看成人AA片无码视频吃奶| 亚洲AV日韩AV鸥美在线观看| 免费大片黄在线观看yw| 99亚洲精品卡2卡三卡4卡2卡| 亚洲国产日韩成人综合天堂| 久久国产免费观看精品| 亚洲免费在线视频播放| 亚洲 自拍 另类小说综合图区| 免费看少妇高潮成人片| 亚洲日韩国产一区二区三区在线| 亚洲AV蜜桃永久无码精品| 免费在线看黄网站| 亚洲中文字幕乱码AV波多JI| 久久久久亚洲AV综合波多野结衣 | 四虎影视精品永久免费网站| 99免费精品视频| 国内精品久久久久影院亚洲| 国产亚洲日韩一区二区三区|