Автоматизация установки Oracle XE с помощью ansible и vagrant — переменные среды Oracle отображаются неправильно?

Автоматизация установки Oracle XE с помощью ansible и vagrant — переменные среды Oracle отображаются неправильно?

В настоящее время я пытаюсь автоматизировать Oracle Database XE с помощью ansible playbook. Все с установкой, кажется, в порядке, за исключением шага, на котором задаются переменные среды для Oracle:

source /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

Код в ansible playbook выглядит так:

- name: setup oracle environment
  shell: source /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh
  shell: reset
  shell: /bin/echo 'source /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh' >> /home/vagrant/.bash_profile
- name: create users and schemas on the oracle database
  shell: sqlplus SYSTEM/root@XE @ create_schemas_users.sql

Затем, когда я запускаю ansible playbook, в конце процесса я получаю что-то вроде этого:

TASK [create users and schemas on the oracle database] *******************************************************************************************************************************************************************************

fatal: [wemdbc01]: FAILED! => {"changed": true, "cmd": "sqlplus SYSTEM/root@XE @ create_schemas_users.sql", "delta": "0:00:00.002841", "end": "2017-05-30 08:40:50.652786", "failed": true, "rc": 127, "start": "2017-05-30 08:40:50.649945", "stderr": "/bin/sh: sqlplus: command not found", "stderr_lines": ["/bin/sh: sqlplus: command not found"], "stdout": "", "stdout_lines": []}
        to retry, use: --limit @/var/wminst/ansible-config/playbooks/oracle-xe.retry

PLAY RECAP ***************************************************************************************************************************************************************************************************************************

wemdbc01                   : ok=6    changed=2    unreachable=0    failed=1

Connection to 127.0.0.1 closed.

Что я делаю не так? Почему после запуска source /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.shи сброса терминал sqlplusне виден для bash?

решение1

Удаленная оболочка не может найти программу sqlplus. Найдите путь к программе на удаленной системе и попробуйте добавить его к переменной PATH как первую часть команды ansible shell;

shell: "export PATH=$PATH:/mypath/sqlplus; source /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh"

Связанный контент