GIT 서버 설치 및 LDAP인증, SSL 연동 방법
※ GIT 서버 설치와 LDAP인증, SSL연동에 대한 포스팅으로 LDAP, SSL 연동이 필요 없으신 분들은 설정 값들을 적절히 수정을 하셔야 합니다
오랜만에 포스팅 열의를 품고..
밤이 깊었네요
지금부터 GIT 서버를 세팅 해 보겠습니다
GIT는 버전 관리 시스템으로 리누즈토발즈에 의해 개발이 되었다고 합니다.
GIT는 GITHUB, GITOLITE 등 다수의 GIT 설치 및 설정 방법이 있으나,
아래 소개 해 드리는 설치 방법이 가장 단순하고 또 빠르다고 감히 장담.. 또 장담 합니다..
아래 설정대로만 하시면 30분만에 뚝딱 GIT 서버를 세팅하실 수 있으니, 하나 하나 따라 해 보도록 하시죠 ^^
※ 설치 환경 : ubuntu 11.04 Server i386
1. apt-get 업데이트
- 먼저 apt-get 패키지 업데이트를 받습니다
#apt-get update
#apt-get upgrade
#apt-get dist-upgrade
2. install_git.sh 스크립트 파일 생성 및 내용 복사
- 자.. 마법의 스크립트입니다. 이 스크립트만 실행하면 GIT 설치의 80%는 해결이 됩니다.
- 파일을 다운 받으신 후 서버의 적절한 장소로 옮겨줍니다.
- 내용을 살짝만 보시죠
- 대충 위와 같은 내용으로.. 첨부 해 드린 스크립트 파일에 간단히 설명을 적어 놓았습니다
3. 실행 권한 설정 후 실행
- install_git.sh 스크립트 파일에 대한 실행 권한을 추가 후 스크립트를 실행하여 줍니다
#chmod 755 install_git.sh
#./install_git.sh
- 스크립트 완료 후 /srv/git 저장소로 가보시면 create.sh 쉘파일이 생성되어 있습니다
- 저장소를 여러개 운용하실 때 해당 스크립트로 손쉽게 GIT 저장소를 생성할 수 있습니다
ex) #./create.sh test.git
4. 아파치 설정
4.1. SSL 모듈 연동
#ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/
#ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled/
4.2. LDAP 모듈 연동
#ln -s /etc/apache2/mods-available/authnz_ldap.load /etc/apache2/mods-enabled/
#ln -s /etc/apache2/mods-available/ldap.load /etc/apache2/mods-enabled/
4.3. SSL 서비스를 위한 심볼릭 링크 설정
#cd /etc/apache2/sites-enabled
#ln -s ../sites-available/default-ssl default-ssl
4.4. /etc/apache2/sites-enabled/000-default 삭제
- 삭제하는 이유는 80포트가 아닌 443포트로만 서비스할 예정이기 때문입니다
4.5. /etc/apache2/ports.conf 수정
NameVirtualHost *:80 주석처리
Listen 포트를 443으로 지정
<IfModule mod_ssl.c> 안의 Listen 443 포트 주석처리
4.6. SSL 설정 파일 수정
#vi /etc/apache2/sites-enable/default-ssl
4.6.1. ServerName 추가
ServerName localhost
4.6.2. 인증서 경로 설정
SSLCertificateFile 인증서 파일 경로
SSLCertificateKeyFile Key 파일 경로
SSLCertificateChainFile Chain 인증서 파일 경로
4.6.3. LDAP 인증 설정 내용 추가
<LocationMatch "/git">
AuthType Basic
AuthName "Git Repository"
AuthBasicProvider ldap
AuthzLDAPAuthoritative On
AuthLDAPURL ldap://LDAP서버IP/LDAP인증 Entry
ex) "ldap://111.111.111.111/ou=People,dc=ldap,dc=test,dc=net?uid"
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
# 접근 제어 세팅 #
Require ldap-user 허용시킬사용자ID
ex) Require ldap-user stormech
Require ldap-group 허용시킬그룹Entry
ex) Require ldap-group cn=dev,ou=Business,ou=Group,dc=test,dc=test,dc=net
</LocationMatch>
4.6.4. Apache 재시작
- 설정 내용을 적용하기 위해 아파치를 재 시작 합니다.
#service apache2 restart
5. GIT 저장소 테스트
- 클라이언트 PC에서 Tortoise GIT / msysgit 등을 이용하여 테스트를 진행합니다
- GITWEB 확인 : https://GIT서버IP/gitweb
- Remote 서버 정보
- 클라이언트 PC에서 테스트 저장소를 만들고 commit / clone / push / pull 테스트를 진행 합니다
※ Tortoise GIT + msysgit 을 이용 시 아래 에러문구를 보인다면?
#error: Couldn't resolve proxy '(null)' while accessing
- 클라이언트 PC에서 bash 쉘을 열고 # git config --global --unset http.proxy 실행!
따라 오시느라 수고 많으셨습니다. ^^
이제 발 닦고 자야겠네요~ㅋ