一鍵部署Fabric配置環境並測試first-network
阿新 • • 發佈:2021-01-24
二進位制檔案自己用v*n下載
#!/bin/bash
#versions fabric2.0.1 docker19.03.6 go1.15
#install corresponding depencies for fabric from scratch
# echo print with color
function echoColor()
{
echo -e "\033[35;1m$1\033[0m"
}
function installssh()
{
echoColor "installing ssh service"
sudo apt-get update
sudo apt-get install openssh-server -y
sudo service ssh start
echoColor "finish installed ssh service"
echo
}
# update os
function updateOS()
{
echoColor "Updating system to newest version"
sudo apt-get update -y --fix-missing
echo
}
#synchoronize time
function syntime()
{
echoColor "synchorize time of different area"
# 移除當前的時區資訊
sudo rm -rf /etc/localtime
# 修改時區
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echoColor "finish synchorized time of different area"
}
# install some useful tools
function installtools()
{
echoColor "-----------------------------------------------------------------"
echoColor "Start installing, please wait......."
# 安裝git
echoColor "Start Install git"
apt-get install -y git
# 安裝cURL
echoColor "Start Install curl"
apt-get install curl -y
# 安裝jq
echoColor "Start Install jq"
apt-get install jq -y
echoColor "Finish installed tools."
echoColor "-----------------------------------------------------------------"
}
# 安裝 Golang
function installGolang()
{
echo
echoColor "-----------------------------------------------------------------"
echoColor "Start install Golang,please wait......."
# 下載Go
echo
wget https://studygolang.com/dl/golang/go1.15.5.linux-amd64.tar.gz
#wget https://storage.googleapis.com/golang/go1.15.5.linux-amd64.tar.gz
tar xfz go1.15.5.linux-amd64.tar.gz -C /usr/local
# 設定環境變數
echoColor "Create Go Environment"
echo
echoColor "Set golang environment"
echo -e "export GOPATH=/usr/local/gopath
export GOROOT=/usr/local/go
export PATH=\$GOROOT/bin:\$PATH">>/etc/profile
source /etc/profile
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
source /etc/profile
go version
echo
echoColor "Finish install Golang "
echoColor "-----------------------------------------------------------------"
}
# 安裝 docker和docker compose
function installDocker()
{
echo
echoColor "-----------------------------------------------------------------"
echoColor "Start install docker,please wait......."
if [ ! -f "/usr/bin/docker" ];then
echoColor "Install dependency items for https"
sudo apt-get install apt-transport-https ca-certificates software-properties-common -y
echoColor "Set stable repo for docker"
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" >> /etc/apt/sources.list
sudo apt-get update
echoColor "Install docker and start service"
sudo apt-get install docker-ce=5:19.03.6~3-0~ubuntu-bionic docker-ce-cli=5:19.03.6~3-0~ubuntu-bionic containerd.io -y
echoColor "Set accelerate registry-mirrors"
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://rl4uepop.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
fi
docker -v
echo
if [ ! -f "/usr/local/bin/docker-compose" ];then
echoColor "Install docker-compose"
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
fi
docker-compose -v
echoColor "Finish install docker and docker-compose!"
echoColor "-----------------------------------------------------------------"
echo
}
#下載bootstrap.sh 、映象檔案、fabric-samples
function DownloadImages()
{
echoColor "start downloading bootstrap"
mkdir -p /home/script
cd /home/script
curl -fsSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh -o ./bootstrap.sh
chmod +x bootstrap.sh
echoColor "start downloading bootstrap"
echo
bash bootstrap.sh 2.0.1 1.4.6 0.4.18 -b
docker pull hyperledger/fabric-couchdb:0.4.18
docker tag d369d4eaa0fd hyperledger/fabric-couchdb:latest
#下載二進位制工具(fabric2.0.1&fabric-ca 1.4.6)
#v*n下載後分發到各個主機對應檔案目錄下。
}
#執行first-network
function runtest()
{
cd /home/script/fabric-samples/first-network
chmod 777 ../first-network/*/*
#script.sh ccp-generate.sh
mkdir /home/bin
chmod 777 /home/bin/*
echo "export PATH=\$PATH:/home/bin/" >>/etc/profile
echo "source /etc/profile" >>~/.bashrc
source ~/.bashrc
source /etc/profile
bash byfn.sh up
}
echoColor " ____ _____ _ ____ _____ "
echoColor "/ ___| |_ _| / \ | _ \ |_ _|"
echoColor "\___ \ | | / _ \ | |_) | | | "
echoColor " ___) | | | / ___ \ | _ < | | "
echoColor "|____/ |_| /_/ \_\ |_| \_\ |_| "
installssh
updateOS
syntime
installtools
installGolang
installDocker
DownloadImages
runtest
echoColor " _____ _ _ ____ "
echoColor "| ____| | \ | | | _ \ "
echoColor "| _| | \| | | | | | "
echoColor "| |___ | |\ | | |_| | "
echoColor "|_____| |_| \_| |____/ "