<abbr id="ciwa6"><option id="ciwa6"></option></abbr>
  • <sup id="ciwa6"><kbd id="ciwa6"></kbd></sup>
    <small id="ciwa6"></small>
  • 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

    400-811-9990
    手機站
    千鋒教育

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

    千鋒教育

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

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

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

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當(dāng)前位置:成都千鋒IT培訓(xùn)  >  技術(shù)干貨  >  Python fabric遠(yuǎn)程自動部署簡介

    Python fabric遠(yuǎn)程自動部署簡介

    來源:千鋒教育
    發(fā)布人:xqq
    時間: 2023-11-09 11:23:14

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

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

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

    1.環(huán)境部署

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

    1.1.Python版本升級

    CentOS6.3自帶的Python版本為2.6,首先需要升級到2.7版本。由于舊版本的Python已被深度依賴,所以不能卸載原有的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)建鏈接來使系統(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無法正常運行)

    vi/usr/bin/yum

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

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

    1.2.安裝pip

    Pip是一個安裝和管理python包的工具。

    安裝方法如下:

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

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

    pythonget-pip.py

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

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

    1.3.安裝fabric

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

    pipinstallfabric

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

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

    2.腳本編寫

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

    2.1.Hello,fab

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

    defhello():

    print("Hellofab!")

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

    #fabhello

    Hellofab!

    3.文件名不為fabfile.py時需進(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)行不同操作時,可參考如下腳本

    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)程自動部署簡介,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。http://www.mobiletrain.org/

    聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

    猜你喜歡LIKE

    python delattr函數(shù)如何使用?

    2023-11-10

    python time.strptime的格式化

    2023-11-10

    pythonGIL在Python多線程的應(yīng)用

    2023-11-10

    最新文章NEW

    python中pdb模塊怎么用?

    2023-11-10

    Python如何截圖保存?

    2023-11-10

    python?中缺少module怎么辦?

    2023-11-10

    相關(guān)推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網(wǎng)友熱搜 更多>>