2
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?

1-1.PVSインストール

2
Posted at

■前提

IBM iでGit管理する開発環境には個人アカウント=個人ライブラリ・個人ディレクトリ(IFS)が必要です
pub400では他のアカウントが見えないのでPVS(*1)を使用することにしました
*1 Power Virtual Server=IBMクラウドが提供するIBM iの仮想サーバ
3か月$2500のプロモーションコードをいただいて、無償で検証することができました

◯Bobで開発するIBM i側の条件

*個人ライブラリ・個人ディレクトリ(IFS)がある=個人アカウントになっている
*IBM i(IFS)にsshでログインできる=sshサーバ(デーモン)が起動している
*sshログインした時にbash環境が整備されている=UNIXの環境知識が必要です
 IFSでgitコマンドを使うにはyumコマンドでパッケージインストールします
 各種コマンドのパス設定が必要です

■PVS作成手順

◯IBMクラウドへログインとプロモーションコードの適用

IBM Cloud( https://cloud.ibm.com/login) にIBM IDでログインします
 *IBM ID未取得なら取得してください
 *今回Edgeではうまく動きませんでした。Chromeを使っています

  1. 虫眼鏡マークで「Power Virtual Server」を選択
  2. [管理]-[請求と使用状況]-[プロモーションとクレジット]-[Promotion discounts]
  3. [割引コードを適用]-「POWERVS2500」を入力し[適用] *2026/07時点のキャンペーン
  4. [管理]-[請求と使用状況]-[プロモーションとクレジット]-[Promotional credits]に
  5. POWERVS2500 40万円強 が表示された

◯ワークスペースの作成

参考) https://qiita.com/6onoda/items/c6b1903c8235cdd88664
ワークスペースはどのデータセンター(場所)に作成するか、インスタンスなどの入れ物です

[カタログ]-カタログを検索で[Power Virtual Server]を選び、最初はワークスペースを作成します
[Start with workspace]の+をクリック
 ロケーションタイプ : IBM data center
 場所 : 東京04
 詳細-名前 : RiSING2026-F
 Monitoring : 今すぐ許可
 [x]使用条件に同意する [作成]

https://cloud.ibm.com/power/workspaces
でインスタンスが表示されます
指定したRiSING2026-F が数分で作成されました(アクティブになりました)

◯インスタンスの作成

参考) https://qiita.com/6onoda/items/082d8b507a445e5f4071

[ワークスペース]-[RiSING2026-F]で仮想サーバインスタンスがありませんと表示されます
URL) https://cloud.ibm.com/power/servers

[インスタンスの作成]

 インスタンス名 : RiSING2026-F-IBMi1
 インスタンスの数 : 1 
 オペレーティング・システム : IBMi
 イメージ : IBMi-76-01-2984-1 *2026/07/02時点の最新
 層 : 層3(3 IOPs/GB) *コストを抑えて最小限
 ストレージプール : 自動選択
 専用ホストにデプロイ : OFF
 マシンタイプ : s1022とs1122でs1022を選択
 コアタイプ : 上限無し共有
 コア : 0.25
 仮想コア : 1
 メモリー : 4GB
 仮想シリアル番号 : なし
 IBMiライセンス : チェックなし
 ストレージボリューム : [ボリュームの作成]
  名前 : vol01
  サイズ : 20 (GB)
  数量 : 1
  層 : 層3(3 IOPs/GB) [作成して接続]
 パブリックネットワーク : on
 [x]使用条件に同意する [作成]

URL : https://cloud.ibm.com/power/servers
 上記にRiSING2026-F-IBMi1 が数分で作成される
 [RiSING-F-IBMi1]-[ネットワーキング]で外部IPを確認する
 xxx.xxx.xxx.xxx *このIPに後でssh接続します

 上記のRiSING2026-F-IBMi1 の縦…で[コンソールのオープン]
 *Edgeは o(オー)が入力できなかったのでChromeでログインしました

◯DST(Dedicated Service Tools)

