become. Необходимо выполнить запрос к БД на удаленном сервере через sqlplus. На удаленном сервере в sudoers прописан как nopasswd. Выполняя команду ansible DB01 -m shell -a 'sqlplus ......' -b --become oracle, получаю ошибку - файл sqlplus не найден. При дальнейшей проверке оказалось, что переменные ORACLE_* пустые. Опять же запуск ssh user@DB1 'sudo su oracle -l -c "sqlplus ....."' проходит успешно. Получается, что эти две команды выполняются неодинаково? Прошу прощения - только вникаю в ansible.
```tasks: - name: Running oracle script command: "sqlplus / as sysdba @test.sql" become: yes become_method: su become_flags: "--login" become_user: oracle```
Большое спасибо за помощь! Все прекрасно отрабатывает! Теперь немного иная проблема - нужно записать вывод скрипта в файл. Гугл подсказал связку: register - copy: content="{{ res }}" dest=./file. Хотелось бы вывод в json. Вывод переменной в debug - нормальный, а вот в файл пишется все, начиная с "stderr_lines":... В чем может быть проблема? Вариант res.results[0] не работает, res.stdout_lines - мало информации.
Обсуждают сегодня