■概略
オープンソースエンジニア歴30年超の筆者が2023年からIBMiを学びだした学習記録です
IFSで使うIBMiアカウント(ユーザプロファイル)を作成するには複数の作業をまとめて実行する必要があります。IFSのbashでsystemコマンドを実行してユーザプロファイルを作成するスクリプトを作成しました
◯ 条件
※ユーザプロファイルは個人毎に別にする
※ライブラリ、OUTQ、JOBD、IFSホームディレクトリは個人ごとに作成する
※最初のユーザプロファイルは5250でログインしSECADMかSECOFR権限を付与し作成する 1
※以後のユーザプロファイルは1のユーザプロファイルでsshログインし、
bashスクリプトを実行して作成する
■スクリプト解説
◯実行手順
SECADMかSECOFR権限を持つユーザプロファイルでsshしスクリプトを実行する手順
IFSのホームディレクトリに~/USRPRFディレクトリがある前提
$ cd ~/USRPRF
$ cp CRTUSRPRF_Template.bash CRTUSRPRF_{名前}.bash
$ vim CRTUSRPRF_{名前}.bash ※変更内容は後述
$ ./CRTUSRPRF_{名前}.bash
$ vim DSPUSRPRF.bash
$ ./DSPUSRPRF.bash > USRPRFS.txt ※全アカウントの内容をテキストに残しておく
◯CRTUSRPRFスクリプト内容
*USERにユーザプロファイル名を6文字以内で定義する
${USER}LIB、${USER}OUTQ、${USER}JOBD を作成する
最大オブジェクト長は10文字なので、ユーザプロファイルは10-4=6文字まで
USER=TAKAMI ※例
*KJUSERに社名+漢字名を定義する
KJUSER=えむぼま高見禎成 ※例
*パスワード
デフォルトのユーザプロファイルと同じパスワードはセキュリティが低すぎる
しかし5250でログインする際は鍵が使えずパスワードを入力するので長いと不便
そのため5文字の数字・アルファベット大文字混じりのランダム文字列にする
この辺は各会社の要件に従ってください
アルファベット小文字は使えない!
PW=ABC1D ※例
*各ユーザプロファイル用のライブラリをCRTLIBで作成する
system "CRTLIB LIB(${USER}LIB) TEXT('${KJUSER}LIB')"
*各ユーザプロファイル用の出力キューを個人ライブラリ内に作成する
system "CRTOUTQ OUTQ(${USER}LIB/${USER}OUTQ) TEXT('${KJUSER}OUTQ')"
*各ユーザプロファイル用のジョブ記述を個人ライブラリ内に作成する
ジョブ記述は標準ライブラリリスト、出力キューを定義している
system "CRTJOBD JOBD(${USER}LIB/${USER}JOBD) TEXT('${KJUSER}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('${KJUSER}')"
*IFSにホームディレクトリを作成する
・.bashrcはUbuntuも.bashrcを元にパスやtig用環境変数などを設定している
・.profileはbashを自動起動する
・vimやtmuxを使う人なら.tmux.confや.vim、.vimrcを/home/{テンプレートユーザ}から
コピーすると良い
・.sshは「(開発3)VSCode..のインストールに記載している
・vimやtmuxを使う人なら.tmux.confや.vim、.vimrcを/home/takamiからコピーすると良い
mkdir /home/${USER}
cp /home/{テンプレートユーザ}/.bashrc /home/${USER}
cp /home/{テンプレートユーザ}/.profile /home/${USER}
# cp -r /home/{テンプレートユーザ}/.ssh /home/${USER} #.sshは各ユーザが設定
cp /home/{テンプレートユーザ}/.commit_template /home/${USER}
cp /home/{テンプレートユーザ}/.gitconfig /home/${USER} # 実行後emailとuserをgitlabのアカウントに修正
cp /home/{テンプレートユーザ}/.vimrc /home/${USER} # 実行後.vimrcのtakamiを${USER}に修正
cp -r /home/{テンプレートユーザ}/.vim /home/${USER}
cp /home/{テンプレートユーザ}/.tmux.conf /home/${USER}
chown -R ${USER} /home/${USER}
◯DSPUSRPRFスクリプト内容
#!/bin/bash
system "DSPUSRPRF USRPRF({ユーザ名1})"
system "DSPUSRPRF USRPRF({ユーザ名2})"
■スクリプト全体
CRTUSRPRF_{ユーザ名}.bash
#!/bin/bash
### 高見 禎成(takami)の作成例
USER=TAKAMI
KJUSER=えむぼま高見禎成
# IBMi
system "CRTLIB LIB(${USER}LIB) TEXT('${KJUSER}LIB')"
system "CRTOUTQ OUTQ(${USER}LIB/${USER}OUTQ) TEXT('${KJUSER}OUTQ')"
system "CRTJOBD JOBD(${USER}LIB/${USER}JOBD) TEXT('${KJUSER}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(*SECADM) TEXT('${KJUSER}')"
# IFS
mkdir /home/${USER}
cp /home/{テンプレートユーザ}/.bashrc /home/${USER}
cp /home/{テンプレートユーザ}/.profile /home/${USER}
#cp -r /home/{テンプレートユーザ}/.ssh /home/${USER} # sshは各人が設定
cp /home/{テンプレートユーザ}/.commit_template /home/${USER}
cp /home/{テンプレートユーザ}/.gitconfig /home/${USER}
cp /home/{テンプレートユーザ}/.vimrc /home/${USER}
cp -r /home/{テンプレートユーザ}/.vim /home/${USER}
cp /home/{テンプレートユーザ}/.tmux.conf /home/${USER}
chown -R ${USER} /home/${USER}