Estamos utilizando rundeck para escanear archivos de registro de un servicio y tomar medidas según lo que se encuentre allí. Básicamente, para cada elemento encontrado, para el que no existe un registro, se inicializa un repositorio git y se llaman algunos puntos finales de descanso, pero ese no es el punto.
Estamos configurando el trabajo para que se ejecute según lo programado, digamos cada dos horas, y para enviar notificaciones en caso de falla, y adicionalmente para enviar notificaciones en caso de éxito solo cuando se haya tomado al menos una acción (es decir, el script de shell en la tarea ingresada el bucle al menos una vez). La secuencia de comandos se escribe de modo que solo emite resultados en stdout cuando se encuentran elementos a ser accionados.
¿Hay alguna manera en rundeck para activar la notificación con este requisito? ¿O una forma de escribirlo sin escribir un complemento desde cero?
Una posible solución sería desactivar el desencadenador de notificación de falla y hacer que el script devuelva un valor distinto de cero en caso de que no se active ningún elemento, pero no me siento cómodo al hacerlo.
fuente
Respuestas:
Lo que se me ocurre son:
Escribir su propio complemento, desde la página de ejemplo del complemento de notificación , adaptar el código de notificación de correo de ejemplo podría ser una forma.
Deshabilita las notificaciones de éxito en rundeck y maneja la parte de notificación de éxito en tu propio script. De esta manera, es responsabilidad de su script advertirle que hizo algo en estado normal y aún es responsabilidad de la plataforma de ejecución advertirle que el script falló.
fuente
Pude solucionar este problema de una manera un poco dudosa cambiando el comando a:
Esto canaliza la salida
grep
y falla si hay alguna salida, perogrep
aún así la pasa para que pueda ver la salida en Rundeck en caso de falla.Un inconveniente es que creo que pierdes las líneas en blanco, pero no enviamos ninguna, por lo que no es un gran problema para nosotros, y nos dejará sin aliento hasta que podamos actualizar la aplicación para que termine con un código de salida adecuado.
fuente