■前提
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を使っています
- 虫眼鏡マークで「Power Virtual Server」を選択
- [管理]-[請求と使用状況]-[プロモーションとクレジット]-[Promotion discounts]
- [割引コードを適用]-「POWERVS2500」を入力し[適用] *2026/07時点のキャンペーン
- [管理]-[請求と使用状況]-[プロモーションとクレジット]-[Promotional credits]に
- 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.