Назад | Перейти на главную страницу

ansible - запустите «команду db2 обновить конфигурацию менеджера баз данных, используя svcename db2c_db2inst1» от имени пользователя db2

Я настраиваю 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

но я получаю следующую ошибку:

ЗАДАЧА [настройка svcename db2c_db2inst1] ****************************************** фатальный: [db2ansible]: НЕ ВЫПОЛНЕНО! => {"changed": true, "cmd": "db2 обновить конфигурацию менеджера баз данных, используя 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": [], "warnings": []}

Какие-либо предложения?

Спасибо.

Уоррен.

Измените последнюю задачу следующим образом:

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

Дайте полный путь своему 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)