

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

# 使用系统部署 Hub SDK
<a name="managedintegrations-sdk-v2-cookbook-deployment-hub-deployment-scripts"></a>

**重要**  
 请按`readme.md`照 release.tgz 文件`hubSystemdSetup`目录中的内容获取最新更新。

本节介绍在 Linux-based 中心设备上部署和配置服务的脚本和过程。

## 概述
<a name="managedintegrations-sdk-v2-cookbook-deployment-overview"></a>

部署过程由两个主要脚本组成：
+ `copy_to_hub.sh`: 在主机上运行以将必要文件复制到集线器
+ `setup_hub.sh`: 在集线器上运行以配置环境和部署服务

此外，还`systemd/deploy_iotshd_services_on_hub.sh`处理进程引导顺序和进程权限管理，并由`setup_hub.sh`自动触发。

## 先决条件
<a name="managedintegrations-sdk-v2-cookbook-deployment-prerequisites"></a>

成功部署需要满足列出的先决条件。
+ 集线器上有 systemd 服务可用
+ 通过 SSH 访问中心设备
+ 集线器设备上的 Sudo 权限
+ `scp`安装在主机上的实用程序
+ `sed`安装在主机上的实用程序
+ 主机上安装了 unzip 实用程序

## 文件结构
<a name="managedintegrations-sdk-v2-cookbook-deployment-file-structure"></a>

文件结构旨在便于组织和管理其各个组成部分，从而实现内容的高效访问和导航。

```
hubSystemdSetup/
├── README.md
├── copy_to_hub.sh 
├── setup_hub.sh
├── iotshd_config.json  # Sample configuration file
├── local_certs/  # Directory for DHA certificates
└── systemd/ 
    ├── *.service.template  # Systemd service templates 
    └── deploy_iotshd_services_on_hub.sh
```

在 SDK 版本 tgz 文件中，总体文件结构为：

```
IoT-managed-integrations-Hub-SDK-aarch64-v1.0.0.tgz
├──package/
    ├──greengrass/
        ├──artifacts/
        ├──recipes/
    ├──hubSystemdSetup/
        ├── REAME.md
        ├── copy_to_hub.sh 
        ├── setup_hub.sh
        ├── iotshd_config.json  # Sample configuration file
        ├── local_certs/  # Directory for DHA certificates
        └── systemd/ 
            ├── *.service.template  # Systemd service templates 
            └── deploy_iotshd_services_on_hub.sh
```

## 初始 设置
<a name="managedintegrations-sdk-v2-cookbook-deployment-initial-setup"></a>

### 解压软件开发工具包包
<a name="managedintegrations-sdk-v2-cookbook-deployment-extract-sdk"></a>

```
tar -xzf managed-integrations-Hub-SDK-v{{Version}}-linux-aarch64-{{timestamp}}.tgz
```

导航到解压缩的目录并准备软件包：

```
# Create package.zip containing required artifacts
zip -r package.zip package/greengrass/artifacts
# Move package.zip to the hubSystemdSetup directory
mv package.zip ../hubSystemdSetup/
```

### 添加设备配置文件
<a name="managedintegrations-sdk-v2-cookbook-deployment-prepare-certificates"></a>

按照列出的两个步骤创建设备配置文件并将其复制到集线器。

1. [添加设备配置文件](managedintegrations-sdk-v2-cookbook-hubsetup.md#managedintegrations-sdk-v2-cookbook-genconfig)以创建所需的设备配置文件。SDK 使用此文件来实现其功能。

1. [复制配置文件](managedintegrations-sdk-v2-cookbook-hubsetup.md#managedintegrations-sdk-v2-cookbook-config-contents)以将创建的配置文件复制到集线器。

## 将文件复制到集线器
<a name="managedintegrations-sdk-v2-cookbook-deployment-copy-files-to-hub"></a>

从您的主机运行部署脚本：

```
chmod +x copy_to_hub.sh
./copy_to_hub.sh {{hub_ip_address}} {{package_file}}
```

**Example 示例**  

```
./copy_to_hub.sh 192.168.50.223 ~/Downloads/EAR3-package.zip
```

这复制了：
+ 软件包文件（在集线器上重命名为 package.zip）
+ 配置文件
+ 证书
+ 系统服务文件

## 设置集线器
<a name="managedintegrations-sdk-v2-cookbook-deployment-set-up-hub"></a>

复制文件后，通过 SSH 连接到集线器并运行安装脚本：

```
ssh hub@{{hub_ip}}
chmod +x setup_hub.sh
sudo ./setup_hub.sh
```

### 用户和群组配置
<a name="managedintegrations-sdk-v2-cookbook-deployment-user-group-config"></a>

默认情况下，我们将用户**中心和群组**中心****用于 SDK 组件。有多种方法可以对其进行配置：
+ 使用自定义 user/group：

  ```
  sudo ./setup_hub.sh --user={{USERNAME}} --group={{GROUPNAME}}
  ```
+ 在运行安装脚本之前手动创建它们：

  ```
  sudo groupadd -f {{GROUPNAME}}
  sudo useradd -r -g {{GROUPNAME}} {{USERNAME}}
  ```
+ 在中添加命令`setup_hub.sh`。

## 管理 服务
<a name="managedintegrations-sdk-v2-cookbook-deployment-manage-services"></a>

要重新启动所有服务，请从 hub 运行以下脚本：

```
sudo /usr/local/bin/deploy_iotshd_services_on_hub.sh
```

安装脚本将创建必要的目录、设置适当的权限并自动部署服务。如果您不使用 SSH/SCP，则必须`copy_to_hub.sh`针对您的特定部署方法进行修改。在部署之前，请确保所有证书文件和配置均已正确设置。