

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

# 安装生产许可证
<a name="setting-up-production"></a>



本主题中的以下几节介绍了如何购买和使用生产许可证（永久许可证或订阅）。

**Topics**
+ [步骤 1：安装 RLM 服务器](#install-rlm)
+ [步骤 2：获取 RLM 服务器的主机 ID](#hostid-rlm)
+ [步骤 3：购买永久许可证或订阅](#license-purchase)
+ [步骤 4：修改许可证文件](#setting-up-production-license-file)
+ [步骤 5：配置 RLM 服务器](#setting-up-rlm-server)
+ [步骤 6：配置 Amazon DCV 服务器](#setting-up-dcv-server)

## 步骤 1：安装 RLM 服务器
<a name="install-rlm"></a>

当您购买永久许可证或订阅时，您将获得一个定义许可证条款的许可证文件。您必须在 Reprise License Manager (RLM) 服务器上安装该许可证文件。

有关 RLM 的更多信息，请参阅 [Reprise Software](https://reprisesoftware.com/products/reprise-license-manager-rlm/) 网站。

**Topics**
+ [在 Windows 上安装 RLM 服务器](#install-rlm-windows)
+ [在 Linux 上安装 RLM 服务器](#install-rlm-linux)

### 在 Windows 上安装 RLM 服务器
<a name="install-rlm-windows"></a>

**在 Windows 上安装 RLM 服务器**

1. 从 [Reprise Software 网站](https://reprisesoftware.com/support/admin/license-administration-bundle/)下载 RLM 许可证管理包。
**注意**  
从 Amazon DCV 版本 2022.1 开始，需要使用 14 和更高版本的 RLM 服务器。以前的版本要求使用 12 和更高版本的 RLM。  
建议安装最新稳定版本的 RLM 许可证管理包。

1. 将 RLM 许可证管理包安装到 `C:\RLM`。

### 在 Linux 上安装 RLM 服务器
<a name="install-rlm-linux"></a>

**在 Linux 上安装 RLM 服务器**

1. 从 [Reprise Software 网站](https://reprisesoftware.com/support/admin/license-administration-bundle/)下载 RLM 许可证管理包。
**注意**  
从 Amazon DCV 版本 2022.1 开始，需要使用 14 和更高版本的 RLM 服务器。以前的版本要求使用 12 和更高版本的 RLM。  
建议安装最新稳定版本的 RLM 许可证管理包。

1. 创建用户组和 `rlm` 用户。这可以是任何有效的用户或服务账户。我们强烈建议您不要将该值设置为根账户。

   ```
   $ groupadd -r rlm
   ```

   ```
   $ useradd -r -g rlm -d "/opt/nice/rlm" -s /sbin/nologin -c "RLM License Server" rlm
   ```

1. 创建 RLM 服务器所需的 `/opt/nice/rlm` 和 `/opt/nice/rlm/license` 目录。

   ```
   $ mkdir -p /opt/nice/rlm/license
   ```

1. 将 RLM 许可证管理包的内容提取到 `/opt/nice/rlm/`，并确保文件由 `rlm` 用户拥有。

   ```
   $ tar xvf x64_l1.admin.tar.gz -C /opt/nice/rlm/ --strip-components 1
   ```

   ```
   $ chown -R rlm:rlm /opt/nice/rlm
   ```

## 步骤 2：获取 RLM 服务器的主机 ID
<a name="hostid-rlm"></a>

安装 RLM 服务器后，您必须获取 RLM 服务器的主机 ID。在购买永久许可证或订阅时，您需要提供该主机 ID。

### 在 Windows 上获取 RLM 服务器主机 ID
<a name="hostid-rlm-windows"></a>

**要获取服务器的主机 ID，请打开命令提示符，**  
导航到 `C:\RLM\`，然后运行以下命令。

```
C:\> rlmutil.exe rlmhostid ether
```

该命令返回 RLM 服务器的主机 ID，如下所示。

```
Hostid of this machine: 06814example
```

记下主机 ID。您需要在下一步中使用该 ID。

### 在 Linux 上获取 RLM 服务器主机 ID
<a name="hostid-rlm-linux"></a>

**获取服务器的主机 ID，返回一次**

1. 导航到 `/opt/nice/rlm/`。

1. 运行如下命令：

   ```
   $ ./rlmutil rlmhostid ether
   ```

   该命令返回每个网络接口的 RLM 服务器主机 ID，如下所示。

1. 记录主机 ID。您需要在下一步中使用该 ID。

**Example**  
运行该过程并返回下面的单个 ID：  

```
Hostid of this machine: 0a1b2c3d4e5f
```
然后，记下该 ID 并使用该 ID 购买 DCV 许可证。

**获取服务器的主机 ID，返回多次**

1. 导航到 `/opt/nice/rlm/`。

1. 运行如下命令：

   ```
   $ ./rlmutil rlmhostid ether
   ```

    IDs 将在列表中返回多个 IDs。

1. 运行如下命令。

   ```
   iface=$(route -n | grep " UG " | tr -s " " | cut -d" " -f8)
   ip link show $iface | grep link/ether | tr -s " " | cut -d" " -f3 | tr -d ":"
   ```

   该命令应返回网关网络接口的 RLM 服务器主机 ID。

1. 记录主机 ID。您需要在下一步中使用该 ID。

**Example**  
程序已运行，并在多 IDs 个 ID 的列表中返回了多个 ID：  

```
Hostid of this machine: 0a1b2c3d4e5f 1b2c3d4e5f6a 2c3d4e5f6a7b 3d4e5f6a7b8c
```
运行 interface 命令并返回以下 ID：  

```
Hostid of this machine: 0a1b2c3d4e5f
```
然后，记下该 ID 并使用该 ID 购买 DCV 许可证。

## 步骤 3：购买永久许可证或订阅
<a name="license-purchase"></a>

有关如何购买 Amazon DCV 永久许可证或订阅的信息，请参阅 Amazon DCV 网站上的 [How to Buy](https://www.nice-software.com/index.html#buy) 并查找您所在区域的 Amazon DCV 分销商或经销商。

您必须提供 RLM 服务器的主机 ID。主机 ID 将嵌入到 Amazon DCV 提供的许可证文件中。

## 步骤 4：修改许可证文件
<a name="setting-up-production-license-file"></a>

在您购买 Amazon DCV 永久许可证或订阅时，您会收到一个定义许可证的 `license.lic` 文件。`license.lic` 文件包含以下信息：
+ RLM 服务器的主机名。
+ 您在购买许可证时提供的 RLM 服务器主机 ID。
+ RLM 服务器的 TCP 端口号。默认值为 `5053`。
+ ISV 端口号。这是一个可选端口，RLM 服务器在该端口上侦听 Amazon DCV 许可证请求。如果未指定，RLM 在启动时选择一个随机端口。
+ 许可证涵盖的 Amazon DCV 产品以及每个产品的以下详细信息：
  + 许可证涵盖的主要版本（例如，2017 Amazon DCV 产品为 `2017`）。
  + 到期日期。`Permanent` 表示许可证不会过期。
  + 最大并发会话数（例如，`10` 表示服务器上的 10 个并发会话）。
  + 许可证校验和。
  + 许可证签名。

下面的代码块显示了 `license.lic` 文件的格式：

```
HOST {{RLM_server_hostname}} {{RLM_server_host_id}} {{RLM_server_port}}
ISV nice port={{port_number}}
LICENSE {{product_1}} {{major_version}} {{expiration_date}} {{concurrent_sessions}} share=hi _ck={{checksum}} sig="{{signature}}"
LICENSE {{product_2}} {{major_version}} {{expiration_date}} {{concurrent_sessions}} share=hi _ck={{checksum}} sig="{{signature}}"
```

以下代码块显示了已省略 ISV 端口的 `license.lic` 文件的示例。许可证文件包括两个 Amazon DCV 产品（DCV 和 dcv-gl）的许可证。

```
HOST My-RLM-server abcdef123456 5053
ISV nice
LICENSE nice dcv 2017 permanent 10 share=hi _ck=456789098a sig="abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890ab"
LICENSE nice dcv-gl 2017 permanent 10 share=hi _ck=123454323x sig="1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz12"
```

**编辑 `license.lic` 文件**

1. 使用常用的文本编辑器打开 文件。

1. 在该文件中的第一行（该行以 `HOST` 开头）中添加您的 RLM 服务器的主机名和 TCP 端口号。
**警告**  
{{RLM\_server\_host\_id}}是您在购买许可证时提供的主机 ID。您无法编辑{{RLM\_server\_host\_id}}。

1. （可选）在文件中以 `ISV` 开头的行中，添加 `port={{port_number}}` 以添加 ISV 端口号。需要使用该端口才能与 DCV 服务器进行通信。

   如果您不希望指定 ISV 端口，请省略 `port={{port_number}}`。如果您未指定 ISV 端口，RLM 在每次启动时使用随机端口。
**警告**  
如果您的防火墙设置禁止使用随机选择的端口，则除了 `HOST` 行中指定的 RLM 端口以外，您还需要指定随机选择的端口并配置防火墙以启用该端口。

1. 保存并关闭 文件。

**警告**  
编辑许可证文件的任何其他部分会破坏文件的签名并使许可证无效。

## 步骤 5：配置 RLM 服务器
<a name="setting-up-rlm-server"></a>

在修改许可证文件后，您必须将其放置在 RLM 服务器上，然后启动 RLM 服务。

**Topics**
+ [在 Windows 上配置 RLM 服务器](#prep-windows)
+ [在 Linux 上配置 RLM 服务器](#prep-linux)

### 在 Windows 上配置 RLM 服务器
<a name="prep-windows"></a>

**在 Windows 上配置 RLM 服务器**

1. 连接到您的 RLM 服务器。

1. 将编辑后的 `license.lic` 文件复制到 `C:\RLM\license\`。

1. 从 Amazon DCV 服务器中复制 `C:\Program Files\NICE\DCV\Server\license\nice.set` 文件，并将其放置在 RLM 服务器上的 `C:\RLM\` 文件夹中。

1. 将 RLM 服务器安装为 Windows 服务。

   ```
   C:\> rlm.exe -nows -dlog C:\RLM\rlm.log -c C:\RLM\license -install_service -service_name dcv-rlm
   ```

   有关 RLM 启动选项的更多信息，请参阅 [Reprise Software License Manager（RLM）](https://reprisesoftware.com/products/reprise-license-manager-rlm/)产品页面。

1. 启动 RLM 服务器。

   ```
   C:\> net start dcv-rlm
   ```

1. 确认 RLM 服务器正在运行。

   1. 使用您的首选文本编辑器打开 `C:\RLM\nice.dlog`，并确认显示以下行。

      ```
      {{date_time}} (nice) Server started on license1 (hostid: {{host_id}}) for: dcv dcv-gl
      ```
**注意**  
`rlm.log` 文件的内容可能会随 RLM 服务器版本而异。

   1. 运行如下命令。

      ```
      C:\RLM\rlmutil rlmstat -a -c {{rlm_server_hostname}}@5053
      ```

      该命令返回有关 RLM 服务器的信息。

### 在 Linux 上配置 RLM 服务器
<a name="prep-linux"></a>

**在 Linux 上配置 RLM 服务器**

1. 将编辑后的 `license.lic` 文件复制到 `/opt/nice/rlm/license/`。

1. 从 Amazon DCV 服务器中复制 `/usr/share/dcv/license/nice.set` 文件，并将其放置在 RLM 服务器上的 `/opt/nice/rlm` 中。

1. 创建 RLM 服务器服务，并确保该服务在启动时自动启动。

   1. 在 `dcv-rlm` 文件夹中创建名为 `/opt/nice/rlm/` 的文件：

      ```
      $ touch /opt/nice/rlm/dcv-rlm
      ```

   1. 使用您常用的文本编辑器打开文件，并添加以下脚本。保存并关闭 文件。

      ```
      #! /bin/sh
      # chkconfig: 35 99 01
      # description: The Reprise License Manager daemon.
      # processname: dcv-rlm
      
      ### BEGIN INIT INFO
      # Provides: dcv-rlm
      # Required-Start: $local_fs $remote_fs $syslog
      # Required-Stop: $local_fs $remote_fs $syslog
      # Default-Start: 3 4 5
      # Default-Stop: 0 1 2 6
      # Short-Description: The Reprise License Manager daemon.
      # Description: A service that runs the Reprise License Manager daemon.
      ### END INIT INFO
      
      # user used to run the daemon
      RLM_USER="rlm"
      
      # root of rlm installation
      RLM_ROOT="/opt/nice/rlm"
      
      # license directory (license files should have .lic extension)
      RLM_LICENSE_DIR="/opt/nice/rlm/license"
      
      # log file
      RLM_LOG_FILE="/var/log/rlm.log"
      
      _getpid() {
          pidof -o $$ -o $PPID -o %PPID -x "$1"
      }
      
      start() {
          echo -n "Starting rlm: "
          touch ${RLM_LOG_FILE}
          chown "${RLM_USER}" ${RLM_LOG_FILE}
          su -p -s /bin/sh "${RLM_USER}" -c "${RLM_ROOT}/rlm -c ${RLM_LICENSE_DIR} \
              -nows -dlog +${RLM_LOG_FILE} &"
          if [ $? -ne 0 ]; then
              echo "FAILED"
              return 1
          fi
          echo "OK"
      }
      
      stop() {
          echo -n "Stopping rlm: "
          pid=`_getpid ${RLM_ROOT}/rlm`
          if [ -n "$pid" ]; then
              kill $pid >/dev/null 2>&1
              sleep 3
              if [ -d "/proc/$pid" ] ; then
                  echo "FAILED"
                  return 1
              fi
          fi
          echo "OK"
      }
      
      status() {
          pid=`_getpid ${RLM_ROOT}/rlm`
          if [ -z "$pid" ]; then
              echo "rlm is stopped"
              return 3
          fi
          echo "rlm (pid $pid) is running..."
          return 0
      }
      
      restart() {
          stop
          start
      }
      
      case "$1" in
          start)
              start
              ;;
          stop)
              stop
              ;;
          status)
              status
              ;;
          restart)
              restart
              ;;
          *)
              echo $"Usage: $0 {start|stop|status|restart}"
              exit 1
      esac
      
      exit $?
      
      # ex:ts=4:et:
      ```

   1. 将脚本编写为可执行文件，将其复制到 `/etc/init.d/`，然后将其添加到 `chkconfig` 实用程序：

      ```
      chmod +x /opt/nice/rlm/dcv-rlm 
      ```

      ```
      cp -a /opt/nice/rlm/dcv-rlm /etc/init.d/
      ```

      ```
      chkconfig --add dcv-rlm
      ```

1. 启动 RLM 服务器：

   ```
   $ service dcv-rlm start
   ```

1. 确保 RLM 服务器正在按预期运行和工作。使用您常用的文本编辑器打开 `var/log/rlm.log`，并确认显示以下行：

   ```
   {{date_time}} (nice) Server started on license1 (hostid: {{host_id}}) for: dcv dcv-gl
   ```
**注意**  
`rlm.log` 文件的内容可能会随 RLM 服务器版本而异。

## 步骤 6：配置 Amazon DCV 服务器
<a name="setting-up-dcv-server"></a>

配置您的 Amazon DCV 服务器以使用 RLM 服务器。为此，您必须在 Amazon DCV 服务器上配置 `license-file` 配置参数。

 必须根据要连接的 RLM 服务器的规范设置 `license-file` 参数，格式为 `{{RLM_server_port}}@{{RLM_server}}`。可以将 RLM 服务器指定为主机名或 IP 地址。如果未明确配置 RLM 服务器端口，则默认为 `5053`。

 如果正在使用多个 RLM 服务器，您可以指定一个包含多个 RLM 服务器规范的列表，以 `:`（在 Linux 上）或 `;`（在 Windows 上）分隔。然后，服务器依次尝试连接到每个服务器，直到可以与相应的 RLM 服务器建立连接。例如，如果无法访问主 RLM 服务器，在使用 RLM 失效转移服务器接替该服务器时，这可能是特别有用的。在这种情况下，您可以按以下格式指定许可证：`{{RLM_primary_server_port}}@{{RLM_primary_server}}:{{RLM_failover_server_port}}@{{RLM_failover_server}}`。

**注意**  
如果 Amazon DCV 服务器安装在 Windows 上，您需要使用 `;` 分隔规范中的条目。

**Topics**
+ [Windows Amazon DCV 服务器配置](#config-win)
+ [Linux Amazon DCV 服务器配置](#config-linux)

### Windows Amazon DCV 服务器配置
<a name="config-win"></a>

**配置 Windows 服务器上的 `license-file` 配置参数**

1. 打开 Windows 注册表编辑器。

1. **导航到 **HKEY\_USERS\\ S-1-5-18\\ Software\\\\ comGSettings\\ n icesoftware\\ dcv\\ license\\ key，然后选择许可证文件参数**。**

   如果该注册表项中没有 `license-file` 参数，您必须创建它：

   1. 在左侧面板中打开 **license** 注册表项的上下文（右键单击）菜单，然后依次选择**新建**和**字符串值**。

   1. 对于**名称**，输入 `license-file` 并按 **Enter**。

1. 打开 **license-file** 参数。对于**值数据**，请输入 `{{RLM_server_port}}@{{RLM_server}}` 格式的 RLM 服务器的端口号和主机名。如果您需要设置到多个 RLM 服务器的连接，请查看上面的注释。

1. 选择**确定**，并关闭 Windows 注册表编辑器。

### Linux Amazon DCV 服务器配置
<a name="config-linux"></a>

**配置 Linux 服务器上的 `license-file` 配置参数**

1. 导航到 `/etc/dcv/`，并使用您常用的文本编辑器打开 `dcv.conf`。

1. 在 `[license]` 部分中找到 `license-file` 参数。然后，将现有路径替换为 RLM 服务器的端口和主机名，格式为 `{{RLM_server_port}}@{{RLM_server}}`。

   如果 `license-file` 部分中没有 `[license]` 参数，则使用以下格式手动添加此参数：

   ```
   license-file = "{{RLM_server_port}}@{{RLM_server}}"
   ```

   如果您需要设置到多个 RLM 服务器的连接，请查看上面的注释。

1. 保存并关闭 文件。