HULFT-WebConnect 設定ガイド【CLI方式の設定ポイント】（3/6）

# CLI方式の設定ポイント
こんにちは、よろず相談担当 すぎもんです。本日は、HULFT-WebConnectの設定方法のポイントについてご紹介します。
今回は3回目で、CLI方式の設定について解説いたします。

## CLI方式の特長
CLI方式は、HULFT-WebConnect Data Transfer APIを利用してファイルを授受する仕組みで、標準で提供されるコマンドラインインターフェースモジュール（CLIモジュール）を用いて相手先HULFTと簡易的なファイル転送を実現するものです。
大きな特長が、**HULFT未導入のシステム**からもHULFTとファイルを授受できることになります。ただし、HULFT通信（HULFTの独自プロトコルを利用した通信）が行えないため、**単純なバイナリ転送しか行えない**という制約があります。

## 設定の流れ
設定箇所は、次の４ポイントをおさえる必要があります。
1. WebConnectサービス側の設定（Management Console）
2. Agentの設定（agent.conf/connection.key.store）
3. HULFTの設定（各種管理情報）
4. **CLIの設定**（transfer-cli.conf）

2は[Agent方式](https://qiita.com/sugimon/items/071693e248014505c8f3![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/7a4d9272-5dc5-1ec4-6bc5-811820007748.png)
)と考え方が同じなので割愛します。
CLI方式では、4の**CLIの設定**が中心となります。
![022_CLI方式.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/22af19d1-bc68-ee81-10e2-0f69173cbf46.png)

