

本指南提供了 Wickr Enterprise 的文档。如果您使用的是 AWS Wickr，请参阅 [AWS Wickr 管理指南](https://docs.aws.amazon.com/wickr/latest/adminguide/what-is-wickr.html)或 AW [S Wickr 用户](https://docs.aws.amazon.com/wickr/latest/userguide/what-is-wickr.html)指南。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Wickr Enterprise 入门
<a name="getting-started"></a>

**Topics**
+ [要求](#getting-started-requirements)
+ [安装依赖项。](#getting-started-install-dependencies)
+ [配置](#getting-started-configure)
+ [引导](#getting-started-bootstrap)
+ [部署](#getting-started-deploy)
+ [生成 KOTS Config](#getting-started-generate-kots-config)

## 要求
<a name="getting-started-requirements"></a>

在您开始之前，确认您满足以下要求：
+ 下载 Node.js 16\$1 
+ AWS CLI 为您的账户配置了凭据。

  它们将来自您的配置文件 `~/.aws/config` 或者使用 `AWS_` 环境变量。
+ 安装 kubectl。有关更多信息，请参阅*亚马逊 EKSUser *指南中的[安装或更新 kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)。
+ 安装 kots CLI。有关更多信息，请参阅[安装 kots CLI](https://docs.replicated.com/reference/kots-cli-getting-started)。
+ 允许名单的端口：443/TCP 用于 HTTPS 和 TCP 呼叫流量；16384-19999/UDP 用于 UDP 呼叫流量；TCP/8443 

**架构**

![\[架构示意图。\]](http://docs.aws.amazon.com/zh_cn/wickr/latest/wickrenterpriseinstall/images/enterprise-architecture.png)


## 安装依赖项。
<a name="getting-started-install-dependencies"></a>

您可以使用以下命令将所有依赖项添加到默认软件包：

```
 npm install
```

## 配置
<a name="getting-started-configure"></a>

AWS Cloud Development Kit (AWS CDK) 使用上下文值来控制应用程序的配置。Wickr Enterprise 使用 CDK 上下文值来控制一些设置，例如 Wickr Enterprise 安装的域名或保留 RDS 备份的天数。有关更多信息，请参阅*AWS Cloud Development Kit (AWS CDK) 开发人员指南*中的[运行时上下文](https://docs.aws.amazon.com/cdk/v2/guide/context.html)。

设置上下文值的方法有多种，但我们建议编辑 `cdk.context.json` 中的值以适应您的特定用例。只有以 `wickr/` 开头的上下文值与 Wickr Enterprise 部署相关；其余的则是 CDK 特定的上下文值。要在下次通过 CDK 进行更新时保持相同的设置，请保存此文件。

您必须至少设置`wickr/licensePath`、`wickr/domainName`、和`wickr/acm:certificateArn`或`wickr/route53:hostedZoneId`和`wickr/route53:hostedZoneName`。

**使用公有托管区域**

如果您的 Route 53 公共托管区域中有 Route 53 AWS 账户，我们建议您使用以下设置来配置 CDK 上下文：
+ `wickr/domainName`：用于此 Wickr Enterprise 部署的域名。如果您使用 Route 53 公有托管区域，则将自动为该域名创建 DNS 记录和 ACM 凭证。
+ `wickr/route53:hostedZoneName`：用于创建 DNS 记录的 Route 53 托管区域名称。
+ `wickr/route53:hostedZoneId`：用于创建 DNS 记录的 Route 53 托管区域 ID。

此方法代表您创建 ACM 凭证，以及将您的域名指向 Wickr Enterprise 部署前的负载均衡器的 DNS 记录。

**没有公有托管区域**

如果您的账户中没有 Route 53 公有托管区域，则必须手动创建 ACM 凭证，然后使用 `wickr/acm:certificateArn` 上下文值将其导入 CDK。
+ `wickr/domainName`：用于此 Wickr Enterprise 部署的域名。如果您使用 Route 53 公有托管区域，则将自动为该域名创建 DNS 记录和 ACM 凭证。
+ `wickr/acm:certificateArn`：要在负载均衡器上使用的 ACM 凭证的 ARN。如果您的账户中没有 Route 53 公有托管区域，则必须提供此值。

**将证书导入到 ACM。**

您可以使用以下命令导入外部获得的凭证：

```
aws acm import-certificate \ 
   --certificate fileb://path/to/cert.pem \
   --private-key fileb://path/to/key.pem \
   --certificate-chain fileb://path/to/chain.pem
```

输出将是凭证 ARN，应将其用作 `wickr/acm:certificateArn` 上下文设置的值。上传的凭证必须对 `wickr/domainName` 有效，否则 HTTPS 连接将无法验证。有关更多信息，请参阅 *AWS Certificate Manager 用户指南*中的[导入证书](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-api-cli.html)。

**创建 DNS 记录**

由于没有可用的公有托管区域，因此必须在部署完成后手动创建 DNS 记录，以指向 Wickr Enterprise 部署前的负载均衡器。

**部署到现有 VPC**

如果您需要使用现有 VPC，则可以使用现有 VPC。但是，必须将 VPC 配置为满足 EKS 所需的规范。有关更多信息，请参阅 [Amazon EKS *用户指南中的查看 VPC 和子网的 Amazon EKS* 联网要求](https://docs.aws.amazon.com/eks/latest/userguide/network-reqs.html)，并确保要使用的 VPC 符合这些要求。

此外，强烈建议您确保拥有用于以下服务的 VPC 终端节点：
+ 云观察
+ 云监视日志
+ EC2
+ EC2\$1消息
+ ECR
+ ECR\$1DOCKER
+ 弹性负载平衡
+ KMS
+ 秘密经理
+ SSM
+ SSM\$1MESSAGES

要将资源部署到现有 VPC，请设置以下上下文值：
+ `wickr/vpc:id` - 要将资源部署到其中的 VPC ID（例如 `vpc-412beef`）。
+ `wickr/vpc:cidr`-VPC 的 IPv4 CIDR（例如`172.16.0.0/16`）。
+ `wickr/vpc:publicSubnetIds` - VPC 中以逗号分隔的公有子网列表。应用程序负载均衡器和调用 EKS Worker 节点将部署在这些子网中（例如 `subnet-6ce9941,subnet-1785141,subnet-2e7dc10`）。
+ `wickr/vpc:privateSubnetIds` - VPC 中以逗号分隔的私有子网列表。EKS Worker 节点和堡垒机服务器将部署在这些子网中（例如 `subnet-f448ea8,subnet-3eb0da4,subnet-ad800b5`）。
+ `wickr/vpc:isolatedSubnetIds` - VPC 中以逗号分隔的隔离子网列表。RDS 数据库将部署在这些子网中（例如 `subnet-d1273a2,subnet-33504ae,subnet-0bc83ac`）。
+ `wickr/vpc:availabilityZones` - VPC 中以逗号分隔的子网可用区列表（例如 `us-east-1a,us-east-1b,us-east-1c`）。

有关接口 VPC 终端节点的更多信息，请参阅[使用接口 VPC 终端节点访问 AWS 服务](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)。

**其他设置**

有关更多信息，请参阅[上下文值](https://docs.aws.amazon.com/wickr/latest/wickrenterpriseinstall/context-values.html)。

## 引导
<a name="getting-started-bootstrap"></a>

如果这是您第一次在此特定 AWS 账户 和地区使用 CDK，则必须先*启动*该帐户才能开始使用 CDK。

```
npx cdk bootstrap
```

## 部署
<a name="getting-started-deploy"></a>

此过程大约需要 45 分钟。

```
npx cdk deploy --all --require-approval=never
```

完成后，基础架构已创建完毕，您可以开始安装 Wickr Enterprise 了。

**创建 DNS 记录**

如果您在配置 CDK 时使用公有托管区域，则不需要执行此步骤。

部署过程的输出将包含一个值 `WickrAlb.AlbDnsName`，即负载均衡器的 DNS 名称。输出如下所示：

```
WickrAlb.AlbDnsName = Wickr-Alb-1Q5IBPJR4ZVZR-409483305.us-west-2.elb.amazonaws.com
```

在这种情况下，DNS 名为 `Wickr-Alb-1Q5IBPJR4ZVZR-409483305.us-west-2.elb.amazonaws.com`。这是为您的域名创建 CNAME 或 A/AAAA （别名）记录时应使用的值。

如果您没有部署输出，运行以下命令来显示负载均衡器 DNS 名称：

```
aws cloudformation describe-stacks --stack-name WickrAlb \ 
   --query 'Stacks[0].Outputs[?OutputKey==`AlbDnsName`].OutputValue' \
   --output text
```

## 生成 KOTS Config
<a name="getting-started-generate-kots-config"></a>

**警告**  
此文件包含有关您的安装的敏感信息。请勿公开共享或保存。

Wickr Enterprise 安装程序需要一些有关基础架构的配置值才能成功安装。您可以使用帮助脚本来生成配置值。

```
./bin/generate-kots-config.ts > wickr-config.json
```

如果您在第一步中将外部凭证导入 ACM，请将 `--ca-file` 标志传递给此脚本，例如：

```
./bin/generate-kots-config.ts --ca-file path/to/chain.pem > wickr-config.json
```

如果您收到错误消息，提示堆栈不存在，请将 `AWS_REGION` 环境变量 (`export AWS_REGION=us-west-2`) 设置为所选区域，然后重试。或者，如果您设置了上下文值`wickr/stackSuffix`，请传递带有`--stack-suffix`标志的后缀。