#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. Суть в том, что все скрипты должны сами устанавливать необходимые переменные среды, а не зависеть от их наследования.