真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Fabric的使用-創(chuàng)新互聯(lián)

一.初識(shí):

成都創(chuàng)新互聯(lián)公司長(zhǎng)期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為巫山企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),巫山網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

Fabric是python下的一個(gè)庫(kù),是可通過(guò)ssh批量管理多臺(tái)主機(jī)的一種方式。不需要在遠(yuǎn)程主機(jī)上安裝客戶端,這點(diǎn)跟Ansible挺像,在使用上也感覺(jué)更方便,會(huì)python語(yǔ)言就沒(méi)其它的問(wèn)題了。

二.安裝(centos):

1.通過(guò)包管理器: yum install python-pip

        pip install fabric

這種方式很快捷,在源碼安裝會(huì)碰到的許多依賴問(wèn)題,都可以快速過(guò)。

2.通過(guò)下源碼包,編譯安裝(好處是可以自定義文件目錄了,這種方式的話可以python也一并重新裝了,系統(tǒng)自帶的往往較舊了)

I:下載python壓縮包解壓進(jìn)入相應(yīng)目錄執(zhí)行:

./configure --prefix=/data/soft/python2

make

make install

mv /usr/bin/python /usr/bin/python_old

ln -s /data/soft/python2/bin/python /usr/bin/python

II:安裝setuptools工具 : 進(jìn)入解壓后的文件目錄,執(zhí)行 :  python setup.py install

III:安裝pip: 進(jìn)入pip包解壓后的文件目錄:執(zhí)行 python setup.py build & python setup.py instll

IV:安裝fabric: pip install fabric

三.Fabric 語(yǔ)法

  1. 常用選項(xiàng)參數(shù):

    -l:顯示定義好的任務(wù)函數(shù)名稱

    -f:指定fab入口文件,默認(rèn)文件名為fabfile.py(即與fabfile.py 在同級(jí)目錄下,可直接省略-f選項(xiàng))

    -g:指定網(wǎng)關(guān)

    -H:指定主機(jī)名,多主機(jī)使用逗號(hào)隔開(kāi)

    -P:以異步并行方式運(yùn)行多主機(jī)任務(wù),缺省情況下同步運(yùn)行;

    -R:指定role以角色區(qū)分不同業(yè)務(wù)組設(shè)備;

    -t:設(shè)置主機(jī)連接TimeOut時(shí)間(Second);

    -T:設(shè)置遠(yuǎn)程主機(jī)命令執(zhí)行Timeout時(shí)間

    -w:當(dāng)命令執(zhí)行失敗,發(fā)出街區(qū),而非默認(rèn)中止命令。

    -p:連接主機(jī)的密碼

2.幾個(gè)關(guān)鍵全局屬性:

env.host:定義目標(biāo)主機(jī),以Python列表的形式定義,如env.host=['host01', 'host02']

env.exclude_hosts:排隊(duì)指定主機(jī)

env.user:定義遠(yuǎn)程用戶名

env.port:定義遠(yuǎn)程端口

env.password:定義遠(yuǎn)程密碼

env.passwords:與上功能一致,區(qū)別在于不同主機(jī)不同密碼的應(yīng)用場(chǎng)景,需要注意的是,配置passwords時(shí)需要配置用戶、主機(jī)、端口等信息,如:

env.passwords = {

  'root@host01:22' : 'cccid'

  'root@host02:22' : 'aabcd'

}

env.gateway:定義網(wǎng)關(guān)(中轉(zhuǎn)、堡壘機(jī))IP,如env.gateway='192.168.19.21'

env.deploy_release_dir:自定義全局變量,格式:env.+variable_name,如:env.deploy_release_dir、env.age、env.sex等

env.roledefs:定義角色分組,如web組與DB組區(qū)別出來(lái):

env.roledefs = {

   'webservers' : ['192.168.1.24', '192.168.1.27']

   'dbservers' : ['192.168.2.24', '192.168.2.25']

}

3.重要接口:

I:run  用來(lái)在一臺(tái)或者多臺(tái)遠(yuǎn)程主機(jī)上面執(zhí)行shell 命令。

使用方式如: run('ls /data')

II:local  執(zhí)行本機(jī)的命令或腳本

使用方式如:local(‘ifconfig')

III: get  從遠(yuǎn)程主機(jī)拷貝文件到本地

get下有兩個(gè)屬性:

remote_path ; local_path

使用方式如:get(remote_path="/tmp/xxx.log", local_path="/tmp/xxx.log")  其中的remote_pat 與 local_path 可以省略。

IV:  put  從本地傳文件到遠(yuǎn)程主機(jī)

put下有三個(gè)屬性:

remote_path ; local_path;mode

使用方式:如:upload = put("requirements.txt", "requirements.txt", mode=664)

注:屬性名均可省略不寫(xiě)

V: sudo   執(zhí)行遠(yuǎn)程主機(jī)烏版圖下 的sudo命令

VI:cd  執(zhí)行遠(yuǎn)程主機(jī)的切換目錄命令

使用方式如:  cd('/data')

使用方式如: sudo ('cat /etc/passwd')

VII: lcd  執(zhí)行本地切換目錄的命令

使用方式如:lcd('/tmp')

4.官方文檔下的簡(jiǎn)易例子:

官網(wǎng)提供了一個(gè)簡(jiǎn)單的例子:

# vi fabfile.py

#!/usr/bin/env python

from fabric.api import run

def host_type():

  run('uname -s')

執(zhí)行方式:  fab -H 192.168.198.202  host_type

fab 命令缺省情況下引用當(dāng)前目錄下的fabfile.py,若非此文件名,須加上-f參數(shù)

5. fabric 的API的所有模塊:

from fabric.api import abort, cd, env, get, hide, hosts, local, prompt,

  put, require, roles, run, runs_once, settings, show, sudo, warn

四.附加例子-文件上傳,多主機(jī)批量執(zhí)行命令與腳本

#! /usr/bin/env python

from fabric.api import env,roles,run,execute,cd,put

## 也可以 from fabric.api import *  這樣省事便捷

env.roledefs={

    'server1':['root@119.29.93.15:22',],

    'server2':['root@119.29.21.85:22',]

}

env.passwords={

    'root@119.29.93.15:22':'*******' ,

    'root@119.29.21.85:22':'********'

}

def sendfile():

    put('/data/wyh/test/haha.sh','/data')

@roles('server1')

def task1():

    run ('ls /data -l |wc -l')

    with cd('/data'):

        run ('ls ')

        sendfile()

        run('/bin/sh haha.sh')

@roles('server2')

def task2():

    run('df -lh')

    with cd('/data'):

        run('ls ')

        sendfile()

        run('/bin/sh haha.sh')

def test():

    execute(task1)

    execute(task2)

執(zhí)行方式:fab test

備注:腳本文件名為fabfile.py 執(zhí)行的時(shí)候,應(yīng)先進(jìn)入腳本所在目錄。或者加參數(shù) -f 指定其他腳本文件。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


網(wǎng)站標(biāo)題:Fabric的使用-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://weahome.cn/article/cecgeh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部