Saltar al contenido principal

Shell de Unix

Configuración actual de la tarea Unix Shell en el Diseñador de Flujos de Trabajo
  • Tipo de Tarea: ssh

Descripción

La Tarea Shell de Unix es un componente de administración de sistemas extremadamente versátil que permite al Flujo de Trabajo ejecutar comandos en un servidor remoto o en la máquina local (modo Predeterminado).

Es una herramienta completa para la automatización de TI, que permite ejecutar scripts, gestionar archivos, controlar el estado de los servicios, instalar paquetes y realizar cualquier otra operación disponible desde la línea de comandos.

Configuración

La configuración de la Tarea define los detalles de la conexión (si es necesaria) y el comando a ejecutar. Los campos pueden ser valorizados manualmente o mediante parámetros y variables del flujo de trabajo.

Conexión al Servidor

  • Modo de conexión: define el origen de las credenciales y el tipo de ejecución. Puede asumir tres modos operativos:
  • Predeterminado: los comandos se ejecutan en la máquina local, sin conexión SSH.
  • Manual: permite la inserción manual de los parámetros de conexión.
  • Entorno: utiliza un entorno de conexión preconfigurado. En este modo se muestra un menú que enumera las conexiones disponibles según el rol asociado al Flujo de Trabajo.
  • Otros campos (solo para conexión remota):
  • Dirección IP: dirección IP del servidor remoto.
  • Nombre de host: nombre de host del servidor remoto.
  • Usuario: nombre de usuario utilizado para establecer la conexión SSH.
  • Contraseña: contraseña asociada al usuario de conexión.
  • Puerto: puerto utilizado para la conexión SSH (el valor predeterminado es 22).

Ejecutar comando como otro usuario

Activando esta casilla, es posible ejecutar la búsqueda con un usuario diferente al utilizado para la conexión SSH.

  • Usuario: nombre del usuario con el que se ejecutará el comando.
  • Contraseña: contraseña del usuario utilizado para la ejecución del comando.

Tipo de comando

Esta opción permite elegir la modalidad de ejecución de la Tarea:

  • Conexión: en esta modalidad, la Tarea se limita a establecer una conexión SSH con el servidor remoto para verificar que esté accesible y que las credenciales sean correctas. No ejecuta ningún comando. Es útil como primer paso de un Flujo de Trabajo para asegurarse de que un servidor está en línea antes de proceder.
  • Comando: es un área de texto donde se pueden insertar uno o más comandos shell para ejecutar en el servidor remoto.

Parámetros de Salida

Una vez que el servicio externo ha respondido a la llamada, la Tarea expone los siguientes parámetros de salida, que son cruciales para procesar el resultado de la solicitud:

  • result: Contiene el salida estándar (stdout) de los comandos ejecutados. Si los comandos producen un resultado textual, este se capturará en este parámetro.
  • resultJson: representa el resultado de la ejecución de la tarea en formato JSON, incluyendo información general, configuraciones y detalles sobre la ejecución.
  • exitStatus: Devuelve el código de salida del último comando ejecutado. Un valor de 0 indica típicamente una ejecución que ha tenido éxito, mientras que valores diferentes de cero señalan un error.

Ejemplo parámetro resultJson

{
"run_info": {
"status": "Completed",
"run_result": "Success"
},
"output_parameters": {
"exitStatus": "0"
}
}

Notas Importantes

  • El usuario utilizado para la conexión (o el usuario "ejecutar como") debe tener los permisos necesarios para ejecutar los comandos especificados.
  • Se pueden concatenar múltiples comandos utilizando los operadores de la shell estándar, como && (ejecuta el segundo comando solo si el primero tiene éxito) o ; (ejecuta el segundo comando independientemente del resultado del primero).
  • La tarea establece una conexión SSH con el servidor remoto y ejecuta los comandos configurados. Si se utiliza la autenticación mediante claves SSH, es necesario que la clave pública esté registrada en el servidor remoto. Si la opción “Ejecutar comando como otro usuario” está habilitada, el control se ejecuta con un usuario diferente al del usuario de conexión SSH principal.