
## Client side
user@localhost$ cd ~/.ssh
user@localhost$ ssh-keygen -t rsa
## Check created ssh-key files
user@localhost$ ls
id_rsa id_rsa.pub known_hosts
user@localhost$ cd ~/.ssh
user@localhost$ scp id_rsa.pub {destination_server_ip}:~/.ssh/authrozied_keys
remove authrozied_key file to enable it to connect to the remote server(target server)
user@localhost$ sudo vi /etc/ssh/sshd_config
## Remove comment in sshd_config file of target server
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
you can access to target server without password
deploy_spring_prod.sh
#!/bin/sh
cDate=`date +%Y%m%d`
cDatetime=`date '+%Y-%m-%d %T'`
server_1="10.50.10.1"
server_2="10.50.10.2"
branch="master"
gitsrc="/home/SE/gitsrc/miniproject/prod"
gitsite="/home/SE/gitsite/miniproject/prod"
srchome="/home/miniproject"
### First Clone
# git clone {git address}
#### Git Pull
echo "#### Git Pull Started.... $cDatetime"
cd ${gitsrc}
git pull origin $branch
#### Exclude .git
rsync -av ${gitsrc}/ ${gitsite}/ --exclude=.git --exclude=.gitlab
#### Delete .next build
rm -rf ${gitsite}/build
#### Gradle Build
cd ${gitsite}
/usr/local/gradle/bin/gradle clean
/usr/local/gradle/bin/gradle build
#### Chown dev
ssh dev@${server_1} \
"sudo chown -R dev ${srchome}; exit;"
ssh dev@${server_2} \
"sudo chown -R dev ${srchome}; exit;"
#### Source Copy
echo "#### Source Copying.... miniproject-WasServer-01"
rsync -av ${gitsite}/build/libs/miniproject-0.0.1-SNAPSHOT.jar dev@${server_1}:${srchome}/
echo "#### Source Copy Completed... miniproject-WasServer-01"
sleep 1
echo "#### Source Copying.... miniproject-WasServer-02"
rsync -av ${gitsite}/build/libs/miniproject-0.0.1-SNAPSHOT.jar dev@${server_2}:${srchome}/
echo "#### Source Copy Completed... miniproject-WasServer-02"
### Chown
ssh dev@${server_1} \
"sudo chown -R root ${srchome}; exit;"
ssh dev@${server_2} \
"sudo chown -R root ${srchome}; exit;"
echo "#### Java Process Restarting....."
ssh dev@${server_1} \
"sudo systemctl stop java.service; sleep 1; sudo systemctl start java.service; exit;"
ssh dev@${server_2} \
"sudo systemctl stop java.service; sleep 1; sudo systemctl start java.service; exit;"
echo "#### Java Process Completed.....!!! "