티스토리 뷰
기존에 한 서버에 git 저장소 운영 및 호스팅서버를 같이 돌리고 있었음..
그러다 서버를 늘려야하는 상황이 생겨 서버쪽 작업을 진행함..
사전조건 git 저장소 서버와 호스팅서버간 git을 이용할 계정의 ssh 접속이 비번 없이 가능해야함..
ssh 접속 후 sh파일 실행도 가능해야함..
위 조건은 서버에서 각 계정별로 키를 생성하고 공유하여 접속 시 비번없이 처리되게 하면 됨..
배포할 서버(git 저장소 서버) 에서 작업
#사용할 계정으로 전환
su git
#키 생성 -> 엔터 -> 엔터 -> 엔터
ssh-keygen -t rsa
#키 폴더로 이동
cd ~/.ssh
#키 확인
cat id_rsa.pub
해당 키 복사하여 호스팅 서버쪽 ssh 연결할 계정에서 키 추가
호스팅 서버에서 작업
#git 서버에서 접속할 계정으로 전환
su git
#키폴더로 이동
cd ~/.ssh
#git서버 키 추가
vim authorized_keys
#위 파일에 복사한 키 붙혀넣기
위 작업 완료 후 git서버에서 호스팅서버로 ssh 접속테스트
인증부분 yes로 넘어간 후 접속 끊고 다시 접속할때 별다른 체크 없이 서버로 접속되면 첫단계 끝
호스팅서버에서 작업
git서버에서 ssh로 접속할 계정으로 전환
su git
#폴더 이동
cd /data/hosting
#git 서버 clone
git clone ssh://계정명@호스트명:포트번호/폴더경로/gitname.git
#pull.sh 파일 생성
cd /data/hosting
git pull origin master
파일 권한 755로 변경 chmod 755 pull.sh
파일 실행 테스트 ./pull.sh
이상없이 pull해오면 git 서버로 이동
git서버에서 작업
#git설정 계정으로 전환
su git
#git 저장소 이동
cd /data/git/git명.git
#hooks 폴더 이동
cd hooks
#post-update 파일 생성
vim post-update
post-update 파일에 ssh접속하여 실행하는 구분 추가
ssh -p포트번호 계정명@호스트명 "~/pull.sh"||exit
echo "변경 확인용 출력"
위 ssh 실행 뒤에 폴더 위치가 ~/는 계정폴더에 pull.sh를 만들어둔 상태일때고 호스팅폴더에 만들어뒀으면 호스팅 폴더 경로 찾아가서 실행시켜야함..
클라이언트에서 push하면 호스팅폴더쪽에서 자동 pull되야함~
'IDE > GIT' 카테고리의 다른 글
SSH 공개키(개인키) - 비밀번호 없이 로그인 (0) | 2023.04.12 |
---|---|
[Git]Git 서버 세팅 CentOS7 (0) | 2020.05.08 |
Git 첫 시작 세팅 및 GitLab에 Push (0) | 2018.07.19 |