Я настраиваю ansible для установки DB2 на Linux-сервере. Все работает, за исключением последнего шага, который мне нужно запустить:
db2 update database manager configuration using svcename db2c_db2inst1
Однако я не могу запустить это как непривилегированный пользователь (я могу запустить его как пользователь db2isnt1 из строки cmd, и он работает). Задача, которую я использую, выглядит так:
tasks:
- name: setup svcename db2c_db2inst1
remote_user: db2inst1
shell: db2 update database manager configuration using svcename db2c_db2inst1
, но я получаю следующую ошибку:
TASK [setup svcename db2c_db2inst1] ****************************************** фатальный: [db2ansible]: НЕ УДАЛОСЬ! => {"changed": true, "cmd": "менеджер баз данных обновлений db2 конфигурация с использованием svcename db2c_db2inst1 "," delta ": «0: 00: 00.003631», «конец»: «2017-02-13 16: 39: 38.301753», «не удалось»: правда, «rc»: 127, «start»: «2017-02-13 16: 39: 38.298122», «stderr»: «/ bin / sh: 1: db2: not found "," stdout ":" "," stdout_lines ": []," warnings ": []}
Есть предложения?
Спасибо.
Warren.
Измените вашу последнюю задачу следующим образом:
tasks:
- name: setup svcename db2c_db2inst1
shell: db2 update database manager configuration using svcename db2c_db2inst1
become: yes
become_user: db2inst1
Это действительно выполнит команду db2
с пользователем db2inst1, в котором есть исполняемый файл db2
$ PATH
Вы должны были загрузить ранее " 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
)