Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!
0 Пользователей и 1 Гость просматривают эту тему.
#!/usr/bin/env sh#очищаем целевой каталог перед развертывание приложенияmvn clean packageecho 'Copy files to deploy server'#создаем набор нужных директорийssh -i ~/.ssh/id_rsa it@xxx.xxx.xxx.xxx << EOF createApps(){ mkdir ~/apps } createDeploy(){ mkdir ~/apps/deploy } createUploads(){ mkdir ~/apps/uploads} if ! [ -d ~/apps/ ] then echo 'No directory is called `apps`. Creating...' createApps else echo 'The directory `apps` is here.' fi if ! [ -d ~/apps/deploy/ ] then echo 'No directory is called `deploy`. Creating...' createDeploy else echo 'The directory `deploy` is here.' fi if ! [ -d ~/apps/uploads/ ] then echo 'No directory is called `uploads`. Creating...' createUploads else echo 'The directory `uploads` is here.' fiEOF# scp - secure copy - Утилита для копирования файлов между удаленными машинами# работает поверч ssh, поэтому нужено указывать секретный ключ, который мы ранее создали# \ - Символ указывает переход на новую строку#target - директория, где находится файл с артефактом приложения#it@10.128.4.119:/home/it/ - указали имя пользователя, адрес хоста и директорию, куда нужно# скопировать артефактscp -i ~/.ssh/id_rsa \ target/twitter-0.0.1-SNAPSHOT.jar \ it@10.128.4.119:/home/it/apps/deploy/echo 'Restart server...'sleep 5echo '----------------'# << EOF - указываем, что эта комбинация открывает поток на вход которого будут переданы данные# в виде ssh -i ~/.ssh/id_rsa it@10.128.4.119# << EOF - после этого пишем ряд команд, которые должны будут выполниться на удаленном сервере# pgrep name_process - Выполняет поиск процессов по указанному имени# Xargs - читает аргументы из стандартного ввода, разделенные пробелами или символами новой строки# kill -9 - завершаем выбранные ранее процессы (по имени java)# nohup — утилита, которая позволяет запустить команду,# защищенную от зависания с выходом на non-tty (игнорирует потерю сигналов связи SIGHUP)# java -jar twitter-0.0.1-SNAPSHOT.jar аргументы, команды nohup# java -jar - запускает указанный артефакт на выполнение# > log.txt - указываем файл, кужа нужно выводить логи, при запуске программы# & - указывает, что утилита nohup будет работать в фоновом режиме и если сессия, в которой мы выполняем# запуск приложения, будет закрыта, то выполение приложения продолжиться все равно# EOF закрывает открытый ранее входной поток команды на удаленном сервереssh -i ~/.ssh/id_rsa it@10.128.4.119 << EOFpgrep java | xargs pkill -9 -f javanohup java -jar /home/it/apps/deploy/twitter-0.0.1-SNAPSHOT.jar > log.txt &EOF#Таким образом мы перезапустили сервер-приложений, tomcat# для начала мы завершили все старые процессы, затем скопировали новый артефакт, который был# развернут JVM и запущен на выполнение#echo 'Bye'
Copy files to deploy server./deploy.sh: line 10: apps: command not found./deploy.sh: line 10: apps: command not found./deploy.sh: line 10: deploy: command not found./deploy.sh: line 10: deploy: command not found./deploy.sh: line 10: uploads: command not found./deploy.sh: line 10: uploads: command not found
ssh -i ~/.ssh/id_rsa it@xxx.xxx.xxx.xxx << EOF ...
echo 'No directory is called `apps`. Creating...'
echo "The directory 'apps' is here."
Страница сгенерирована за 0.029 секунд. Запросов: 25.