F5でQSECOFR/QSECOFRのパスワードを変更する
*5250のQSECOFRとは別。設定変更用のDSTのQSECOFRのパスワードです
*15文字以上
*アカウント名を含まない
大文字にしました

後で5250からQSECOFRでログインできる設定のために設定します
参考) https://qiita.com/koga39chan/items/4693d6693e255607f9c2
新PWでログインし、

 3. Use Dedicated Service Tools(DST)
 13. Work with sytem securtiy
  Allow system value security changes 1=Yes
  Allow new digital certificates 0=No
  Allow a service tools user ID with a defautl 
  and expired password to change its own password 1=Yes
  Allow add and remove of password exit programs 1=Yes

EnterでSecurity opitions were changed successfully表示後F3を押して完了
 1.Perform an IPLで起動

◯コンソールアクセス

*パスワード変更
User/PasswordにQSECOFR/QSECOFRでログインするとPW変更を求められます
*15文字以上
*大文字にしました

*ライセンス同意
全てのOptに5(Display)を入力しEnter
各ライセンス文が表示されるのでF14
キーボードでShift+F2は無効なので画面下で[NextPad]の後PF14をマウスで選択します
全てのAccespt StatusがYesになったら、F3で終了

◯ssh初回ログイン設定 =最初のユーザ作成とssh起動

コンソールで、QSECOFR / 新パスワードでログインします

*個人用ライブラリ=自分でコンパイルした出力先を作成
アカウント名をTAKAMIで作成しています

CALL QCMD
CRTLIB    LIB(TAKAMILIB)  TEXT('TAKAMILIB')
CRTOUTQ   OUTQ(TAKAMILIB/TAKAMIOUTQ) TEXT('TAKAMIOUTQ')
CRTJOBD   JOBD(TAKAMILIB/TAKAMIJOBD) TEXT('TAKAMIJOBD') 
    INLLIBL(TAKAMILIB QGPL QTEMP) OUTQ(TAKAMILIB/TAKAMIOUTQ)

*最初のユーザはこの後sshしてyum update,installするので*ALLOBJを付与

CRTUSRPRF USRPRF(TAKAMI) PASSWORD(****) CURLIB(TAKAMILIB) 
    HOMEDIR('/home/TAKAMI') INLPGM(*LIBL/QCMD) JOBD(TAKAMILIB/TAKAMIJOBD) 
    CCSID(5035) USRCLS(*SECADM) SPCAUT(*SECADM *ALLOBJ) TEXT('TAKAMI')
MKDIR DIR('/home/TAKAMI')
CHGOWN OBJ('/home/TAKAMI') NEWOWN(TAKAMI)

*ユーザのデフォルトシェルをbashに変更する

STRSQL
CALL QSYS2.SET_PASE_SHELL_INFO('*DEFAULT', '/QOpenSys/pkgs/bin/bash')

*SSHサーバ手動起動

STRTCPSVR SERVER(*SSHD)

IBMiが再起動すると再度コンソールログインしSSHサーバの再起動が必要です
もし再起動時に自動でSSHサーバを起動するなら設定が必要です
参考) https://qiita.com/6onoda/items/0f8ae5d58b6c64c0bb42

*TELNET(5250)サーバ手動起動

STRTCPSVR SERVER(*TELNET)

TELNETは自動起動しているでしょうが、PVSでは起動が必要でした
もし再起動時に自動でTELNETサーバを起動するならSSHサーバ同様設定が必要です

◯ssh初回ログイン

多くのIBM i企業ではオフィスから外部へのssh通信をブロックしていることが多いです
IBM iにssh通信できるか確認しましょう
WindowsのPowerShell標準のsshコマンドが使いやすいと思います

ブロック時のエラーメッセージ例) Connection Refused, Connection Timeout

接続例)
初回のみfingerprintの保存(PCのC:\Users{アカウント名}.ssh\known_hostsに記録)するためyes

PS C:\Users\{ユーザ名}>ssh takami@xxx.xxx.xxx.xxx
The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
ED25519 key fingerprint is SHA256:3rw18tYJ84125ZO00OOCkDxtI8Fyht6QwpoHEhP/97w.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'xxx.xxx.xxx.xxx' (ED25519) to the list of known hosts.
takami@xxx.xxx.xxx.xxx's password:
$ pwd *現在のディレクトリ名を答えるコマンド
/home/TAKAMI

