fabric挖礦命令
『壹』 華為交換機理有個配置是 undo irf-fabric authentication-mode
1,在沒有開啟Fabric埠的情況下,不能更改本地交換機的Unit ID。
在設備的Unit ID修改後,Fabric的配置文件中關於該設備的配置將自動更新編號信息,例如在將Unit ID由2變更為4之後,配置文件中該設備的埠將自動由「2/0/x」修改為「4/0/x」,而無需用戶手工更新配置。
2,Quidway S3900系列交換機提供了IRF自動堆疊功能,可以在候選交換機與Fabric中現有設備的軟體版本和Fabric name不同的情況下,使候選交換機自動完成軟體下載和Fabric name的修改工作,減少手工維護的工作量.
3,
irf-fabric authentication-mode命令用來配置IRF Fabric的認證模式及認證密碼。undo irf-fabric authentication-mode命令用來取消IRF Fabric認證的相關配置。 預設情況下,交換機上沒有配置認證模式。
IRF Fabric的認證功能主要用於保證接入Fabric的設備的安全性,只有配置了相同認證模式和認證密碼的授權設備才能夠接入現有Fabric。
『貳』 關於fabric 並行執行任務求助
上篇筆記介紹了Fabric的概念、支持的元操作及task的定義方法,本篇筆記旨在說明如何在多台目標機器上正確地執行tasks以實現遠程自動部署或運維。特別地,文中會說明如何配置fabric task以便遠程執行命令時不會彈出密碼輸入提示。
1. Fabric的任務運行規則
根據Fabric Execution model的說明,fabric默認以串列方式運行tasks,具體而言:
1)在fabfile及其import文件中定義的task對象依次被創建(只是創建對象,並未真正執行),任務之間保持其定義的先後順序。
2)對於每個task,生成將要運行該task的目標機器列表。
3)fab執行tasks時,按任務被指定的順序依次執行這些任務;針對每個任務,依次在其指定的目標機器運行且只運行一次。
4)未指定目標機器的task被當作本地任務運行,且只會被運行一次。
假設在fabfile.py中定義了如下tasks:
from fabric.api import run, envenv.hosts = ['host1', 'host2']def taskA(): run('ls')def taskB(): run('whoami')
在終端運行fab –list時,我們會看到taskA和taskB兩個任務,運行之:
$ fab taskA taskB
結果示例如下:
taskA executed on host1taskA executed on host2taskB executed on host1taskB executed on host2
通過上面的實例,大家應該可以明白fabric默認的串列執行策略是怎麼回事。
Fabric還允許我們指定以並行方式(藉助multiprocessing模塊實現多個進程並行執行)在多台機器上並行地運行任務,甚至還可在同一個fabfile文件中指定某些task以並行方式運行,而某些task以默認的串列方式運行。具體地,可以藉助@parallel或@serial指定任務的運行模式,還可以在命令行中通過-P參數指定任務是否要並性執行。示例如下:
from fabric.api import *@paralleldef runs_in_parallel(): passdef runs_serially(): pass
當運行如下命令時:
$ fab -H host1,host2,host3 runs_in_parallel runs_serially
執行結果示例如下:
runs_in_parallel on host1, host2, and host3runs_serially on host1runs_serially on host2runs_serially on host3
此外,還可以通過對@parallel傳入pool_size參數來控制並行進程數以防並行進程太多把機器拖垮。
2. 為task指定目標機器
有多種方式可以指定任務的將要運行的目標機器,下面分別進行說明。
1)通過env.hosts或env.roles進行全局指定
Fabric的env模塊中定義了一系列全局變數,可以將其理解為可以控制fabric行為的環境變數。其中env.hosts和env.roles可以用來全局指定task的目標機器列表,這兩個「環境變數」的默認值都是空列表[]。
env.hosts的元素是fabric約定的」host strings」,每個host strings由username@hostname:port三部分構成,其中username和port部分可以預設。本篇筆記前面的第1個代碼實例其實已經說明了如何用env.hosts全局地指定task的目標機器列表,這里不再贅述。
env.roles則是在配置了env.roledefs的情況下才有用武之地。在很多時候,不同的機器有著不同的角色,如有些是接入層,有些是業務層,有些是數據存儲層。env.roledefs可以用來組織這些機器列表以體現其角色,示例如下:
from fabric.api import envenv.roledefs = { 'web': { 'hosts': ['www1', 'www2', 'www3'], }, 'db': { 'hosts': ['db1', 'db2'], }}@roles('web')def mytask(): run('ls /var/www')
上例通過env.roledefs配置了兩個角色web和db,分別包含3台、2台機器,並藉助@roles為mytask指定了目標機器列表。
2)通過命令行進行全局指定
$ fab -H host1,host2 mytask
需要注意的是,命令行通過-H參數指定的機器列表在fabfile腳本load前被解釋,故如果fabfile中重新配置了env.hosts或env.roles,則命令行指定的機器列表會被覆蓋。為了避免fabfile覆蓋命令行參數,在fabfile中應該藉助list.extend()指定env.hosts或env.roles,示例如下:
from fabric.api import env, runenv.hosts.extend(['host3', 'host4'])def mytask(): run('ls /var/www')
此時,當我們運行」fab -H host1,host2 mytask」時,env.hosts包含來自命令行和fabfile的4台機器。
3)通過命令行為每個任務指定機器列表
$ fab mytask:hosts="host1;host2"
上述方式會覆蓋全局指定的機器列表,確保mytask只會在host1, host2上執行。
4)藉助裝飾器@hosts為每個任務指定目標機器
from fabric.api import hosts, run@hosts('host1', 'host2')def mytask(): run('ls /var/www')
或者:
my_hosts = ('host1', 'host2')@hosts(my_hosts)def mytask(): # ...
每個任務的@hosts裝飾器指定的機器列表會覆蓋全局目標機器列表,但不會覆蓋通過命令行為該任務單獨指定的目標機器列表。
上述4種為task指定目標機器列表的方式之間的優先順序規則總結如下:
1) Per-task, command-line host lists (fab mytask:host=host1) override absolutely everything else.
2) Per-task, decorator-specified host lists (@hosts(『host1』)) override the env variables.
3) Globally specified host lists set in the fabfile (env.hosts = [『host1』]) can override such lists set on the command-line, but only if you』re not careful (or want them to.)
4) Globally specified host lists set on the command-line (–hosts=host1) will initialize the env variables, but that』s it.
截止目前,我們可以看到,fabric允許我們混合使用上面列出的幾種目標機器指定方式,但是我們要明白混合的結果是否符合預期。
此外,fabric默認會對通過不同來源出現多次的同一個目標機器做去重,當然,可以通過設置env.depe_hosts為False來關閉默認的去重策略。甚至還可以指定任務需要跳過的機器列表。具體細節可以參考Fabric Execution model的說明,這里不贅述。
3. 任務執行時,目標機器的密碼管理
如果你親自運行上面的示例代碼,就會發現,每次在目標機器遠程執行task時,fabric均會要求輸入目標機器的登錄名及密碼。如果要在多台機器上執行task,那這些密碼輸入的過程可以自動化嗎?
答案是肯定的。實現方式有兩種,下面分別進行說明。
1)通過env.password或env.passwords配置目標機器的登錄信息
下面的示例說明了如何通過env.passwords配置多台機器的登錄信息:
#!/bin/env python#-*- encoding: utf-8 -*-from fabric.api import run, env, hosts## 需要注意的是,這里的host strings必須由username@host:port三部分構成,缺一不可,否則運行時還是會要求輸入密碼env.passwords = { '[email protected]:22': 'xxx', '[email protected]:23': 'yyy',}@hosts('10.123.11.209', '10.123.11.210')def host_os_type(): run('uname -a')
由於通過env.passwords配置了目標機器的登錄用戶名/密碼,所以,當我們在終端運行fab host_os_type時,會發現不用手動輸入密碼了,大大方便了腳本遠程自動執行。
但是,這種明文指定登錄名/密碼的方式存在安全性問題,所以,fabric還支持以ssh key認證的方式免密在遠程機器執行任務。
在具體實現上,需要事先在目標機器上生成ssh public key並配置在~/.ssh/config文件中,然後在定義任務的fabfile中將env.use_ssh_config設置為True來啟用基於ssh public key方式的身份認證,以便實現免密碼遠程執行任務。
具體細節可以參考Fabric Leveraging native SSH config files文檔的說明,或者參考StackOverflow的這篇帖子Connecting to a host listed in ~/.ssh/config when using Fabric,限於篇幅,這里不再贅述。
最後,推薦DigitalOcean上一篇Fabric教程How To Use Fabric To Automate Administration Tasks And Deployments,淺顯易懂,值得一讀。Enjoy it
『叄』 怎麼將fabric-sdk-java-master在myeclipse中使用
方法步驟如下:前提:系統已經安裝gradle1.下載MaterialDrawer-develop.zip,並進行解壓。2.新建文件夾MaterialDrawerProjects\library3.將目錄MaterialDrawer-develop\library\src\main下的文件拷貝到新建的文件夾下,並將java文件夾重命名為src4.文件MaterialDrawer-develop\library\build.gradle開頭處,添加「applyplugin:'eclipse'」5.啟動cmd,進入目錄MaterialDrawer-develop,執行命令:gradleeclipse6.目錄MaterialDrawer-develop\library會生成兩個文件.classpath和.project7.將生成的文件.classpath和.project拷貝到MaterialDrawerProjects\library下8.將.project下的library修改為MaterialDrawerlibrary9.通過eclipse軟體將MaterialDrawerProjects\library導入到工程10.MaterialDrawerProjects\library依賴的庫,需要仿造上面的步驟導入到eclipse中recycleriview:androidSDK自帶的庫(路徑:extras\android\support\v7)MaterializeLibary(github.com/mikepenz/Materialize),前面加上pat,也需要導入到eclipse。
『肆』 fabric == 2.4.0怎麼上傳多個伺服器
將目錄下Moles/Setup.dist文件中」readline readline.c-lreadline -ltermcap」行前的注釋去掉
編譯安裝:
./configure –enable-shared
make -j8 && make install
安裝setuptools
tar xf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py install
安裝fabric
執行安裝時,軟體會自動從網上查找依賴的安裝包並進行安裝
tar xf fabric-0.9rc2.tar.gz
cd goosemo-fabric-1eacbf2
python setup.py install
『伍』 python fabric與shell比較有何優勢
以下假定你的使用場景是命令行的腳本。
問題中提到的三個腳本語言(環境),自己都在使用,我的想法是,任何技術都有其擅長的領域和限制,具體到這個問題,顯然Python更加強大和通用(general purpose),shell是 類unix下的命令行語言,bat可認為是shell在Win下的替代品。
所以(假如只能三選一來學習):
1. 如果只在類unix環境下使用,建議Python(因為Python基本在所有的類unix操作系統都是內置的)
2. 如果是Win並且可以安裝Python,建議Python; 如果不能安裝,則只能bat
事實上,在命令行腳本方面,我的建議是能夠使用Python盡量使用Python,因其優美、可讀、字元串處理的強大、跨平台等。
『陸』 如何用Fabric實現無密碼輸入提示的遠程自動部署
上篇筆記介紹了Fabric的概念、支持的元操作及task的定義方法,本篇筆記旨在說明如何在多台目標機器上正確地執行tasks以實現遠程自動部署或運維。特別地,文中會說明如何配置fabric task以便遠程執行命令時不會彈出密碼輸入提示。
1. Fabric的任務運行規則
根據Fabric Execution model的說明,fabric默認以串列方式運行tasks,具體而言:
1)在fabfile及其import文件中定義的task對象依次被創建(只是創建對象,並未真正執行),任務之間保持其定義的先後順序。
2)對於每個task,生成將要運行該task的目標機器列表。
3)fab執行tasks時,按任務被指定的順序依次執行這些任務;針對每個任務,依次在其指定的目標機器運行且只運行一次。
4)未指定目標機器的task被當作本地任務運行,且只會被運行一次。
假設在fabfile.py中定義了如下tasks:
from fabric.api import run, envenv.hosts = ['host1', 'host2']def taskA(): run('ls')def taskB(): run('whoami')
在終端運行fab –list時,我們會看到taskA和taskB兩個任務,運行之:
$ fab taskA taskB
結果示例如下:
taskA executed on host1taskA executed on host2taskB executed on host1taskB executed on host2
通過上面的實例,大家應該可以明白fabric默認的串列執行策略是怎麼回事。
Fabric還允許我們指定以並行方式(藉助multiprocessing模塊實現多個進程並行執行)在多台機器上並行地運行任務,甚至還可在同一個fabfile文件中指定某些task以並行方式運行,而某些task以默認的串列方式運行。具體地,可以藉助@parallel或@serial指定任務的運行模式,還可以在命令行中通過-P參數指定任務是否要並性執行。示例如下:
from fabric.api import *@paralleldef runs_in_parallel(): passdef runs_serially(): pass
當運行如下命令時:
$ fab -H host1,host2,host3 runs_in_parallel runs_serially
執行結果示例如下:
runs_in_parallel on host1, host2, and host3runs_serially on host1runs_serially on host2runs_serially on host3
此外,還可以通過對@parallel傳入pool_size參數來控制並行進程數以防並行進程太多把機器拖垮。
2. 為task指定目標機器
有多種方式可以指定任務的將要運行的目標機器,下面分別進行說明。
1)通過env.hosts或env.roles進行全局指定
Fabric的env模塊中定義了一系列全局變數,可以將其理解為可以控制fabric行為的環境變數。其中env.hosts和env.roles可以用來全局指定task的目標機器列表,這兩個「環境變數」的默認值都是空列表[]。
env.hosts的元素是fabric約定的」host strings」,每個host strings由username@hostname:port三部分構成,其中username和port部分可以預設。本篇筆記前面的第1個代碼實例其實已經說明了如何用env.hosts全局地指定task的目標機器列表,這里不再贅述。
env.roles則是在配置了env.roledefs的情況下才有用武之地。在很多時候,不同的機器有著不同的角色,如有些是接入層,有些是業務層,有些是數據存儲層。env.roledefs可以用來組織這些機器列表以體現其角色,示例如下:
from fabric.api import envenv.roledefs = { 'web': { 'hosts': ['www1', 'www2', 'www3'], }, 'db': { 'hosts': ['db1', 'db2'], }}@roles('web')def mytask(): run('ls /var/www')
上例通過env.roledefs配置了兩個角色web和db,分別包含3台、2台機器,並藉助@roles為mytask指定了目標機器列表。
2)通過命令行進行全局指定
$ fab -H host1,host2 mytask
需要注意的是,命令行通過-H參數指定的機器列表在fabfile腳本load前被解釋,故如果fabfile中重新配置了env.hosts或env.roles,則命令行指定的機器列表會被覆蓋。為了避免fabfile覆蓋命令行參數,在fabfile中應該藉助list.extend()指定env.hosts或env.roles,示例如下:
from fabric.api import env, runenv.hosts.extend(['host3', 'host4'])def mytask(): run('ls /var/www')
此時,當我們運行」fab -H host1,host2 mytask」時,env.hosts包含來自命令行和fabfile的4台機器。
3)通過命令行為每個任務指定機器列表
$ fab mytask:hosts="host1;host2"
上述方式會覆蓋全局指定的機器列表,確保mytask只會在host1, host2上執行。
4)藉助裝飾器@hosts為每個任務指定目標機器
from fabric.api import hosts, run@hosts('host1', 'host2')def mytask(): run('ls /var/www')
或者:
my_hosts = ('host1', 'host2')@hosts(my_hosts)def mytask(): # ...
每個任務的@hosts裝飾器指定的機器列表會覆蓋全局目標機器列表,但不會覆蓋通過命令行為該任務單獨指定的目標機器列表。
上述4種為task指定目標機器列表的方式之間的優先順序規則總結如下:
1) Per-task, command-line host lists (fab mytask:host=host1) override absolutely everything else.
2) Per-task, decorator-specified host lists (@hosts(『host1』)) override the env variables.
3) Globally specified host lists set in the fabfile (env.hosts = [『host1』]) can override such lists set on the command-line, but only if you』re not careful (or want them to.)
4) Globally specified host lists set on the command-line (–hosts=host1) will initialize the env variables, but that』s it.
截止目前,我們可以看到,fabric允許我們混合使用上面列出的幾種目標機器指定方式,但是我們要明白混合的結果是否符合預期。
此外,fabric默認會對通過不同來源出現多次的同一個目標機器做去重,當然,可以通過設置env.depe_hosts為False來關閉默認的去重策略。甚至還可以指定任務需要跳過的機器列表。具體細節可以參考Fabric Execution model的說明,這里不贅述。
3. 任務執行時,目標機器的密碼管理
如果你親自運行上面的示例代碼,就會發現,每次在目標機器遠程執行task時,fabric均會要求輸入目標機器的登錄名及密碼。如果要在多台機器上執行task,那這些密碼輸入的過程可以自動化嗎?
答案是肯定的。實現方式有兩種,下面分別進行說明。
1)通過env.password或env.passwords配置目標機器的登錄信息
下面的示例說明了如何通過env.passwords配置多台機器的登錄信息:
#!/bin/env python#-*- encoding: utf-8 -*-from fabric.api import run, env, hosts## 需要注意的是,這里的host strings必須由username@host:port三部分構成,缺一不可,否則運行時還是會要求輸入密碼env.passwords = { '[email protected]:22': 'xxx', '[email protected]:23': 'yyy',}@hosts('10.123.11.209', '10.123.11.210')def host_os_type(): run('uname -a')
由於通過env.passwords配置了目標機器的登錄用戶名/密碼,所以,當我們在終端運行fab host_os_type時,會發現不用手動輸入密碼了,大大方便了腳本遠程自動執行。
但是,這種明文指定登錄名/密碼的方式存在安全性問題,所以,fabric還支持以ssh key認證的方式免密在遠程機器執行任務。
在具體實現上,需要事先在目標機器上生成ssh public key並配置在~/.ssh/config文件中,然後在定義任務的fabfile中將env.use_ssh_config設置為True來啟用基於ssh public key方式的身份認證,以便實現免密碼遠程執行任務。
具體細節可以參考Fabric Leveraging native SSH config files文檔的說明,或者參考StackOverflow的這篇帖子Connecting to a host listed in ~/.ssh/config when using Fabric,限於篇幅,這里不再贅述。
最後,推薦DigitalOcean上一篇Fabric教程How To Use Fabric To Automate Administration Tasks And Deployments,淺顯易懂,值得一讀。Enjoy it
『柒』 ubuntu搭建hyperledger fabric1.4出現了以下問題,好像一直沒有在下載
建議看看《Linux就該這么學》 裡面有個專欄是 Linux命令大全(手冊)
加入我們的群,一起討論
Linux就該這么學》是一本注重於實用性的Linux系統技術自學書籍,自基礎篇公布後網站每天日常閱讀量已經超過10000多人,25萬多名忠實粉絲讀者,是目前國內人氣增速最快的IT書籍。您可以在本網站內免費在線閱讀書籍的全部章節及最新內容,今後的進階篇也將會一如既往免費、完整的提供給親愛的讀者們在線學習。
『捌』 服裝英語 高手救命 Fabric Detail Sheet
紐約&公司的織物詳細表
季節:
日期: 2008.04.15為:
分工:
供應商質量發展起來的:
面料供應商:
紗線原產國:
織造廠/國家定位的軋機:
針織磨/國家定位的軋機:
戴先生&終結者/國家定位的軋機:
印表機或紗線染色/國家定位的磨坊:
織物質量號:
紗線尺寸/丹尼/ #長絲- (經x緯)
建築:
捻度每英寸-5 50捻度每米單打:
來往:
內容:
可剪裁寬度:
徑:
重量( g/m2之間) ,然後洗/後洗手:
經x緯(威爾士x課程)
每場(輕/中型/暗色彩) :
面料/服裝終點:
染料染色方法:
容量/每月:
散裝交貨期,以針織:
散裝交貨期,以染料顏色aprvl :
散裝交貨期列印從罷工小康批准:
散裝最低每顏色/命令:
綢胚碼數可供查閱:
樣本碼可每顏色:
樣本碼數最低數量的百分之顏色:
樣本碼交貨期:
建議護理指導:
織物的歷史-2 3年的客戶:
手續發運:
月/年:
紗線染色升/時間為升/時間為樣本閔重復最大值屏幕
和S /取捨每組合尺寸(長數額或設置
列印方法(周) (周) (碼) x寬) clrs收費限制
箔
羊群
直接/亞洲漿紙(濕)
放電(濕)
色素(干)
其他
條紋
y /提花機
固體提花機
織物的過程1 )織造2 )沖刷3 )預設4 )染色( 1 ) 5 ) ,終凝
(機/狀態)
6 )中查閱7 )列印8 )檢查
『玖』 fabric 支持在linux環境nohup後台運行嗎
我想寫SHELL腳本同啟進程並行執行利用NOHUP& 否行
另 若行寫兩命令並用號隔表示兩命令串列執行
比C1C2C3C4表示4條命令
c1;c2
c3;c4
否C1C2串列執行
C1C2C3C4並行執行
假設每條命令執行程序耗
『拾』 Ubuntu上搭建HyperLedger Fabric過程中,執行 ./byfn.sh generate一直報錯
這是我找到的一個解決方法,你看看有沒有用:
在啟動fabric中first-network網路時,需要執行一個自動化腳本:
./byfn.sh -m generate
該腳本需要自動生成相關證書信息,fabric官方提供了兩款工具:configtxgen、cryptogen。在腳本執行中會從fabric-simple/bin中取查找並調用兩者。初次啟動時沒有這個工具的。
解決方法:
進入fabric目錄,看見make* 文件,使用make configtxgen、make cryptogen兩個指令生成工具(如果之前搭建過fabric-1.0環境,直接進fabric/build將bin文件夾直接移動到fabric-sample目錄即可)。生成後的文件在fabric/build/bin裡面,移動到相關位置即可。
樓主如果對Linux系統感興趣,想學習更多Linux系統操作知識,可以網路《Linux就該這么學》,不錯的一本Linux入門學習教程。