svn은 hooks를 이용하여 원격 서버의 프로젝트를 자동으로 업데이트합니다

프로젝트 개발 단계에서는 빈번한 코드 제출이 필요합니다. 만약svn 갈고리를 추가하지 않으면 매번 프로젝트 디렉터리에서svn up을 실행해야 하기 때문에 매우 힘들기 때문에 오늘 갈고리를 추가하기로 결정했습니다.갈고리를 이용하여 원격 프로젝트를 업데이트하는 관건은 ssh의 암호 없는 로그인을 실현하는 것이다.
svn 창고가 있는 서버(이하 기계 A): 6.11
프로젝트가 있는 서버(이하 기계 B): 6.28
1. 우선 ssh 암호 없는 로그인을 실현합니다(A->B)
1. A기기에서 비밀 키 쌍 생성
[root@domin ~]# ssh-keygen -t rsa
ENTER로 내려가면 키 쌍이 성공적으로 생성됩니다.생성된 비밀 키 저장/root/.ssh 디렉터리 (루트 사용자이기 때문에)
[root@domin .ssh]# pwd
/root/.ssh
[root@domin .ssh]# ls
id_rsa  id_rsa.pub

2. id_를rsa.pub를 authorized_로 복사keys, 그리고 authorized_keys 파일을 B기기에 업로드한
[root@domin .ssh]# cp id_rsa.pub authorized_keys
[root@domin .ssh]# scp authorized_keys [email protected]:/root/.ssh

3.ssh 로그인 B 기계, 첫 번째 비밀번호 입력 필요, 이후 필요 없어, 이로써 암호 로그인 없음은 이미 실현
2. B기기에서 svn 업데이트 스크립트 만들기
1. 스크립트 파일/shell/svnup 만들기.sh
[root@domin shell]# vim svnup.sh
#!/bin/bash

/usr/bin/svn update /var/www/projcet #projcet 
[root@domin shell]# chmod 755 svnup.sh

3. 갈고리 만들기
svn 창고가 만들어지면 hooks 폴더가 있습니다. 이 폴더 아래에 갈고리 파일이 있습니다. 저희가 사용할 것은post-commit입니다.
1.post-commit.tmpl은post-commit으로 복사
[root@101-server hooks]# cp post-commit.tmpl post-commit
2.post-commit의 모든 내용을 주석하고 업데이트 명령을 추가합니다
/usr/bin/ssh -l root 192.168.6.28 "/bin/bash /shell/svnup.sh"

4. 총결산
실현 과정에서 몇 가지 주의해야 할 점이 있다. 1...ssh 디렉토리 및 authorize_keys 파일의 권한,.ssh 디렉터리의 권한은 700, authorize_keys의 권한은 644여야 합니다.
2.post-commit 파일과svnup.sh 파일의 권한, 최소 755

좋은 웹페이지 즐겨찾기