1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (4) Wazi aaS への接続

Last updated at Posted at 2023-06-29

はじめに

PC上(Windows)の各種ツールからWazi aaSのz/OSに接続する方法を見ていきます。
ここでは前の記事のネットワーク構成で示した浮動IPを使用する例で構成されている前提で進めます。
(VPNを使用する場合も基本的な考え方は同様ですので適宜読み替えてください。)

関連記事

Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (1) 概要
Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (2) 仮想サーバー作成
Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (3) ネットワーク構成
Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (4) Wazi aaS への接続
Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (5) Stock Iamge確認
Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (6) Stock Iamge基本操作/カスタマイズ
Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (7) Wazi Image Builder
Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (7)' Wazi Image Builder - Trouble Shootingメモ
Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (8) Wazi aaS仮想サーバーの複製
Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (9) TerraformによるWazi aaS仮想サーバーの管理

概要

image.png
上のイメージのようにPC上の各ツールからWazi aaSに接続してみます。
Wazi aaSを使用する際の作法としては、まず最初にSSHで接続してIBMUSERのパスワードを設定する必要がありますのでSSHでの接続は必須です。

PCからの接続例

事前準備

PC上のhostsにホスト名とWazi aaS仮想サーバーのIPアドレスのマッピングをしておきます。
仮想サーバー名に合わせてwazi01という名前のホスト名を定義します。

SSH

参考: Connecting to z/OS virtual server instances

まずはじめにSSHでWazi aaSのUSSに接続する必要がありますのでPC上にはSSHクライアントが必要になります。上のマニュアルの記述の通りコマンドプロンプトやWSLからsshコマンドを使用してもよいですが、ここでは使い勝手のよいteratermを使用する例を示します。

teratermを起動し新しい接続でホスト名wazi01、サービス:SSH、ポート22を指定します。
image.png

ユーザー名:ibmuser、認証方式としてRSA/DSA/ECDSA/ED25519鍵を使うを選択し、秘密鍵としてWazi aaS仮想サーバー作成時に作成したキーペアの秘密鍵のファイルを指定します。
image.png

プロンプトが出れば接続OKです。
image.png

IBMUSERパスワード設定

SSH接続ができたら、ここからTSOコマンドを投入してIBMUSERのパスワードを設定します。

tsocmd 'ALTUSER IBMUSER PASSWORD(XXXXXXXX) NOEXPIRE RESUME'

証明書取得

後続のPCOM接続で必要なCA証明書を入手しておきます。CA証明書は、/u/ibmuser/common_cacertに提供されています。

マニュアルの記述に従って、scpコマンドを使用してもよいですが、ここではteratermを使用する例を示します。
teratermのメニューから ファイル - SSH SCP を選択します。以下のポップアップ・ウィンドウが開くので、下段の項目でFrom:/u/ibmuser/common_cacert、To: に適当なPC上のフォルダを指定し、Reciveを押します。
image.png

common_cacertというファイルがPC上に作成されますので、拡張子.cerを付与します。ファイルをダブルクリックして開くと証明書の中身の情報が確認できます。

image.png

image.png

※注意:

この証明書ファイル"common_cacert"は、Wazi aaS仮想サーバーごとに固有のものが生成されます。複数のWazi aaS仮想サーバーにアクセスする必要がある場合、それぞれの証明書を取得して管理する必要があります。

PCOM(TN3270)

CA証明書の登録

Wazi aaSではTN3270接続についてはAT-TLSを使用する構成になっています。そのため、先に入手したCA証明書(common_cacert.cer)を信頼できるCA証明書として登録しておく必要があります。

Windowsの場合以下の手順でCA証明書を登録します。

Windowsのインターネットオプションを開き、コンテンツ・タブから"証明書"ボタンをクリックします。
image.png

"インポート"をクリック
image.png

"次へ"
image.png

先に入手したCA証明書のファイルcommon_cacert.cerを指定して"次へ"
image.png

"証明書をすべて次のストアに配置する"を選択し、証明書ストアに"信頼されたルート証明機関"を指定し"次へ"
image.png

"完了"
image.png

"はい"
image.png

image.png

接続構成

