es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error al ejecutar un script de Linux mediante ansible.

Intento ejecutar un script de linux con el módulo shell, pero obtengo el siguiente error:

/bin/sh: sh: comando no encontrado.

Para ejecutar este script de linux, necesito hacerlo con un usuario diferente (oracle) al que utilizo para conectarme.

Esta es la tarea del playbook:

- name: Execute
  become: true
  become_user: oracle
  become_method: sudo
  shell: sh ora_expdp_partition.sh P_05_2021
  args:
    chdir: /fuentes01/vasmonitor
  environment:
    ORACLE_BASE: /oracle/oracle/app/oracle
    LD_LIBRARY_PATH: /oracle/oracle/app/oracle/product/12.2.0/dbhome_1/lib:/lib:/usr/lib:/usr/lib64
    ORACLE_HOME: /oracle/oracle/app/oracle/product/12.2.0/dbhome_1
    PATH: /usr/sbin:/oracle/oracle/app/oracle/product/12.2.0/dbhome_1/bin:/usr/local/bin
    CLASSPATH: /oracle/oracle/app/oracle/product/12.2.0/dbhome_1/jlib:/oracle/oracle/app/oracle/product/12.2.0/dbhome_1/rdbms/jlib

En esta tarea necesito ejecutar el script con el usuario oracle.
Cuando ejecuto el script manualmente con el usuario oracle, funciona.

Tags:  

Answer

  1. Avatar for davy.ai

    Para resolver el error, necesitas agregar la siguiente línea a la tarea:

               become_flags: '-s /bin/bash'
    

    Esto asegurará que el script sea ejecutado con el shell correcto.

Comments are closed.