這篇文章將為大家詳細(xì)講解有關(guān)HyperLedger如何使用Ansible進(jìn)行Fabric多機(jī)部署,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)公司制作網(wǎng)站網(wǎng)頁(yè)找三站合一網(wǎng)站制作公司,專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì),成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),網(wǎng)站設(shè)計(jì),企業(yè)網(wǎng)站搭建,網(wǎng)站開(kāi)發(fā),建網(wǎng)站業(yè)務(wù),680元做網(wǎng)站,已為1000+服務(wù),成都創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)將一如既往的為我們的客戶提供最優(yōu)質(zhì)的網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣服務(wù)!
在192.168.88.10、192.168.88.11、192.168.88.12上部署一個(gè)有兩個(gè)組織三個(gè)Peer組成的聯(lián)盟。
聯(lián)盟的二級(jí)域名為: example.com。
組織一的域名為: member1.example.com
組織二的域名為: member2.example.com
組織一中部署了一個(gè)Orderer和兩個(gè)Peer,域名和IP分別為:
orderer0.member1.example.com 192.168.88.10 peer0.member1.example.com 192.168.88.10 peer1.member1.example.com 192.168.88.11
組織二沒(méi)有部署Orderer參與共識(shí),只部署一個(gè)Peer:
peer0.member2.example.com 192.168.88.12
共識(shí)算法是solo,如果要切換為其它共識(shí)算法,例如kafka,需要另外部署kafka,并修改配置文件。
下載Ansible腳本:
git clone https://github.com/introclass/hyperledger-fabric-ansible.git cd hyperledger-fabric-ansible
0 將要部署到目標(biāo)環(huán)境中的二進(jìn)制文件復(fù)制到output/example.com/bin/目錄中
mkdir -p output/example.com/ cd output/example.com/ wget https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/linux-amd64-1.1.0/hyperledger-fabric-linux-amd64-1.1.0.tar.gz wget https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/linux-amd64-1.1.0/hyperledger-fabric-linux-amd64-1.1.0.tar.gz.md5 tar -xvf hyperledger-fabric-linux-amd64-1.1.0.tar.gz
1 在inventories/example.com中創(chuàng)建配置文件,以及ansible需要的hosts文件:
configtx.yaml crypto-config.yaml hosts
2 準(zhǔn)備在運(yùn)行ansible的機(jī)器使用fabric命令:
注意事項(xiàng)1:
prepare.sh
會(huì)使用hyperledger fabric的命令,需要把在本地運(yùn)行的fabric命令放到output/bin
目錄中。
例如,我是在mac上執(zhí)行ansible的,下載的是darwin版本的fabric:
mkdir -p output/bin cd output/bin wget https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/darwin-amd64-1.1.0/hyperledger-fabric-darwin-amd64-1.1.0.tar.gz wget https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/darwin-amd64-1.1.0/hyperledger-fabric-darwin-amd64-1.1.0.tar.gz.md5 tar -xvf hyperledger-fabric-darwin-amd64-1.1.0.tar.gz
3 運(yùn)行perpare.sh生成證書(shū),以及創(chuàng)世塊(可以根據(jù)需要修改腳本):
./prepare.sh example
注意事項(xiàng)2:
每個(gè)部署環(huán)境分別在output和inventories中有一個(gè)自己的目錄,要增加新部署環(huán)境除了在output和inventories中準(zhǔn)備目錄和文件,您還可能需要根據(jù)自己的需要在prepare.sh中添加為新的環(huán)境生成證書(shū)和其它文件的命令。
1 初始化目標(biāo)機(jī)器
export ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -k -i inventories/example.com/hosts -u root deploy_prepare.yml
2 檢測(cè)證書(shū)設(shè)置是否成功
ansible -i inventories/example.com/hosts -u root all -m command -a "pwd"
3 如果域名沒(méi)有綁定IP,修改每臺(tái)機(jī)器的/etc/hosts,(會(huì)替換整個(gè)文件):
ansible -i inventories/example.com/hosts -u root all -m copy -a "src=./inventories/example.com/etc_hosts dest=/etc/hosts"
4 部署節(jié)點(diǎn)
ansible-playbook -i inventories/example.com/hosts -u root deploy_nodes.yml
5 部署客戶端
ansible-playbook -i inventories/example.com/hosts -u root deploy_cli.yml
1 進(jìn)入member1的管理員目錄,對(duì)peer0.member1.example.com進(jìn)行操作:
cd /opt/app/fabric/cli/user/member1.example.com/Admin-peer0.member1.example.com/ //創(chuàng)建channel,channel只需要?jiǎng)?chuàng)建一次 ./0_create_channel.sh //加入channel ./1_join_channel.sh //設(shè)置錨點(diǎn)Peer: ./2_set_anchor_peer.sh
2 進(jìn)入member1的管理員目錄,對(duì)peer1.member1.example.com進(jìn)行操作:
cd /opt/app/fabric/cli/user/member1.example.com/Admin-peer1.member1.example.com ./1_join_channel.sh
3 進(jìn)入member2的管理員目錄,對(duì)peer0.member1.example.com進(jìn)行操作:
cd /opt/app/fabric/cli/user/member2.example.com/Admin-peer0.member2.example.com //加入channel ./1_join_channel.sh //設(shè)置錨點(diǎn)Peer: ./2_set_anchor_peer.sh
1 進(jìn)入member1的管理員目錄,對(duì)peer0.member1.example.com進(jìn)行操作:
cd /opt/app/fabric/cli/user/member1.example.com/Admin-peer0.member1.example.com/ //先獲取合約代碼,可能會(huì)比較慢,拉取代碼比較耗時(shí) go get github.com/lijiaocn/fabric-chaincode-example/demo //安裝合約 ./3_install_chaincode.sh //查看已經(jīng)安裝的合約 ./peer.sh chaincode list --installed //合約實(shí)例化,只需要實(shí)例化一次 ./4_instantiate_chaincode.sh
2 在其它Peer上部署合約
//peer1.member1.example.com //先獲取合約代碼,可能會(huì)比較慢,拉取代碼比較耗時(shí) go get github.com/lijiaocn/fabric-chaincode-example/demo cd /opt/app/fabric/cli/user/member1.example.com/Admin-peer1.member1.example.com/ ./3_install_chaincode.sh //peer0.member2.example.com //先獲取合約代碼,可能會(huì)比較慢,拉取代碼比較耗時(shí) go get github.com/lijiaocn/fabric-chaincode-example/demo cd /opt/app/fabric/cli/user/member2.example.com/Admin-peer0.member2.example.com/ ./3_install_chaincode.sh
同一個(gè)合約,只需要在任意一個(gè)Peer上實(shí)例化一次。
3 調(diào)用合約,寫(xiě)數(shù)據(jù)
./6_invoke_chaincode.sh
4 調(diào)用合約,查數(shù)據(jù)
./5_query_chaincode.sh
1 啟動(dòng)鏈:
ansible-playbook -i inventories/example.com/hosts -u root playbooks/manage_start.yml
2 停止鏈:
ansible-playbook -i inventories/example.com/hosts -u root playbooks/manage_stop.yml
3 清空鏈上所有數(shù)據(jù):
ansible-playbook -i inventories/example.com/hosts -u root playbooks/manage_rebuild.yml
4 銷(xiāo)毀鏈:
ansible-playbook -i inventories/example.com/hosts -u root playbooks/manage_destroy.yml
關(guān)于“HyperLedger如何使用Ansible進(jìn)行Fabric多機(jī)部署”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。