◯IFS環境を整備する

*bashにしてyumパッケージリストの更新

$ bash
bash-5.2$ export PATH=/QOpenSys/pkgs/bin:$PATH:$HOME:
bash-5.2$ yum update
ibmi-base                                                          | 3.6 kB  00:00:00
ibmi-base/primary_db                                               | 480 kB  00:00:04
…
Complete!

*gitをインストール

bash-5.2$ yum install -y git

*IFSにsshログインするとLinux同様のbash環境になるように設定
ここで設定したファイルをユーザ追加スクリプトの中でコピーしている

Linux等から.bashrc等をコピー

PCのWSL2$ scp .bashrc {アカウント名}@{IP}:~

.bashrcの末尾にパス設定他を追加
LinuxのCLIで有名なviエディタはSEU同様操作が特殊

bash-5.2$ vi .bashrc ※.bashrcに書いた設定をログイン直後に設定する
…
# for vim
export TERM=xterm
# for packages(git)
export PATH=/QOpenSys/pkgs/bin:$PATH:$HOME:
#export LC_ALL=JA_JP.UTF-8
export LC_ALL=C
export LESSCHARSET=utf-8

bash-5.2$ vi .profile ※.profileに書いたコマンドをログイン直後に実行する
bash

◯アカウント追加するbashスクリプト

ユーザを追加する場合、IFS上のbashスクリプトならIBMiアカウント、ライブラリ、OUTQ、JODB、IFSのホームディレクトリを一気に作成できます

アカウント追加スクリプトを置くディレクトリを作成します

PS C:\Users\{ユーザ名}>ssh pvs
takami@RISING2026-F-IBMI1:~$ mkdir USRPRF
takami@RISING2026-F-IBMI1:~$ cd USRPRF

CRTUSRPRF_template.bashをユーザ数分コピーして実行する

#!/bin/bash
# ユーザ名(ユーザ名英語)
USER=ユーザ名英語
KJUSER=社名とユーザ名日本語 ※このスクリプトでは使っていない
PW=******

# IBMi
system "CRTLIB    LIB(${USER}LIB)  TEXT('${KJUSER}LIB')"
system "CRTOUTQ   OUTQ(${USER}LIB/${USER}OUTQ) TEXT('${USER}OUTQ')"
system "CRTJOBD   JOBD(${USER}LIB/${USER}JOBD) TEXT('${USER}JOBD') \
    INLLIBL(${USER}LIB QGPL QTEMP) OUTQ(${USER}LIB/${USER}OUTQ)"
system "CRTUSRPRF USRPRF(${USER}) PASSWORD(${PW}) CURLIB(${USER}LIB) HOMEDIR('/home/${USER}') \
    INLPGM(*LIBL/QCMD) JOBD(${USER}LIB/${USER}JOBD) CCSID(5035) USRCLS(*PGMR) TEXT('${USER}')"

### IFS
mkdir /home/${USER}
cp /home/TAKAMI/.bashrc    /home/${USER}
cp /home/TAKAMI/.profile   /home/${USER}
cp /home/TAKAMI/.tmux.conf /home/${USER}
cp /home/TAKAMI/.vimrc     /home/${USER}
chown -R ${USER} /home/${USER}
chmod 700 /home/${USER}

実行結果。/home/takamiの設定が/home/kagaguにもコピーされます

takami@RISING2026-F-IBMI1:~$ ./KAWAGU.bash
CPC2102: Library KAWAGULIB created.
CPC9801: Object KAWAGUOUTQ type *OUTQ created in library KAWAGULIB.
CPF1615: Job queue QBATCH found in library QGPL.
CPC1611: Job description KAWAGUJOBD created in library KAWAGULIB.
CPI2221: Special authorities granted *NONE.
CPC2204: User profile KAWAGU created.

目次へ

2
0
1

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
2
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?