Configuring pre-requisites for the Blockchain Automation Framework

1. 前言

      当我们想要使用Blockchain Automation Framework之前,我们需要在部署区块链网络和/或操作区块链自动化框架的平台上安装了所有先决条件,可以参考Configure_prerequisites进行配置。

2. 为Blockchain Automation Framework配置先决条件

2.1 Ansible详细目录文件

       在区块链自动化框架中,我们通过运行Ansible剧本的机器连接到Kubernetes集群,并且不直接修改或连接任何其他机器。区块链自动化框架的样本清单文件位于此处。将此文件的内容添加到您的Ansible主机配置文件中(通常在文件/ etc / ansible / hosts中)。在这里阅读更多有关Ansible库存的信息

2.2 GitOps的私钥

      为了使Git存储库与集群同步,Blockchain Automation框架为每个集群配置Flux。身份验证通过SSH密钥进行,因此应在运行剧本之前生成此密钥。运行以下命令以生成名为gitops的私钥-公钥对。

ssh-keygen -q -N "" -f ./gitops

      上面的命令生成一个SSH密钥对:gitops(私有密钥)和gitops.pub(公共密钥)。使用配置文件部分中的私钥(gitops)路径gitops.private_key,并按照本指南在您的Github存储库中添加公共密钥内容(以ssh-rsa开头)作为访问密钥(具有读写权限)。

2.3 Docker镜像

       区块链自动化框架使用一些自定义构建的docker映像,这些映像不公开(自此发行版开始)。这些docker映像需要由您构建,然后上传到docker注册表,例如https://hub.docker.com/

       注意:区块链自动化框架建议将私有Docker注册表用于生产。可以在network.yaml文件中提供docker 注册表的用户名/密码,以便Kubernetes集群可以访问注册表。

2.4 Alpine Utils

      Alpine-utils Docker镜像是在区块链自动化框架(BAF)中使用的轻量级实用程序映像。它主要用作BAF Kubernetes部署中的初始化容器,以连接到Hashicorp Vault下载证书。要生成映像,请从platform / shared / images文件夹执行以下命令。

sudo docker build -t alpine-utils:1.0 -f alpine-utils.Dockerfile .

      上面的命令将创建一个带有标签alpine-utils:1.0的镜像。如果要将此镜像上传到注册表,请相应地更新标签,然后推送到docker。示例命令如下所示:

sudo docker tag alpine-utils:1.0 adopblockchaincloud0502.azurecr.io/alpine-utils:1.0
sudo docker push adopblockchaincloud0502.azurecr.io/alpine-utils:1.0
   注意:在上面的示例命令中,请根据您的注册表替换docker映像/标签名称,并拥有自己的docker存储库以进行推送。

2.5 LinuxKit基础

      在platform / r3-corda / images / linuxkit-base中构建LinuxKit Base映像。

2.6 Corda 

      在platform / r3-corda / images / doorman中构建Corda Doorman映像。

2.7 Corda网络图

      在platform / r3-corda / images / networkmap构建Corda Networkmap映像。

2.8 Corda节点

      在platform / r3-corda / images构建Corda节点映像。

2.9 Unseal Hashicorp Vault

      Hashicorp Vault是区块链自动化框架的先决条件之一。如果尚未初始化和密封,请完成以下步骤以密封并访问保管库。

  • 安装Vault客户端。请遵循 “Install Vault 中的说明。
  • 将环境变量VAULT_ADDR设置为保管库服务。请注意,应该可以从运行此命令的主机以及Ansible控制器和Kubernetes节点访问此服务。
export VAULT_ADDR=http://my-vault-server:9000

现在执行以下命令:

vault operator init -key-shares=1 -key-threshold=1

     它将给出以下输出:

Unseal Key 1: << unseal key>>

Initial Root Token: << root token>>

     将根令牌和解封密钥保存在安全的位置。在运行Ansible剧本以部署DLT网络之前,将在Blockchain Automation框架的network.yaml文件中更新此根令牌。

     使用以下命令解封:

vault operator unseal << unseal-key-from-above >>

     运行以下命令以登录并检查Vault是否已打开:

vault login << give the root token >>`

     您可能会在初始化Vault时生成多个根令牌,并删除在network.yaml文件中使用的一个令牌,因为在Ansible日志中可能会看到该令牌。

2.10 Ambassador

     区块链自动化框架(BAF)使用Ambassador进行集群间通信。为了使一个Kubernetes集群中的BAF Kubernetes服务能够与另一个集群中的服务对话,需要按照以下步骤配置大使:

  • 将Ambassador部署到群集上后(手动或使用platforms/shared/configuration/kubernetes-env-setup.yaml剧本),获取Ambassador服务的外部IP地址。
kubectl get services -o wide
  • 上面命令的输出将如下所示: 
  • ../_images/ambassador-service.png
  • Ambassador服务输出,从输出中复制EXTERNAL-IPAmbassador服务。

       注意:如果Playbook配置了Ambassador,则必须在执行Playbook时完成此配置,否则部署将失败。配置您的子域配置,以将外部DNS名称重定向到该外部IP。例如,如果您要将外部域后缀配置为test.corda.blockchaincloudpoc.com,则更新DNS映射以将所有请求从ALIAS 重定向到* .test.corda.blockchaincloudpoc.com从上方到EXTERNAL-IP。在AWS Route53中,设置如下所示(在托管区域中)。 ../_images/ambassador-dns.png              Ambassador外部DNS配置如果您不想在每次更改DNS名称时都手动更新路由配置,则可以使用外部DNS自动更新DNS路由。按照您的云提供商的步骤进行操作,然后在BAF配置文件(network.yaml)的部分中使用。

external_dns:enabledenv

         注意:此处未提供外部DNS设置的详细配置,请参考上面的链接。

2.11 HAProxy入口

     从0.3.0.0版开始,区块链自动化框架(BAF)使用HAProxy Ingress Controller进行光纤网络的集群间通信。为了使一个Kubernetes集群中的Fabric GRPC服务能够与另一个集群中的GRPC服务进行通信,需要按照以下步骤配置HAProxy:

  • 在BAF配置文件(network.yaml)的部分中使用。proxy: haproxy env
  • platforms/shared/configuration/kubernetes-env-setup.yaml使用BAF配置文件执行剧本,然后获取HAProxy控制器服务的外部IP地址。
kubectl get services --all-namespaces -o wide
  • 复制EXTERNAL-IPhaproxy-ingress在命名空间服务进入控制器(ingress-controller)的输出信息。
  • 配置您的子域配置,以将外部DNS名称重定向到该外部IP。
  • 例如,如果您要将外部域后缀配置为test.corda.blockchaincloudpoc.com
  • 更新DNS映射以将所有请求从ALIAS上重定向到* .test.corda.blockchaincloudpoc.com并指向EXTERNAL-IP
  • 此外,您可以使用上面的外部DNS自动配置路由。

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值