Ansible не удается запустить сценарий для резервного копирования базы данных Oracle

#oracle #ansible #backup

#Oracle #ansible #резервное копирование

Вопрос:

Я использую Ansible-Controller-machine для подключения сервера, чтобы запустить скрипт, который создает резервную копию базы данных Oracle, и я получаю следующий, для меня странный, результат: i)когда я использую ssh, все работает нормально, и я могу запустить скрипт, который создает резервную копию базы данных ii)когда я использую Ansible с теми же учетными данными, сценарий завершается с ошибкой. Я обнаружил, что, хотя Ansible использует одного и того же пользователя, некоторые переменные env, такие как $PATH, $ ORACLE_HOME и т.д., Отличаются по сравнению с подключением с использованием ssh. У вас есть какие-либо идеи о том, что я делаю неправильно?

Комментарии:

1. в $PATH отсутствуют все каталоги, связанные с Oracle, а $ORACLE_HOME пуст

2. стать: да => установлен root env против become_user: oracle => установлен oracle env. Включите сообщение об ошибке отладки «whoami» в свой плейбук

3. Привет, Бьярте, у пользователя, которого мне предоставили, нет root-доступа, но у него достаточно прав для создания резервной копии базы данных. Как я писал в своем первоначальном комментарии, используя этого пользователя, я могу использовать ssh и создать резервную копию, но использование того же пользователя, объявленного в Ansbile inventory, не работает

Ответ №1:

При подключении по ssh выполняется скрипт профиля, который задает множество переменных среды. Я ничего не знаю об Ansible, но, похоже, что-то в способе его подключения не вызывает профиль. Это то же самое, что и при запуске скрипта с помощью cron. Суть в том, что все скрипты должны сами устанавливать необходимые переменные среды, а не зависеть от их наследования.