win10-vagrant-virtualbox-centos7-fabric2.2.0

一、基础环境配置

1、win10下安装git、vagrant、virualbox安装(相关资料自行查阅)

2、下载vagrant需要的box镜像

1、下载centos7对应的box放到h:\vagrant\box中:(https://vagrantcloud.com/centos/boxes/7/versions/2004.01/providers/virtualbox.box)并把virtualbox.box改名为centos7.box

3、vagrant中新建centos环境

1、打开git下面的Git bash.exe这个比较好用,好像linux指令和win10 cmd指令都可识别。在新建h:\vagrant\centos7目录,在git bash中进入该目录,此时显示目录为/h/vagrant/centos7.
2、在git bash中/h/vagrant/centos7目录中:

#查看已有的box列表,之前没添加过的话,此时会显示空*
vagrant box list
#添加我们下载的centos box,此时运行上面的list命令就会看到我们添加的box
vagrant box add centos7 /h/vagrant/box/centos7.box 

3、进入到/h/vagrant/centos7目录,在这个目录下面建立我们的centos环境

#初始化centos7配置文件,会在当前目录下面生成Vagrantfile这个文件 ,这个文件包含后面所有的虚拟机的配置信息,按需求查资料修改配置文件
#(https://blog.csdn.net/u011781521/article/details/80291765)*
vagrant init centos7 

#*启动虚拟机 *
vagrant up 
#*默认进入的是vagrant用户,密码也是vagrant *
vagrant ssh 
#修改root 密码后面操作都用root用户完成  
#可以修改配置直接以root用户登录,感觉没必要,就默认登录,再切换到root用户,需要配置root密码
图片.png
#在root用户下安装更新
yum upate 
#安装vagrant磁盘分配插件,后面可以修改Vagrantfile修改分配的磁盘大小,不安装无法识别Vagrantfile中的disksize关键字
vagrant plugin install vagrant-disksize 
图片.png

-修改Vagrantfile 修改分配内存和磁盘空间,磁盘我分了100G,内存我分了8G,自己根据自己的情况分配


图片.png

图片.png

-重启centos7让修改的配置生效

#*关闭box*
vagrant halt 
#*启动box*
vagrant up 
#在root用户下安装所需要 的基础包
yum install -y git wget curl vim  
#打包当前的box,备用也可以共享给其它人用,再加上Vagrantfile,就可以生成 和自己一模一样的环境,我还是把这个box放移动到/h/vagrant/box目录下面备用
vagrant package --output my-fabric-centos-7-base.box
图片.png

4、运行环境安装

1、需要安装go、java、maven、docker、 docker-compose
对应版本为:


图片.png
#go
 tar -C /usr/local -zxf go1.15.5.linux-amd64.tar.gz

#java
mkdir /usr/local/java/
tar -zxvf jdk-8u271-linux-x64.tar.gz -C /usr/local/java/

#maven
mkdir /usr/local/maven/
tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /usr/local/maven/

#设置环境变量
vim /etc/profile
#添加以下内容:

#go
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$HOME/go/bin

#java
export JAVA_HOME=/usr/local/java/jdk1.8.0_271
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

#maven
export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

使环境变量生效
source /etc/profile

查看版本:


图片.png

2、docker环境

#卸载旧版本
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
#安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
#设置稳定的仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#安装 Docker Engine-Community
yum install docker-ce docker-ce-cli containerd.io
#启动Docker
systemctl start docker
#查看Docker版本
docker version

#设置加速镜像
#在/etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
 
#腾讯云:https://mirror.ccs.tencentyun.com
#阿里云:https://svaken38.mirror.aliyuncs.com
#网易云:http://hub-mirror.c.163.com
 
{
  "registry-mirrors": ["https://svaken38.mirror.aliyuncs.com"]
}
 
sudo systemctl daemon-reload
sudo systemctl restart docker

3、docker-compose环境

#用daocloud下载 
curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#赋予权限
chmod +x /usr/local/bin/docker-compose
#查看版本
docker-compose  version

4、备份基础环境box

 vagrant package --output ../box/centos7-base-env-over.box

5、fabric安装

1、下载源码

#fabric需要go来编译,所以放到go工作目录下
mkdir -p ~/go/src/github.com/hyperledger
cd ~/go/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
#上述github地址下载太慢,可以尝试下面码云上这个地址
#https://gitee.com/luxiaojun0605/fabric.git

2、下载完成后会得到一个fabric文件夹,进入fabric/scripts目录可以看到一个bootstrap.sh脚本,直接执行bootstrap.sh脚本,就会自动进行fabric相关文件和镜像的下载
因涉及到github上面下载包,所以此过程会很漫长,为了节省时间,我们可以拆分脚本中内容分别下载
这里下载的瓶颈主要是pullBinaries二进制文件,所以我们先把他注释后运行bootstrap.sh脚本文件进行fabric-samples文件夹的下载和镜像文件的拉取
-先注释点pullBinaries


if [ "$SAMPLES" == "true" ]; then
    echo
    echo "Clone hyperledger/fabric-samples repo"
    echo
    cloneSamplesRepo
fi
if [ "$BINARIES" == "true" ]; then
    echo
    echo "Pull Hyperledger Fabric binaries"
    echo
    #pullBinaries
fi
if [ "$DOCKER" == "true" ]; then
    echo
    echo "Pull Hyperledger Fabric docker images"
    echo
    pullDockerImages
fi

-修改下载版本为2.2.0 ca版本为1.4.7(如果不修改运行bootstrap.sh的时候需要加2.2.0 1.4.7)这个地方不修改下载的时候会中断。。。。

# if version not passed in, default to latest released version
VERSION=2.2.0
# if ca version not passed in, default to latest released version
CA_VERSION=1.4.7
ARCH=$(echo "$(uname -s|tr '[:upper:]' '[:lower:]'|sed 's/mingw64_nt.*/windows/')-$(uname -m | sed 's/x86_64/amd64/g')")
MARCH=$(uname -m)

#不修改的时候运行下面的程序
#./bootstrap.sh 2.2.0 1.4.7
#代码如下:
[root@localhost scripts]# ./bootstrap.sh 2.2.0 1.4.7

Clone hyperledger/fabric-samples repo

===> Changing directory to fabric-samples
fabric-samples v2.2.0 does not exist, defaulting master

Pull Hyperledger Fabric binaries


Pull Hyperledger Fabric docker images

FABRIC_IMAGES: peer orderer ccenv tools baseos
===> Pulling fabric Images
====> hyperledger/fabric-peer:2.2.0
2.2.0: Pulling from hyperledger/fabric-peer
Digest: sha256:81efaab943387820815c9b9bd3e3bec9d262365e635bac6f500a287fb3e873e7
Status: Image is up to date for hyperledger/fabric-peer:2.2.0
docker.io/hyperledger/fabric-peer:2.2.0
====> hyperledger/fabric-orderer:2.2.0
2.2.0: Pulling from hyperledger/fabric-orderer
Digest: sha256:bb97a8e80b53d9f32c3b850ae3b55bab57bf3cc9483978a471a5bee0ac49728e
Status: Image is up to date for hyperledger/fabric-orderer:2.2.0
docker.io/hyperledger/fabric-orderer:2.2.0
====> hyperledger/fabric-ccenv:2.2.0
2.2.0: Pulling from hyperledger/fabric-ccenv
Digest: sha256:4ec2f71fbcd52a1e6717f5eb20f82452c24352faa2dcd08d3941e0bf2438610b
Status: Image is up to date for hyperledger/fabric-ccenv:2.2.0
docker.io/hyperledger/fabric-ccenv:2.2.0
====> hyperledger/fabric-tools:2.2.0
2.2.0: Pulling from hyperledger/fabric-tools
Digest: sha256:d328c63a5ca2e9d27e74ee43d17fcfada9937961d5e70433a1d66352f6e7b652
Status: Image is up to date for hyperledger/fabric-tools:2.2.0
docker.io/hyperledger/fabric-tools:2.2.0
====> hyperledger/fabric-baseos:2.2.0
2.2.0: Pulling from hyperledger/fabric-baseos
Digest: sha256:6584eb096bb3cf495e4c2ebf162ed7c1be45157b89662c0d407bfd9adc036d66
Status: Image is up to date for hyperledger/fabric-baseos:2.2.0
docker.io/hyperledger/fabric-baseos:2.2.0
===> Pulling fabric ca Image
====> hyperledger/fabric-ca:1.4.7
1.4.7: Pulling from hyperledger/fabric-ca
b8f262c62ec6: Pull complete
56b16818f60b: Pull complete
707812f2aa2d: Pull complete
400ab1f52b57: Pull complete
1e32346b61cd: Pull complete
d1832ac8c002: Pull complete
cb7ebebf613a: Pull complete
6af9a3114ec8: Pull complete
Digest: sha256:9418ea351bfbef4bf2bca34bcd77305bdb9a45d2c1aab3237c08c17da0b4d1dd
Status: Downloaded newer image for hyperledger/fabric-ca:1.4.7
docker.io/hyperledger/fabric-ca:1.4.7
===> List out hyperledger docker images
hyperledger/fabric-tools     2.2                 5eb2356665e7        4 months ago        519MB
hyperledger/fabric-tools     2.2.0               5eb2356665e7        4 months ago        519MB
hyperledger/fabric-tools     latest              5eb2356665e7        4 months ago        519MB
hyperledger/fabric-peer      2.2                 760f304a3282        4 months ago        54.9MB
hyperledger/fabric-peer      2.2.0               760f304a3282        4 months ago        54.9MB
hyperledger/fabric-peer      latest              760f304a3282        4 months ago        54.9MB
hyperledger/fabric-orderer   2.2                 5fb8e97da88d        4 months ago        38.4MB
hyperledger/fabric-orderer   2.2.0               5fb8e97da88d        4 months ago        38.4MB
hyperledger/fabric-orderer   latest              5fb8e97da88d        4 months ago        38.4MB
hyperledger/fabric-ccenv     2.2                 aac435a5d3f1        4 months ago        586MB
hyperledger/fabric-ccenv     2.2.0               aac435a5d3f1        4 months ago        586MB
hyperledger/fabric-ccenv     latest              aac435a5d3f1        4 months ago        586MB
hyperledger/fabric-baseos    2.2                 aa2bdf8013af        4 months ago        6.85MB
hyperledger/fabric-baseos    2.2.0               aa2bdf8013af        4 months ago        6.85MB
hyperledger/fabric-baseos    latest              aa2bdf8013af        4 months ago        6.85MB
hyperledger/fabric-ca        1.4                 743a758fae29        6 months ago        154MB
hyperledger/fabric-ca        1.4.7               743a758fae29        6 months ago        154MB
hyperledger/fabric-ca        latest              743a758fae29        6 months ago        154MB

下载hyperledger-fabric-ca-linux-amd64-1.4.7.tar.gz
下载hyperledger-fabric-linux-amd64-2.2.0.tar.gz
这两个文件就是上面注释掉的二进行制文件下载
对应链接为:
https://github.com/hyperledger/fabric/releases/download/v2.2.0/hyperledger-fabric-linux-amd64-2.2.0.tar.gz
https://github.com/hyperledger/fabric-ca/releases/download/v1.4.7/hyperledger-fabric-ca-linux-amd64-1.4.7.tar.gz
下载好后放到vagrant的共享目录,重启centos7在centos7中移动至fabric-samples目录中;我这边用的默认共享目录是win10的Vagrantfile目录对应box的/vagrant/目录(也可以用其它方式把文件传到box中),再把fabric-samples文件上移一层到/go/src/github.com/hyperledger/fabric(原来在/go/src/github.com/hyperledger/fabric/script这个目录),并分别解压这两个文件得到bin目录;代码如下

[root@localhost setupfile]# cd /vagrant/
[root@localhost vagrant]# ll
total 4
drwxr-xr-x. 2 vagrant vagrant  241 Nov 22 10:09 setupfile
-rw-r--r--. 1 vagrant vagrant 3220 Nov 22 02:19 Vagrantfile
[root@localhost vagrant]# cd setupfile/
[root@localhost setupfile]# ll
total 391908
-rw-r--r--. 1 vagrant vagrant   9506321 Nov 22 04:37 apache-maven-3.6.3-bin.tar.gz
-rw-r--r--. 1 vagrant vagrant 120900442 Nov 22 04:47 go1.15.5.linux-amd64.tar.gz
-rw-r--r--. 1 vagrant vagrant  24751722 Nov 22 10:08 hyperledger-fabric-ca-linux-amd64-1.4.7.tar.gz
-rw-r--r--. 1 vagrant vagrant  76283052 Nov 22 10:08 hyperledger-fabric-linux-amd64-2.2.0.tar.gz
-rw-r--r--. 1 vagrant vagrant 143142634 Nov 22 04:34 jdk-8u271-linux-x64.tar.gz
-rw-r--r--. 1 vagrant vagrant  26724009 Nov 22 04:36 Python-3.9.0.tgz
[root@localhost setupfile]# cp hyperledger-fabric-ca-linux-amd64-1.4.7.tar.gz ~/go/src/github.com/hyperledger/fabric/fabric-samples/
[root@localhost setupfile]# cp hyperledger-fabric-linux-amd64-2.2.0.tar.gz ~/go/src/github.com/hyperledger/fabric/fabric-samples/  [root@localhost setupfile]# cd ~/go/src/github.com/hyperledger/fabric/fabric-samples/
[root@localhost fabric-samples]# tar -zxf hyperledger-fabric-linux-amd64-2.2.0.tar.gz
[root@localhost fabric-samples]# tar -zxf hyperledger-fabric-ca-linux-amd64-1.4.7.tar.gz
[root@localhost fabric-samples]# ll
total 99104
drwxr-xr-x. 11 root root      254 Nov 22 06:32 asset-transfer-basic
drwxr-xr-x.  4 root root       64 Nov 22 06:32 asset-transfer-events
drwxr-xr-x.  6 root root      108 Nov 22 06:32 asset-transfer-ledger-queries
drwxr-xr-x.  4 root root       56 Nov 22 06:32 asset-transfer-private-data
drwxr-xr-x.  5 root root      103 Nov 22 06:32 asset-transfer-sbe
drwxr-xr-x.  4 root root       56 Nov 22 06:32 asset-transfer-secured-agreement
drwxr-xr-x.  4 root root       73 Nov 22 06:32 auction
drwxr-xr-x.  2 1001 1001      171 Jul  9 13:24 bin
drwxr-xr-x.  8 root root      118 Nov 22 06:32 chaincode
-rw-r--r--.  1 root root   398453 Nov 22 06:32 CHANGELOG.md
drwxr-xr-x.  4 root root       65 Nov 22 06:32 ci
-rw-r--r--.  1 root root      597 Nov 22 06:32 CODE_OF_CONDUCT.md
-rw-r--r--.  1 root root      109 Nov 22 06:32 CODEOWNERS
drwxr-xr-x.  3 root root      111 Nov 22 06:32 commercial-paper
drwxr-xr-x.  2 1001 1001       64 Jul  9 13:24 config
-rw-r--r--.  1 root root      935 Nov 22 06:32 CONTRIBUTING.md
drwxr-xr-x.  6 root root      126 Nov 23 01:50 fabcar
drwxr-xr-x.  4 root root      109 Nov 22 06:32 high-throughput
-rw-r--r--.  1 root root 24751722 Nov 23 01:16 hyperledger-fabric-ca-linux-amd64-1.4.7.tar.gz
-rw-r--r--.  1 root root 76283052 Nov 23 01:17 hyperledger-fabric-linux-amd64-2.2.0.tar.gz
drwxr-xr-x.  4 root root       55 Nov 22 06:32 interest_rate_swaps
-rw-r--r--.  1 root root    11358 Nov 22 06:32 LICENSE
-rw-r--r--.  1 root root     1748 Nov 22 06:32 MAINTAINERS.md
drwxr-xr-x.  2 root root     4096 Nov 22 06:32 off_chain_data
-rw-r--r--.  1 root root     7003 Nov 22 06:32 README.md
drwxr-xr-x.  2 root root       26 Nov 22 06:32 scripts
-rw-r--r--.  1 root root     1035 Nov 22 06:32 SECURITY.md
drwxr-xr-x.  3 root root       24 Nov 22 06:32 test-application
drwxr-xr-x.  8 root root      202 Nov 22 06:32 test-network
drwxr-xr-x.  4 root root       71 Nov 22 06:32 token-erc-20
drwxr-xr-x.  3 root root       43 Nov 22 06:32 token-utxo
[root@localhost fabric-samples]# ll bin
total 208192
-rwxr-xr-x. 1 1001 1001 20521776 Jul  9 13:23 configtxgen
-rwxr-xr-x. 1 1001 1001 17012791 Jul  9 13:23 configtxlator
-rwxr-xr-x. 1 1001 1001 13192504 Jul  9 13:23 cryptogen
-rwxr-xr-x. 1 1001 1001 17452108 Jul  9 13:23 discover
-rwxr-xr-x. 1 1001 1001 22950608 May 14  2020 fabric-ca-client
-rwxr-xr-x. 1 1001 1001 30278008 May 14  2020 fabric-ca-server
-rwxr-xr-x. 1 1001 1001 12197048 Jul  9 13:24 idemixgen
-rwxr-xr-x. 1 1001 1001 31417504 Jul  9 13:23 orderer
-rwxr-xr-x. 1 1001 1001 48145696 Jul  9 13:24 peer

关闭box打包
vagrant package --output ../box/centos7-fabric2.2.0-base.box
现在完整的fabric2.2.0环境搭建好了
这里面的很多内容参考了(https://www.cnblogs.com/luxiaojun/p/13453664.html)
后续进行测试网络的运行等

你可能感兴趣的:(win10-vagrant-virtualbox-centos7-fabric2.2.0)