下図は、前回も紹介したWebConnectのオンラインマニュアル（[ファーストステップガイド](https://www.hulft.com/help/ja-jp/WebConnect-V3/index.htm)）に記載のある設定の流れで、**赤枠**部分が今回の設定箇所です。
![023_設定の流れ（CLI）.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/495812e4-0b7c-2cea-36d6-6cce3c2bd6d0.png)

## 設定の手順
![024_CLI方式（接続設定の全体イメージ）.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/4469605d-6f6e-7963-8e90-b4de24510047.png)

### Management Consoleの設定
1. コネクションIDの設定（接続設定）
[Agent方式](https://qiita.com/sugimon/items/071693e248014505c8f3)と基本的には同じです。
注意点は、クライアント種別に **Data Transfer API/CLIにチェック** することです。
![025_MC_接続設定（CLI）.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/8195ffc8-7764-a696-d522-6462c2abb525.png)


2. ルーティングの設定（接続許可）
[Agent方式](https://qiita.com/sugimon/items/071693e248014505c8f3)の手順を参照してください。

### CLIクライアントの設定
#### CLIモジュールのダウンロード
Management ConsoleのダウンロードページからCLIモジュールを入手します。今回の導入環境は、Windows Server 2019なのでWindows x64版をダウンロードします。
![026_CLIモジュールのダウンロード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/d5384740-c75a-0a7d-743b-c23691ca9f26.png)

#### CLIモジュールのインストール
インストール方法は、ダウンロードしたモジュール（zip）を展開するだけです。今回は、HULFT Family製品のデフォルトの導入先に展開します。
![027_Agentモジュールの展開.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/c288a057-8a7a-6d0c-007f-20ef4c2924ee.png)


#### APIキーの取得
Management Consoleの**APIキー管理**から新規に発行します。
スコープには、 **ファイル転送（API/CLI）** にチェックを入れてください。
![028_APIキー取得（CLI）.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/71efb178-cc00-49c9-61b1-e22373bc9ef1.png)
発行されたAPIキーは、CLIの設定で利用しますので大切に保管してください。
![029_APIキー取得-結果（CLI）.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/5708c058-01ba-536f-75f7-89f3546df730.png)

:::note warn
**注意ポイント**
APIキーを紛失した場合は、新しいAPIキーを発行してください。
:::

#### CLIの設定
CLIの設定ファイルの2種類ありますが、ここでは必須設定項目である**transfer-cli.conf**を扱います。ここでは、詳細な設定内容はここでは割愛しWebConnectサービスへの接続に最低限必要なポイントを説明します。
|キー名|説明|
|:-|:-|
|cli.apiKey|CLIで使用するAPIキー。Management Consoleで発行する必要がある。|
|cli.hostname|CLIを実行するホスト名。動作上はHULFTの自ホスト名と同様の位置づけ。|
|cli.agent.id|CLIを識別するID。動作上はAgent IDと同様の位置づけ。|
|connection.id|コネクションID。WebConnectサービスへの接続認証で必要。Management Consoleで設定する必要がある。|
|connection.password|コネクションパスワード。WebConnectサービスへの接続認証で必要。Management Consoleで設定する必要がある。|

```transfer-cli.confのサンプル
cli.apiKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx （←ここに発行したAPIキーを設定する）
cli.hostname=HOST-CL02　（CLIを実行するホスト名、HULFTの自ホスト名と同様の扱い）
cli.agent.id=AG-CL02　（CLIを識別するID、Agent IDと同様の扱い）
connection.id=CON-CL02　（コネクションID、Management Consoleで設定した値）
connection.password=XXXXXXXX　（コネクションパスワード）

service.accesspoint=service-ap.tokyo.webconnect.hulft.com
#proxy.host=
#proxy.port=
#proxy.username=
#proxy.password=
update.action=alert
update.action.onError=continue
directory.work=.
io.file.overwrite=true
io.session.timeout=60
jvm.options=-Xms32M -Xmx32M

```
### HULFTの設定
CLI方式では、管理者側のみHULFTが導入されているので、片側のみの設定になります。
CLI（クライアント）側からみて、ダウンロードのとき、アップロードのときについてのHULFT設定ポイントを簡単に解説します。

#### HULFT設定のサマリ
##### 1. ダウンロード（配信）を行う場合
|管理情報|設定内容|
|:-|:-|
|配信管理情報|通常の配信設定|
|転送グループ情報|必要|
|詳細ホスト情報（ホスト名）|**CLI**側のConID_AgID_Host(*1)|
|詳細ホスト情報（PROXYサーバ名）|**Agent**のホスト名|
|詳細ホスト情報（PROXYポートNo.|**Agent**のagent.sender.port（agent.confに定義）の値|

*1
 ConID:transfer-cli.confのconnection.idの値
 AgID:transfer-cli.confのcli.agent.idの値
 Host:transfer-cli.confのcli.hostnameの値

##### 2. アップロード（集信）を行う場合
|管理情報|設定内容|
|:-|:-|
|集信管理情報|通常の集信設定|
|転送グループ情報|-|
|詳細ホスト情報（ホスト名）|**CLI**側のHost(*2)|
|詳細ホスト情報（PROXYサーバ名）|-|
|詳細ホスト情報（PROXYポートNo.|-|

*2
 Host:transfer-cli.confのcli.hostnameの値

:::note info
**設定のポイント**
設定の考え方は、[Agent方式](https://qiita.com/sugimon/items/071693e248014505c8f3)とほとんど同じです。
押さえておくポイントとして、**transfer-cli.conf**の次の3つの設定値を意識することです。
* **connection.id**：相手側のコネクションIDとして扱う
* **cli.agent.id**：相手側のAgent IDとして扱う
* **cli.hostname**：相手側のHULFTホスト名として扱う
:::

## 疎通確認
CLI方式では、2種類の操作コマンドがあります。
* ダウンロードコマンド（GET）
* アップロードコマンド（PUT）

また、各コマンドの引数にも2種類の指定方法があります。
* **パラメータ指定**（今回はこの方法を紹介します。）
* 定義ファイル指定

### 1. ダウンロード
#### コマンド実行方法
```
> webconnect-transfer-cli get -file <filePath> -f <fileId> -h <ConID_AgID_Host>:<port>
```
filePath:ダウンロード先のファイルパス
fileId:ファイルID
ConID:Agent側のコネクションID
AgID:Agent側のAgent ID
Host:Agent側のHULFTホスト名
port:Agent側のHULFT**要求受付**ポート

#### ダウンロード実行例
![030_GET_コマンド.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/92fdd325-58e9-1e6e-8d8e-4d2e85fb9823.png)
![031_GET_履歴.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/93215cc0-6734-db52-6841-45ba132de0a2.png)




### 2. アップロード
#### コマンド実行方法
```
> webconnect-transfer-cli put -file <filePath> -f <fileId> -h <ConID_AgID_Host>:<port>
```
filePath:アップロード元のファイルパス
fileId:ファイルID
ConID:Agent側のコネクションID
AgID:Agent側のAgent ID
Host:Agent側のHULFTホスト名
port:Agent側のHULFT**集信**ポート

#### アップロード実行例
![032_PUT_コマンド.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/e7d76497-1671-bcef-0ba9-86df3227058c.png)
![033_PUT_履歴.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/fdce2089-9b8e-52af-6a56-427d0cc01949.png)


---
以上、CLI方式の設定手順はご理解いただけたでしょうか？

***
**HULFT-WebConnect 設定ガイド** は、全6回のシリーズで順次公開予定です。

1. [４つの転送方式の違い](https://qiita.com/sugimon/items/1492714fb668e9a0c910)
2. [Agent方式の設定ポイント](https://qiita.com/sugimon/items/071693e248014505c8f3)
3. **CLI方式の設定ポイント**（本記事）
4. [Webブラウザ方式の設定ポイント](https://qiita.com/sugimon/items/521ec99dc20e4cdb8730)
5. [D-Client方式の設定ポイント](https://qiita.com/sugimon/items/adbb055ae1208ed8143c)
6. [その他設定上の考慮ポイント](https://qiita.com/sugimon/items/0ffa6838d24650e8461f)

次回は、Webブラウザ方式について解説いたします。
***
本記事は、[HULFT-WebConnect V3 マニュアル](https://www.hulft.com/help/ja-jp/WebConnect-V3/index.htm)を参考にしています。