Как исправить параметры сценария bash от параллельного цикла до последовательного - PullRequest
0 голосов
/ 02 мая 2018

У меня есть скрипт bash, который подключается к различным машинам в цикле, этот сценарий также перезагружает машины, если передан параметр reboot = y (с использованием jenkins).

выпуск - Если reboot = y, он не может последовательно выполнить команду ssh для каждого хоста, затем вывести «перезагрузку хоста», а затем запустить sh app-services.sh $ APP

Моя цель - после перезагрузки я хочу, чтобы он пинговал хосты один за другим, и если ping возвращает успех, верните ssh обратно на компьютер и перезапустите службы размещенного приложения.

Мой текущий скрипт -

#!/bin/bash

IP_S="${HOSTS_STAGE}"
IP_P="${HOSTS_PROD}"

APP="$APPLICATION"

export APP
export host

if [ "${ENVIRONMENT}" == 'stage' ]; then 
    IP="${IP_S}"

elif [ "${ENVIRONMENT}" == 'prod' ]; then 
    IP="${IP_P}" 
fi 

echo "${IP}" 

for host in ${IP}; do 
    echo "########################################" 
    echo "## Running yum update on ${host}" 
    echo "########################################" 

    if [ "${REBOOT}" == 'n' ]; then 
        ssh -i "${id_rsa}" -o StrictHostKeyChecking=no dvopsadmin@${host} "sudo yum update -y"
        echo "##  Skipping reboot for ${host}"

    else
        ssh -i "${id_rsa}" -o StrictHostKeyChecking=no dvopsadmin@${host[@]} "sudo reboot"
        echo "##  Rebooting ${host}"
        ping -w 30 -c 1 ${host}

    # This is the other script that restart app services

    sh app-services.sh $APP


    fi

done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...