SSH 통신 사전적 정의
- CI / CD를 구축하고 싶지만 여건이 안될 때
- CI / CD 구축이 헤비 스펙일 때
- 라이트하면서 간단하게 프로젝트를 배포하고 싶을때
$ ssh-keygen -t rsa -b 4096 -C "Email_Address"
$ ssh-copy-id id_rsa.pub 서버계정@서버id // 기본 포트 일 경우
$ ssh-copy-id id_rsa.pub '-p 포트 서버계정@서버id' // 기본 포트가 아닐 경우
$ ssh [host_name]@[server_ip]
HOST=[server_ip]
USER=[server_host_name]
DEST_REPO=[project_repository]
BRANCH=[project_branch]
ssh $USER@$HOST "cd $DEST_REPO && git checkout $BRANCH && git reset --hard HEAD~1 && git pull && yarn && yarn build && service nginx restart"
스크립트 설명
- 프로젝트로 이동
- 배포하고자 하는 브랜치로 checkout
- 충돌 방지를 위해 현재 commit에서 한칸 뒤로 이동
- pull을 통해 최신 리모트 반영
- build 수행
- nginx 재실행 (저는 SPA라 nginx로 배포했습니다)
$ telnet bitbucket.org 22