はじめに
Wazi環境構築のログです。今回はイメージ・ストレージ・サーバーの構成について。
関連記事
Wazi: OpenShift上でのメインフレーム開発環境構築 - (1)事前準備
Wazi: OpenShift上でのメインフレーム開発環境構築 - (2)ライセンス・サーバーの構成
Wazi: OpenShift上でのメインフレーム開発環境構築 - (3)イメージ・ストレージ・サーバーの構成
Wazi: OpenShift上でのメインフレーム開発環境構築 - (4)OpenShiftクラスターの構成
Wazi: OpenShift上でのメインフレーム開発環境構築 - (5)Sandboxインスタンスの作成
Wazi: OpenShift上でのメインフレーム開発環境構築 - (6)Sandboxインスタンスの確認
Wazi: OpenShift上でのメインフレーム開発環境構築 - (7)Sandboxインスタンスへの接続
Wazi: OpenShift上でのメインフレーム開発環境構築 - (8)Sandboxのカスタマイズ
Wazi: OpenShift上でのメインフレーム開発環境構築 - (9)Wazi Developer for Workspacesの作成
全体像
今回は図の矢印部分のイメージ・ストレージ・サーバーの構成です。
イメージ・ストレージ・サーバーはOpenShift上にも構成することが可能ですが、ここでは仮想サーバー上に構成することにします(ライセンス・サーバーと相乗り)。
イメージ・ストレージ・サーバーのセットアップ
参考: Installing an SFTP server
イメージ・ストレージ・サーバーの実体はsftpサーバーです。Sandboxのインスタンスを作成する際に、元となるz/OS DASDイメージファイルをsftpサーバーからコピーすることになるので、そのための準備をしておきます。
sftpサーバー(sshd)
sftpはsshを利用したファイル転送プロトコルなので、OSパッケージとしてはsshサーバーがあればOKです。
[TOMOTAG@iseip20201222-1106-alphabet-1 ~]$ sudo yum list installed | grep openssh-server
openssh-server.x86_64 7.4p1-21.el7 installed
[TOMOTAG@iseip20201222-1106-alphabet-1 ~]$ systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-12-28 02:48:17 CST; 20h ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 956 (sshd)
CGroup: /system.slice/sshd.service
mq956 /usr/sbin/sshd -D
Dec 28 02:48:17 iseip20201222-1106-alphabet-1.jp-ise.com systemd[1]: Starting OpenSSH server daemon...
Dec 28 02:48:17 iseip20201222-1106-alphabet-1.jp-ise.com sshd[956]: Server listening on 0.0.0.0 port 22.
Dec 28 02:48:17 iseip20201222-1106-alphabet-1.jp-ise.com sshd[956]: Server listening on :: port 22.
Dec 28 02:48:17 iseip20201222-1106-alphabet-1.jp-ise.com systemd[1]: Started OpenSSH server daemon.
...
sftp用構成
sftpで使用するディレクトリとして/mnt/sftp
を作成します。
[TOMOTAG@iseip20201222-1106-alphabet-1 /mnt]$ sudo mkdir sftp
[TOMOTAG@iseip20201222-1106-alphabet-1 /mnt]$ ls -la
total 32
drwxr-xr-x. 5 root root 4096 Dec 28 23:35 .
drwxr-xr-x+ 19 root root 4096 Dec 28 19:53 ..
drwxrwxrwx. 4 root root 4096 Dec 28 18:58 Inst_Image
drwx------. 2 root root 16384 Dec 28 18:24 lost+found
drwxr-xr-x. 2 root root 4096 Dec 28 23:35 sftp
sftp用のユーザー"ftpuser1"とグループ"ftpusers"を作成し、パスワードを設定しておきます。
[TOMOTAG@iseip20201222-1106-alphabet-1 /mnt/sftp]$ sudo groupadd ftpusers
[TOMOTAG@iseip20201222-1106-alphabet-1 /mnt/sftp]$ sudo useradd -g ftpusers -d /ftpuser1 -s /sbin/nologin ftpuser1
[TOMOTAG@iseip20201222-1106-alphabet-1 /mnt/sftp]$ sudo id ftpuser1
uid=1010(ftpuser1) gid=1011(ftpusers) groups=1011(ftpusers)
[TOMOTAG@iseip20201222-1106-alphabet-1 /mnt/sftp]$ sudo passwd ftpuser1
Changing password for user ftpuser1.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
sftpのルートディレクトリとして/mnt/sftp/ftpuser1を作成します。
[TOMOTAG@iseip20201222-1106-alphabet-1 /mnt/sftp]$ sudo mkdir ftpuser1
[TOMOTAG@iseip20201222-1106-alphabet-1 /mnt/sftp]$ sudo chown ftpuser1:ftpusers ftpuser1
[TOMOTAG@iseip20201222-1106-alphabet-1 /mnt/sftp]$ ls -la
total 12
drwxr-xr-x. 3 root root 4096 Dec 28 23:41 .
drwxr-xr-x. 5 root root 4096 Dec 28 23:35 ..
drwxr-xr-x. 2 ftpuser1 ftpusers 4096 Dec 28 23:41 ftpuser1
SSHの構成ファイル"sshd_config"を編集して、このftpuser1についての設定を行います。
...
Match User ftpuser1
PasswordAuthentication yes
ForceCommand internal-sftp
ChrootDirectory /mnt/sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
※Sandbox作成時はOpenShiftのOperatorを使用することになりますが、この時sftpへのアクセスはユーザーID/パスワードでの認証に限られるようです(公開鍵による認証は不可)。今回の仮想サーバーの環境はsshはPasswordAuthentidation no
に設定してパスワード認証を無効化していましたが、このftp用のに関してはPasswordAuthentication yes
に設定しています。合わせてこのユーザーはsftp専用とするために、ForceCommand internal-sftp
などを設定しています。
sshd再起動
[TOMOTAG@iseip20201222-1106-alphabet-1 /mnt/sftp]$ sudo systemctl restart sshd
Windows PCからSSL/VPN経由でsftpできることを確認。
c:\y\temp>sftp ftpuser1@xxxxx
The authenticity of host 'xxxxx (xxxxx)' can't be established.
ECDSA key fingerprint is SHA256:WLiyVkG/vtxAF5/5O7WAv2uh5V+TkeH2RGoqfH6UDWY.
Are you sure you want to continue connecting (yes/no)?
Warning: Permanently added 'xxxxx' (ECDSA) to the list of known hosts.
ftpuser1@xxxxx's password:
Connected to ftpuser1@xxxxx.
sftp> pwd
Remote working directory: /ftpuser1
sftp> put test.txt
Uploading test.txt to /ftpuser1/test.txt
test.txt 100% 17 0.1KB/s 00:00
ADCDの配置
参考: Configuring Extended ADCD
ZD&Tと同様に、Waziでも出来合いのz/OSイメージ(各ミドルウェアや開発環境などが構成されたもの)を含むDASDイメージが提供されています。これはADCD(Application Developer Controlled Distribution)と呼ばれています。このADCD関連のファイルをsftpサーバーに配置します。
ftp用のディレクトリ下に、adcd/zos24_2020may/volumes
というディレクトリを作成します。
[TOMOTAG@iseip20201222-1106-alphabet-1 /mnt/sftp/ftpuser1]$ sudo mkdir adcd
[TOMOTAG@iseip20201222-1106-alphabet-1 /mnt/sftp/ftpuser1]$ cd adcd
[TOMOTAG@iseip20201222-1106-alphabet-1 /mnt/sftp/ftpuser1/adcd]$ sudo mkdir zos24_2020may
[TOMOTAG@iseip20201222-1106-alphabet-1 /mnt/sftp/ftpuser1/adcd]$ cd zos24_2020may/
[TOMOTAG@iseip20201222-1106-alphabet-1 /mnt/sftp/ftpuser1/adcd/zos24_2020may]$ sudo mkdir volumes
ここにADCD関連ファイルを配置します(メタデータファイル、圧縮された状態のDASDイメージファイル、devicemapファイルなど)。トータルでファイルサイズが46GBくらいあるので、ICOS経由で転送するのがよいです。
ファイル配置後の構造としては以下のようになります。
[TOMOTAG@iseip20201222-1106-alphabet-1 /mnt/sftp/ftpuser1]$ tree . --charset C
.
`-- adcd
`-- zos24_2020may
|-- ADCDTOOLS.XML
`-- volumes
|-- B4BLZ1.gz
|-- B4C541.gz
|-- B4C551.gz
|-- B4CFG1.gz
|-- B4DBAR.gz
|-- B4DBB1.gz
|-- B4DBB2.gz
|-- B4DBC1.gz
|-- B4DBC2.gz
|-- B4DIS1.gz
|-- B4DIS2.gz
|-- B4DIS3.gz
|-- B4IME1.gz
|-- B4IMF1.gz
|-- B4INM1.gz
|-- B4KAN1.gz
|-- B4PAGA.gz
|-- B4PAGB.gz
|-- B4PAGC.gz
|-- B4PRD1.gz
|-- B4PRD2.gz
|-- B4PRD3.gz
|-- B4PRD4.gz
|-- B4RES1.ZPD
|-- B4RES2.gz
|-- B4SYS1.gz
|-- B4USR1.gz
|-- B4USS1.gz
|-- B4USS2.gz
|-- B4W901.gz
|-- B4W902.gz
|-- B4ZCX1.gz
|-- B4ZWE1.gz
|-- devmap.txt
|-- inventory.txt
`-- SARES1.ZPD
3 directories, 37 files
ネットワーク構成
sftp(ssh)のポート番号(デフォルト:22)に対してOpenShiftクラスター上のサービスからアクセスできるようにネットワーク構成をしておく必要があります(firewalの設定を行っている場合など)。