CA証明書がインポートできたら、PCOMの接続構成を行います。

ホスト定義タブにて、ホスト名またはIPアドレス: wazi01、ポート番号: 992を指定します。
image.png

セキュリティーの設定タブにて、"セキュリティーの使用"にチェックを入れます。
image.png

TSOへのログイン

上の接続構成を使用して接続すると、以下のような画面が表示されます。
image.png

下段のプロンプトにTSO IBMUSERと入力します。
image.png

パスワード入力用のプロンプトが出るので、上で設定したパスワードを入力します。
image.png

TSO Logon画面になるのでそのままEnter
image.png

そのままEnter
image.png

ISPFと入力
image.png

ISPF画面
image.png

あとは実際のz/OSと同様に操作が行えます。

z/OSMF

ブラウザからhttps://wazi01:10443/zosmf/にアクセスします。
IBMUSERと、上で設定したパスワードを指定してログインします。
image.png

z/OSMFの各種オペレーションが行えます。
image.png

VS Code

VS Codeからz/OSへの接続構成の詳細は以下の記事もご参照ください。
参考: VS Code - z/OS接続構成 (Zowe CLI V2編)

接続構成例:

zowe.config.user.json
{
    "$schema": "./zowe.schema.json",
    "profiles": {
        "isecloud_wazi01": {
            "properties": {
                "host": "wazi01"
            },
            "profiles": {
                "zosmf": {
                    "type": "zosmf",
                    "properties": {
                        "port": 10443
                    }
                },
                "ssh": {
                    "type": "ssh",
                    "properties": {
                        "port": 22,
                        "privateKey": "C:\\xxx\\id_rsa_wazi"
                    }
                }
            },
            "secure": [
                "user",
                "password"
            ]
        },
        "base": {
            "type": "base",
            "properties": {
                "rejectUnauthorized": false
            }
        }
    },
    "defaults": {
        "zosmf": "wazi01.zosmf",
        "base": "base"
    },
    "autoStore": true
}

IDz

IDzからz/OSへの接続構成の詳細は以下の記事もご参照ください。

参考: Eclipseを使用したメインフレーム・アプリケーション開発 - (2)z/OS基本操作 - RSE接続での操作 - 接続構成

接続構成例:

リモート・システム・ビューの 新規接続 - z/OSを右クリック - 新規接続を選択
image.png

ホスト名、接続名を指定
image.png

デーモン・ポートに8137を指定
image.png

ファイル転送

Wazi aaSではFTPサーバーも自動で起動しますが、AT-TLSによる通信が行われるよう構成されているため、TLS対応のFTPクライアントから接続する必要があります。また、浮動IPを使用したポートごとのアクセス制御の場合、FTPのデータ通信用のポートが動的にアサインされたりするのでちょっとその辺りの考慮が面倒です(Windows標準のFTPクライアントではPassiveモードの通信やTLS通信ができないらしい)。
...と思っていたら、PCOMのFTPクライアント機能を使うとPassiveモード、かつTLS通信ができるということを教えていただきました。

ここでは、PCOMのFTPクライアント機能、および、Wazi aaSのStock Imageのデフォルト環境で利用できるFTP以外のデータ転送方法を記載します。

PCOMのFTPクライアントによる通信

まず、事前にWazi aaS側でFTPサーバーのカスタマイズをしてPassiveモードのデータ通信用ポートのレンジを絞っておきます。そのうえで、IBM Cloudの仮想サーバーとしてそのポートレンジの通信を受け付けるようネットワークの設定をしておきます。例えば、セキュリティー・グループでポート範囲を絞っている場合は、Passiveモードのデータ通信用ポート・レンジを許可しておきます。

参考: FTPサーバーのPassiveモードのデータ通信用ポート設定例 → Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (6) Stock Iamge基本操作/カスタマイズ - FTPカスタマイズ

参考: セキュリティー・グループ設定例
image.png

次にPCでPCOMのFTPクライアントを起動します。
※FTPではAT-TLSの通信が行われます。上のPCOM(TN3270)接続設定例に示したCA証明書の登録は完了している前提です。

メニューバーから、通信 - 構成を選択します。
image.png

