2015-12-10 3 views
1

У нас есть сборки, запущенные на одном из серверов, и мы копируем войну на 5 удаленных серверов по отдельности и ssh в эти поля и разворачиваем войны вручную. Я ищу способ, которым мы могли бы развернуть все 5 военных файлов во время запуска сценария оболочки?Как развернуть несколько военных файлов на Tomcat через оболочку на удаленных серверах за раз?

scp 123.war xyzserver:~/. 
ssh xyzserver -t “ 
sudo su 
sudo /etc/init.d/tomcat7 stop 
rm -fr /usr/share/tomcat7/webapps/123* 
cp ./xyz.war /usr/share/tomcat7/webapps/ 
sudo /etc/init.d/tomcat7 start” 
exit 

Есть ли что-то вроде этой работы? Я не уверен, будет ли cp ждать, пока кошка не остановится? Есть лучший способ сделать это?

ответ

2

На серверах вы можете запустить процесс на sudo cron, который будет смотреть каталог для военных файлов и выполнять команды, чтобы остановить Tomcat, развернуть, развернуть и запустить Tomcat. Затем вы можете просто скопировать scp в папку «смотрел».

На серверах создал скрипт для проверки файлов:

if [ "$(ls -A ${WATCHED_DIR})" ]; then 
    /etc/init.d/tomcat7 stop 
    rm -fr /usr/share/tomcat7/webapps/${WEBAPP_NAME} 
    mv ${WATCHED_DIR}/${WEBAPP_NAME}.war /usr/share/tomcat7/webapps/ 
    chown -R tomcat:tomcat /usr/share/tomcat7/webapps/${WEBAPP_NAME} 
    /etc/init.d/tomcat7 start 
fi 

Добавьте к этому SUDO кронтабу поэтому работает как корень

На стороне клиента (где был сгенерирован файл войны) , создайте сценарий, который просто копирует файлы в этот каталог на сервере

scp ${WEBAPP_NAME}.war server1:${WATCHED_DIR} 
scp ${WEBAPP_NAME}.war server2:${WATCHED_DIR} 
scp ${WEBAPP_NAME}.war server3:${WATCHED_DIR} 
scp ${WEBAPP_NAME}.war server4:${WATCHED_DIR} 
scp ${WEBAPP_NAME}.war server5:${WATCHED_DIR} 
+0

--- Не могли бы вы объяснить это более подробно ?? Я не получил вас – upagna

+0

На каждом из серверов создается сценарий bash/shell, который проверяет папку на сервере для военных файлов, а если есть, останавливает tomcat, удаляет текущий webapp, переводит новый военный файл в папка webapp и запустить tomcat. Добавьте это в sudo crontab, чтобы он выполнялся как root за минуту. Затем на стороне клиента создайте отдельный сценарий оболочки, который запускает команду scp, чтобы продвинуть новую войну на каждый из серверов под папкой, просматриваемой скриптом на стороне сервера, работающим под crontab sudo. –

+0

Wow..Это кажется хорошим решением. Спасибо @Brian Harman. Позвольте мне попробовать это – upagna

Смежные вопросы