Actualmente estoy intentando automatizar Oracle Database XE usando el manual de estrategias de Ansible. Todo con la instalación parece estar bien, excepto el paso en el que se configuran las variables de entorno para Oracle:
source /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh
El código en el libro de jugadas ansible se ve así:
- 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
Luego, cuando ejecuto el libro de jugadas de Ansible, al final del proceso, obtengo algo como esto:
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.
¿Qué estoy haciendo mal? ¿Por qué después de ejecutar source /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh
y restablecer el terminal sqlplus
no es visible para bash?
Respuesta1
El shell remoto no puede encontrar el programa sqlplus. Encuentre la ruta del programa en el sistema remoto e intente agregarla a la variable PATH como la primera parte del comando de shell ansible;
shell: "export PATH=$PATH:/mypath/sqlplus; source /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh"