LoginSignup
0

posted at

updated at

VS Code - z/OS接続構成 (Zowe CLI V2編)

はじめに

VS CodeのExtensionを使用すると、VS Codeからz/OSに接続してz/OS上のリソースを操作することができます。例えば、MVSデータセット/USS上のファイルを参照/編集したり、JCLのサブミットやJOBLOG参照などをVS Codeから行えるようになります。
この辺りは「VSCodeを使用したメインフレーム・アプリケーション開発」という一連の記事に記載しましたが、接続構成については変更されているので改めてここに記載します。

参考

Installing Zowe CLI
Visual Studio Code (VS Code) Extension for Zowe
Zowe Explorer profiles
Using Zowe CLI - Team Configuration
IBM Z Open Editor - Creating a configuration profile in Zowe Explorer v2.0.0

構成イメージ

VSCodeからz/OSに接続して操作を行う場合、z/OS側にもコンポーネントを導入してセットアップする必要があります。z/OS側のコンポーネントとしては2種類あり、基本的にはどちらかをセットアップすればよいです。

(1) z/OSMF(z/OS Management Facility): z/OSが提供する機能の1つで、z/OS管理に関する様々機能を提供しており、ブラウザベースのUIや管理用のAPIなどが提供されます。z/OS機能の1部なので追加コスト無しで利用できます。
(2) RSE API(Remote System Explorer API): z/OS Explorerのホスト・コンポーネントの1つとして提供されます。基本的に無償で利用できますが、IDzなどの有償製品と合わせて利用する場合でなければ保証されません。
参考: Introducing IBM Remote System Explorer API

image.png

VSCodeからz/OSに接続する際は、内部的にZowe CLIというコンポーネントを使ってz/OSとの通信が行われます。
(1)の場合は接続先はz/OSMFとなるので、Zowe CLIではz/OSMFとの接続構成を行うことになります。(2)の場合は接続先がRSE APIとなり、Zowe CLIのプラグインであるRSE API plug-inを追加でインストール/構成する必要があります。
この記事では、(1)のz/OSMFを使用した接続を前提として話を進めていきます(RSE APIは使用しない)。

環境情報

以下はインストール済みの想定です。

PC側

Windows 11
node v16.16.0
Zowe CLI v7.11.2

VS Code v1.76.2
image.png

VS Code Extension

  • Zowe Explorer v2.7.0
  • IBM Z Open Editor v3.1.0

z/OS側

z/OS V2.5
z/OSMF構成済み

接続構成

VS CodeからZowe Explorer Extensionを使ってz/OSに接続する際は、内部的にZowe CLIの機能が使われます。z/OSとの接続用の構成はzowe profileと呼ばれるもので管理されますが、Zowe CLI V2からzowe profileの管理方法が変わりました。ここではZowe CLI V2ベースの構成方法を記載します。
参考: Zowe CLI V1ベースの接続構成 => Zowe CLI接続構成

構成ファイル概要

z/OSへの接続情報はJSON形式の構成ファイルで管理されるようになりました。構成ファイルは主に以下の2種類があります。

  • プロジェクト構成ファイル(zowe.config.user.json): プロジェクトごとにプロファイルを管理。プロジェクトのディレクトリのトップに配置される。
  • グローバル構成ファイル(zowe.config.json): 使用しているユーザー全般で有効なプロファイルを管理。<ユーザーのホーム>\.zowe\以下に配置される。

VS Code上での構成ファイル作成方法

VS Codeからの構成ファイルの作成方法を試してみます。

VS Code上でプロジェクトを作成している状態で、Zowe Explorerのview上のDATA SETSの横の「+」アイコン(Add Profile to Data Sets View)を選択します。
image.png

プルダウンメニューから「Create a New Team Configuration File」を選択します。
image.png

作成したいプロファイルを選択します。ここではProject構成ファイルを作成するために、「Project: in the current working directory」を選択します。
image.png

プロジェクトのトップのディレクトリに zowe.config.user.jsonという構成ファイルの雛形が作成されます。
image.png

zowe.config.user.json雛形
zowe.config.user.json
{
    "$schema": "./zowe.schema.json",
    "profiles": {
        "zosmf": {
            "type": "zosmf",
            "properties": {
                "port": 443
            },
            "secure": []
        },
        "tso": {
            "type": "tso",
            "properties": {
                "account": "",
                "codePage": "1047",
                "logonProcedure": "IZUFPROC"
            },
            "secure": []
        },
        "ssh": {
            "type": "ssh",
            "properties": {
                "port": 22
            },
            "secure": []
        },
        "rse": {
            "type": "rse",
            "properties": {
                "port": 6800,
                "basePath": "rseapi",
                "protocol": "https"
            },
            "secure": []
        },
        "base": {
            "type": "base",
            "properties": {
                "host": "",
                "rejectUnauthorized": true
            },
            "secure": [
                "user",
                "password"
            ]
        }
    },
    "defaults": {
        "zosmf": "zosmf",
        "tso": "tso",
        "ssh": "ssh",
        "rse": "rse",
        "base": "base"
    },
    "autoStore": true
}

