From a4c8e02a3ffc5c0c4d984baa9df75565401b4161 Mon Sep 17 00:00:00 2001 From: cruizba Date: Thu, 5 Nov 2020 11:57:29 +0100 Subject: [PATCH] openvidu-deployment Improve media node scripts --- .../media-node/install_media_node.sh | 54 +++++++------ .../pro/docker-compose/media-node/media_node | 80 +++++++++++++------ 2 files changed, 83 insertions(+), 51 deletions(-) diff --git a/openvidu-server/deployments/pro/docker-compose/media-node/install_media_node.sh b/openvidu-server/deployments/pro/docker-compose/media-node/install_media_node.sh index eba906d8..8bdd8fa2 100755 --- a/openvidu-server/deployments/pro/docker-compose/media-node/install_media_node.sh +++ b/openvidu-server/deployments/pro/docker-compose/media-node/install_media_node.sh @@ -5,6 +5,13 @@ MEDIA_NODE_VERSION=master OPENVIDU_UPGRADABLE_VERSION="2.15" BEATS_FOLDER=${MEDIA_NODE_FOLDER}/beats DOWNLOAD_URL=https://raw.githubusercontent.com/OpenVidu/openvidu/${MEDIA_NODE_VERSION} +IMAGES=( + "kurento-media-server", + "docker.elastic.co/beats/filebeat", + "docker.elastic.co/beats/metricbeat", + "openvidu/media-node-controller" +) + fatal_error() { printf "\n =======¡ERROR!=======" printf "\n %s" "$1" @@ -12,6 +19,27 @@ fatal_error() { exit 0 } +docker_command_by_container_image() { + IMAGE_NAME=$1 + COMMAND=$2 + if [[ ! -z "${IMAGE_NAME}" ]]; then + CONTAINERS=$(docker ps -a | grep "${IMAGE_NAME}" | awk '{print $1}') + for CONTAINER_ID in ${CONTAINERS[@]}; do + if [[ ! -z "${CONTAINER_ID}" ]] && [[ ! -z "${COMMAND}" ]]; then + docker "${COMMAND}" "${CONTAINER_ID}" + fi + done + fi +} + + +stop_containers() { + printf "Stopping containers..." + for IMAGE in ${IMAGES[@]}; do + docker_command_by_container_image "${IMAGE}" "rm -f" + done +} + new_media_node_installation() { printf '\n' printf '\n =======================================' @@ -104,30 +132,6 @@ new_media_node_installation() { exit 0 } -stop_and_remove_container_by_image() { - IMAGE_NAME=$1 - if [[ ! -z "${IMAGE_NAME}" ]]; then - CONTAINER_ID=$(docker ps -a | grep "${IMAGE_NAME}" | awk '{print $1}') - if [[ ! -z "${CONTAINER_ID}" ]]; then - docker rm -f "${CONTAINER_ID}" - fi - fi -} - -stop_and_remove_containers() { - IMAGES=( - "kurento-media-server", - "docker.elastic.co/beats/filebeat", - "docker.elastic.co/beats/metricbeat", - "openvidu/media-node-controller" - ) - - for image in ${IMAGES[@]} - do - stop_container_by_image "${image}" - done -} - upgrade_media_node() { # Search local Openvidu installation printf '\n' @@ -220,7 +224,7 @@ upgrade_media_node() { printf '\n' sleep 1 - stop_and_remove_containers + stop_containers # Pull images printf "\n => Pulling images...\n" diff --git a/openvidu-server/deployments/pro/docker-compose/media-node/media_node b/openvidu-server/deployments/pro/docker-compose/media-node/media_node index f4d3866c..22ae4709 100755 --- a/openvidu-server/deployments/pro/docker-compose/media-node/media_node +++ b/openvidu-server/deployments/pro/docker-compose/media-node/media_node @@ -1,5 +1,41 @@ #!/bin/bash +# Deployed images in media-node +IMAGES=( + "kurento-media-server", + "docker.elastic.co/beats/filebeat", + "docker.elastic.co/beats/metricbeat", + "openvidu/media-node-controller" +) + +docker_command_by_container_image() { + IMAGE_NAME=$1 + COMMAND=$2 + if [[ ! -z "${IMAGE_NAME}" ]]; then + CONTAINERS=$(docker ps -a | grep "${IMAGE_NAME}" | awk '{print $1}') + for CONTAINER_ID in ${CONTAINERS[@]}; do + if [[ ! -z "${CONTAINER_ID}" ]] && [[ ! -z "${COMMAND}" ]]; then + docker "${COMMAND}" "${CONTAINER_ID}" + fi + done + fi +} + + +stop_containers() { + printf "Stopping containers..." + for IMAGE in ${IMAGES[@]}; do + docker_command_by_container_image "${IMAGE}" "rm -f" + done +} + +tail_latest_kurento_logs() { + LATEST_LOG_FILE=$(find /opt/openvidu/kurento-logs/* -printf '%T+ %p\n' | sort -r | head -1 | awk '{print $2}') + if [[ ! -z "${LATEST_LOG_FILE}" ]]; then + tail -f "${LATEST_LOG_FILE}" + fi +} + upgrade_media_node() { UPGRADE_SCRIPT_URL="https://s3-eu-west-1.amazonaws.com/aws.openvidu.io/install_media_node_OVVERSION.sh" HTTP_STATUS=$(curl -s -o /dev/null -I -w "%{http_code}" ${UPGRADE_SCRIPT_URL//OVVERSION/$1}) @@ -140,6 +176,16 @@ generate_report() { printf '\n' done + printf '\n' + printf "\n ---------------------------------------" + printf "\n KMS" + printf "\n ---------------------------------------" + printf '\n' + tail_latest_kurento_logs + printf "\n ---------------------------------------" + printf '\n' + printf '\n' + printf "\n =======================================" printf "\n = CONTAINER ENVS VARIABLES =" printf "\n =======================================" @@ -170,7 +216,7 @@ usage() { printf "\n\tstart\t\t\tStart media node service" printf "\n\tstop\t\t\tStop media node service" printf "\n\trestart\t\t\tRestart media node service" - printf "\n\tlogs\t\t\tShow media node logs" + printf "\n\tlogs \t\t\tShow logs by container name" printf "\n\tupgrade\t\t\tUpgrade to the lastest Media Node version" printf "\n\tupgrade [version]\tUpgrade to the specific Media Node version" printf "\n\tversion\t\t\tShow version of Media Node" @@ -179,30 +225,6 @@ usage() { printf "\n" } -stop_container_by_image() { - IMAGE_NAME=$1 - if [[ ! -z "${IMAGE_NAME}" ]]; then - CONTAINER_ID=$(docker ps | grep "${IMAGE_NAME}" | awk '{print $1}') - if [[ ! -z "${CONTAINER_ID}" ]]; then - docker stop "${CONTAINER_ID}" - fi - fi -} - -stop_containers() { - IMAGES=( - "kurento-media-server", - "docker.elastic.co/beats/filebeat", - "docker.elastic.co/beats/metricbeat", - "openvidu/media-node-controller" - ) - - for image in ${IMAGES[@]} - do - stop_container_by_image "${image}" - done -} - case $1 in start) @@ -223,7 +245,13 @@ case $1 in ;; logs) - docker-compose logs -f media-node-controller + case $2 in + kms) + tail_latest_kurento_logs + ;; + *) + docker logs -f "$2" + ;; ;; upgrade)