"接続"タブにてホスト名、ポートを指定し、データ接続モードとしてパッシブを選択します。
image.png

"SSL"タブにて、"セキュリティーを有効にする"にチェックを入れます。
image.png

ユーザーID、パスワードを指定して接続ボタンを押します。
image.png

これでFTP通信が行えるようになりました。
image.png

MVSデータセット、USSいずれもファイル転送可能です。

WinSCPによるFTP通信

WinSCPでもパッシブモード、TLS通信はできるので、PCOMのFTPクライアントと同様FTP通信ができました。
ただし、WinSCPの場合MVSデータセットとのファイル転送は無理そうです(USSのみ)。

設定例:
明示的なTLS/SSL暗号化を指定
image.png
設定にて、パッシブモード接続でIPアドレスを強制するをオンに指定
image.png

接続画面イメージ
image.png

OpenSSHベースの通信

OpenSSHをベースとしてファイル転送の仕組みです。SSHのポートが使われるのでネットワーク構成としては楽です。

sftp

参考: Configuring sftp

sftpプロトコルを使用してUSS上のファイルを送受信できます。ただし基本的に"バイナリモード"での送受信となりますので、コード変換が必要な場合は個別にiconvなどで手動で実施する必要があります。

scp

参考: Configuring scp

scpプロトコルを使用してUSS上のファイルを送受信できます。ただし基本的に"テキストモード"での送受信となりますので、ASCII-EBCDIC変換が必ず発生します。USS側のコードページはロケールに依存しますが、ネットワーク上を流れるデータとしては一旦ISO8859-1(ISO Latin 1)に変換されることになりますので、日本語(DBCS)を含むデータは正しく変換されません。

z/OSMF + Zowe CLI

z/OSMFではMVSデータセットやUSSファイルを操作するためのREST APIが提供されていますので、そちらを利用することができます。
参考:z/OS data set and file REST interface

ただ、これらをそのままREST APIとして使用するのは使い勝手が悪いので、この仕組みを利用したZowe CLIというツール(OSS)が提供されています。
これは専用のCLI(Commannd Level Interface)が提供されるので、コマンドでデータの送受信が行えます。
USS上のファイルだけでなくMVSデータセットの送受信も行えます。また、バイナリーモード/テキストモードの制御や、日本語のコードページも対応しているので日本語(DBCS)を含むコード変換にも対応しています。

参考:
Zowe CLI quick start
zowe › zos-files

zowe cliコマンド使用例

データセットのメンバー表示例

c:\>zowe zos-files list all-members IBMUSER.JCL --host wazi01 --port 10443 --user IBMUSER --password xxxxx
APPLY
HZSALLCP
RACFCERT
RECIEVE
RRSCOLD
SADMPDS
SADMPOSG
SSHKYCP
TRSDUMP
TRSREST

USS上のファイル表示例

c:\>zowe zos-files list uss-files /u/ibmuser --host wazi01 --port 10443 --user IBMUSER --password xxxxx
.                         drwxr-xr-x 8192   BPXROOT
..                        dr-xr-xr-x        BPXROOT
.ansible                  drwx------ 8192   BPXROOT
.ssh                      drwx------ 8192   BPXROOT
common_cacert             -rw------- 1387   BPXROOT
.sh_history               -rw------- 2482   BPXROOT
.dbb                      drwx------ 8192   BPXROOT
.bashrc                   -rw-r--r-- 158    BPXROOT
env-overrides             -rw------- 16     BPXROOT
.cache                    drwxr-xr-x 8192   BPXROOT
.bash_history             -rw------- 23     BPXROOT
Util                      drwxr-xr-x 8192   BPXROOT
shutsys                   -rw-r--r-- 2386   BPXROOT
.gitconfig                -rw-r--r-- 149    BPXROOT
.profile                  -rw-r--r-- 82     BPXROOT
JCL                       drwxr-xr-x 8192   BPXROOT
Git                       drwxr-xr-x 8192   BPXROOT
dbb-zappbuild             drwxr-xr-x 8192   BPXROOT
private_common_properties drwx------        BPXROOT
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?