国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Fabric 實踐:local 并發執行

kviccn / 768人閱讀

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

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

需求:

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

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

#!/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 動態獲取集群的服務器列表的。為了測試,所以弄了下面的

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 參數
    with settings(hide("running","stdout"), warn_only=True): ## hide 是表示不輸入信息到 sreen,可以寫 "everything","stderr","running" 等等
        with lcd("/tmp/"):
           result = local("rsync -Pav test "%s":/tmp/" % host) ### 根據不同的主機 rsync 到不同的主機服務器
           if result.return_code == 0: ##可以根據上面數據是否成功執行下一步操作。
               print (green("-------------------------"))
               print (red("*******主機 %s 同步數據成功******" % host))
               print (green("-------------------------"))
           else:
               print (green("-------------------------"))
               print (red("*******主機 %s 同步數據失敗******" % 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 函數,并且 @parallel(pool_size=16) 來并發


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

執行任務:

fab execute_rsync

輸出是:

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

同步數據成功******
-------------------------

Done.

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

如果沒有使用并發的話,執行時間為:

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

Done.

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

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

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37483.html

相關文章

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

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

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

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

    hatlonely 評論0 收藏0
  • 在Centos6.3安裝Python Fabric運行環境

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

    HackerShell 評論0 收藏0
  • 區塊鏈開發中使用的最流行的編程語言

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

    2shou 評論0 收藏0

發表評論

0條評論

kviccn

|高級講師

TA的文章

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