亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Fabric 實踐:local 并發(fā)執(zhí)行

kviccn / 826人閱讀

摘要:環(huán)境服務器目標服務器組一共臺服務器需求我需要把我服務器上的某些文件同步到集群,但是我又需要并發(fā)執(zhí)行,而不是通過循環(huán)或者是串行的方式。

環(huán)境:
fabric 服務器:10.10.1.1
目標服務器組:test.com (10.10.1.2-21)一共 20 臺服務器

需求:

我需要把我 fabric 服務器上的某些文件同步到 test.com 集群,但是我又需要并發(fā)執(zhí)行,而不是通過 for 循環(huán)或者是串行的方式。

先直接上代碼再針對性的解釋:

#!/usr/bin/python env
#-*- coding: utf-8 -*-

from fabric.api import env
from fabric.api import run
from fabric.api import put
from fabric.api import execute
from fabric.api import roles
from fabric.api import parallel
from fabric.api import cd
from fabric.api import lcd
from fabric.api import task
from fabric.api import local
from fabric.api import settings
from fabric.api import hide
from fabric.colors import red ### 使輸出有色彩
from fabric.colors import green

### 下面這個角色在我實際的使用中,我是不需要填寫的,因為我實際使用是從 CMDB 動態(tài)獲取集群的服務器列表的。為了測試,所以弄了下面的

env.user = "test"
env.password = "test"
env.roledefs = {
   "test.com":["10.10.1.2","10.10.1.3","10.10.1.4","10.10.1.5",......],# 省略下,
}


######### reload data and rsync data###########
def rsync_test(host): ### 傳入 host 主機 IP 參數(shù)
    with settings(hide("running","stdout"), warn_only=True): ## hide 是表示不輸入信息到 sreen,可以寫 "everything","stderr","running" 等等
        with lcd("/tmp/"):
           result = local("rsync -Pav test "%s":/tmp/" % host) ### 根據(jù)不同的主機 rsync 到不同的主機服務器
           if result.return_code == 0: ##可以根據(jù)上面數(shù)據(jù)是否成功執(zhí)行下一步操作。
               print (green("-------------------------"))
               print (red("*******主機 %s 同步數(shù)據(jù)成功******" % host))
               print (green("-------------------------"))
           else:
               print (green("-------------------------"))
               print (red("*******主機 %s 同步數(shù)據(jù)失敗******" % host))
               print (green("-------------------------"))

@task
@roles("test.com")
@parallel(pool_size=16)
def execute_rsync():
    execute(rsync_test, env.host) ### 讀取 @roles("test.com") 里面的主機,并把 host 傳遞給 rsync_test 函數(shù),并且 @parallel(pool_size=16) 來并發(fā)


@roles("test.com")
@parallel(pool_size=5)
def echo_hello():
    run("echo "hello world!"")

執(zhí)行任務:

fab execute_rsync

輸出是:

#### 省略抹除了一些信息

同步數(shù)據(jù)成功******
-------------------------

Done.

real    0m1.263s
user    0m0.793s
sys     0m0.689s

如果沒有使用并發(fā)的話,執(zhí)行時間為:

-------------------------

Done.

real    0m3.680s
user    0m0.664s
sys     0m0.512s

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://www.ezyhdfw.cn/yun/37483.html

相關文章

  • SSH連接與自動化部署工具paramiko與Fabric

    摘要:是基于實現(xiàn)的遠程安全連接,支持認證及密鑰方法。利用函數(shù)發(fā)送到,通過函數(shù)獲取回顯。如下全局屬性設定對象的作用是定義的全局設定,支持多個屬性及自定義屬性。相比確實簡化了不少。出現(xiàn)異常時,發(fā)出警告,繼續(xù)執(zhí)行,不要終止。 paramiko paramiko是基于Python實現(xiàn)的SSH2遠程安全連接,支持認證及密鑰方法??梢詫崿F(xiàn)遠程命令執(zhí)行,文件傳輸,中間SSH代理等功能,相對于Pexpect...

    ermaoL 評論0 收藏0
  • Hyperledger Fabric周周記:起源

    摘要:作為系列的新篇章,我選擇從超級賬本的開始。為什么選擇超級賬本作為起點我在之前的文章中曾說過會從超級賬本入手開始區(qū)塊鏈的學習和實踐,同時也給出了個人的理由。檢查事務提議的響應。為了降低區(qū)塊鏈應用的開發(fā)難度,超級賬本項目又引入了。 本著以教帶學,Learning by Doing的想法,我于上周加入了Bob組織的HiBlock區(qū)塊鏈技術布道群。這個群可不太好混,群規(guī)要求每個成員必需每周有輸...

    hatlonely 評論0 收藏0
  • 在Centos6.3安裝Python Fabric運行環(huán)境

    摘要:背景在下安裝的時候,總是安裝不成功,在執(zhí)行命令的時候,總是會拋出錯誤。解決方案安裝替代系統(tǒng)默認的再安裝包系統(tǒng)默認自帶的版本是下載安裝包在的官網(wǎng)下載頁面下載的源碼包。在下安裝就省事很多。附上執(zhí)行簡單部署的一份代碼例子,僅供參考。 背景 在Centos6.3下安裝fabric的時候,總是安裝不成功,在執(zhí)行fab命令的時候,總是會拋出錯誤。 Traceback (most recent ...

    HackerShell 評論0 收藏0
  • 區(qū)塊鏈開發(fā)中使用的最流行的編程語言

    摘要:我們目前正處于一個新興的區(qū)塊鏈開發(fā)行業(yè)中。,一種在以太坊開發(fā)人員中流行的新的簡單編程語言,因為它是用于開發(fā)以太坊智能合約的語言。它是全球至少萬開發(fā)人員使用的世界上最流行的編程語言之一。以太坊,主要是針對工程師使用進行區(qū)塊鏈以太坊開發(fā)的詳解。 我們目前正處于一個新興的區(qū)塊鏈開發(fā)行業(yè)中。區(qū)塊鏈技術處于初期階段,然而這種顛覆性技術已經(jīng)成功地風靡全球,并且最近經(jīng)歷了一場與眾不同的繁榮。由于許多...

    2shou 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<