

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# systemd を使用して Hub SDK をデプロイする
<a name="managedintegrations-sdk-v2-cookbook-deployment-hub-deployment-scripts"></a>

**重要**  
 最新の更新については`readme.md`、 release.tgz ファイルの `hubSystemdSetup` ディレクトリの に従ってください。

このセクションでは、Linux ベースのハブデバイスにサービスをデプロイおよび設定するためのスクリプトとプロセスについて説明します。

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

デプロイプロセスは、次の 2 つの主要なスクリプトで構成されます。
+ `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>

### SDK パッケージを抽出する
<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>

リストされている 2 つのステップに従ってデバイス設定ファイルを作成し、ハブにコピーします。

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 に名前変更)
+ 設定ファイル
+ 証明書
+ Systemd サービスファイル

## ハブのセットアップ
<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 コンポーネントにユーザー**ハブ**とグループ**ハブ**を使用します。設定には複数の方法があります。
+ カスタムユーザー/グループを使用する:

  ```
  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>

すべてのサービスを再起動するには、ハブから次のスクリプトを実行します。

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

セットアップスクリプトは、必要なディレクトリを作成し、適切なアクセス許可を設定し、サービスを自動的にデプロイします。SSH/SCP を使用していない場合は、特定のデプロイ方法`copy_to_hub.sh`に合わせて を変更する必要があります。デプロイする前に、すべての証明書ファイルと設定が正しく設定されていることを確認します。