LinuxサーバーにDB2をインストールするようにansibleをセットアップしています。実行する必要がある最後のステップを除いて、すべてが機能しています。
db2 update database manager configuration using svcename db2c_db2inst1
ただし、非特権ユーザーとして実行することはできません(cmd行からdb2isnt1ユーザーとして実行でき、機能します)。私が使用しているタスクは次のようになります。
tasks:
- name: setup svcename db2c_db2inst1
remote_user: db2inst1
Shell: db2 update database manager configuration using svcename db2c_db2inst1
しかし、次のエラーが発生します。
タスク[setupsvcename db2c_db2inst1] ********************************************致命的:[db2ansible]:失敗しました! => {"changed":true、 "cmd": "db2 update database manager configuration using svcename db2c_db2inst1"、 "delta": "0:00:00.003631"、 "end": "2017-02-13 16:39: 38.301753 "、" failed ":true、" rc ":127、" start ":" 2017-02-13 16:39:38.298122 "、" stderr ":"/bin/sh:1:db2:not found "、 "stdout": ""、 "stdout_lines":[]、 "警告":[]}
助言がありますか?
ありがとうございました。
ウォーレン。
最後のタスクを次のように変更します。
tasks:
- name: setup svcename db2c_db2inst1
Shell: db2 update database manager configuration using svcename db2c_db2inst1
become: yes
become_user: db2inst1
これにより、db2inst1ユーザーでdb2
コマンドが実際に実行されます。db2inst1ユーザーにはdb2
実行可能ファイルが$PATH
に含まれています。
db2
バイナリへのフルパスを指定します。
以前に「db2profile
」をロードする必要があります。
tasks:
- name: setup svcename db2c_db2inst1
Shell: "$INSTANCEPATH/sqllib/db2profile; db2 update database manager configuration using svcename db2c_db2inst1"
become: yes
become_user: db2inst1
$INSTANCEPATH
がdb2インスタンスのパスのホームである場合(例:/home/db2inst1
)