※VS Codeのワークスペースを作成し、複数のプロジェクトを追加している場合、そのワークスペースの最初のプロジェクトに含まれるzowe.config.user.jsonが有効になります。

※Globalを選択した場合は、<ユーザーのホーム>\.zowe\zowe.config.jsonが作成されます。

構成ファイルのカスタマイズ

以下の辺りの記述を参考に、構成ファイルをカスタマイズします。

参考: Team configuration for team leaders

zowe.config.user.json設定例
zowe.config.user.json
{
    "$schema": "./zowe.schema.json",
    "profiles": {
        "eplex1": {
            "properties": {
                "host": "eplex1"
            },
            "profiles": {
                "zosmf": {
                    "type": "zosmf",
                    "properties": {
                        "port": 10443,
                        "encoding": "IBM-1399"
                    }
                },
                "tso": {
                    "type": "tso",
                    "properties": {
                        "account": "ACCT#",
                        "codePage": "1047",
                        "logonProcedure": "IZUFPROC"
                    }
                },
                "ssh": {
                    "type": "ssh",
                    "properties": {
                        "port": 22
                    }
                }
            },
            "secure": [
                "user",
                "password"
            ]
        },
        "isecloud_zdt01": {
            "properties": {
                "host": "zdt01"
            },
            "profiles": {
                "zosmf": {
                    "type": "zosmf",
                    "properties": {
                        "port": 10443
                    }
                }
            },
            "secure": [
                "user",
                "password"
            ]
        },
        "isecloud_wazi01": {
            "properties": {
                "host": "wazi01"
            },
            "profiles": {
                "zosmf": {
                    "type": "zosmf",
                    "properties": {
                        "port": 10443
                    }
                },
                "ssh": {
                    "type": "ssh",
                    "properties": {
                        "port": 22,
                        "privateKey": "C:\\Users\\A00527JP6\\.ssh\\ISECloud2023\\id_rsa_wazi"
                    }
                }
            },
            "secure": [
                "user",
                "password"
            ]
        },
        "base": {
            "type": "base",
            "properties": {
                "rejectUnauthorized": false
            }
        }
    },
    "defaults": {
        "zosmf": "eplex1.zosmf",
        "tso": "eplex1.tso",
        "ssh": "eplex1.ssh",
        "base": "base"
    },
    "autoStore": true
}

上の例では複数のz/OSに対する接続構成を作成しています。1つめのz/OSについてはz/OSMF用のプロファイル、TSO用のプロファイル、SSH用のプロファイルと3つのプロトコルでの接続プロファイルを作成しています(データセットの編集やJCLサブミットなど基本操作はz/OSMF用のプロファイルだけあればOKです)。

接続プロファイルの追加

上で作成したプロファイルをZowe Explorerのビューに追加することで、そのプロファイルに示すz/OSへの接続が行われて各種リソースの操作が行えるようになります。

Zowe Explorerのview上のDATA SETSの横の「+」アイコン(Add Profile to Data Sets View)を選択します。
image.png

プルダウンメニューに、上で追加したプロファイルがリストされますので追加したいプロファイルを選択します。ここではeplex1.zosmf(eplex1というz/OSに対するz/OSMFプロファイル)を選択します。
image.png

DATA SET以下にeplex1.zosmfが追加され、Datasetに対する操作ができるようになりました。
image.png

データセット操作例

データセット検索

追加したプロファイルの右横の虫メガネアイコンをクリックします。
image.png

最初の接続のタイミングで、TSOユーザーID/パスワードを入力する必要があります。
指示に従って、接続に使用するユーザーIDを入力します。
image.png

次にパスワードを入力します。
image.png

※ここではz/OSMF経由での接続を行う想定ですので、z/OSMF提供のAPIが発行できる権限を持ったユーザーを使用する必要があります。

参照したいデータセットのフィルターを指定します。
image.png

Enter
image.png

指定したフィルターでデータセットが参照できるので、メンバー(COBOLのソースなど)を開いて編集操作などが行えます。
image.png

同様のイメージでUSSファイルやJOBLOGなどの操作が可能です。

ユーザー/パスワードの管理

一度ユーザー/パスワードを指定して接続するとその情報は内部的に保持されるので2回目以降はユーザー/パスワードを指定しなくてもアクセス可能です。
接続するユーザーを変更したい場合は、追加したプロファイルを右クリック - Update Credentials を選択すると変更可能です。
image.png

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
What you can do with signing up
0