※ 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%는 해결이 됩니다.

      - 파일을 다운 받으신 후 서버의 적절한 장소로 옮겨줍니다.

     

    install_git.sh

     

    - 내용을 살짝만 보시죠

      - 대충 위와 같은 내용으로.. 첨부 해 드린 스크립트 파일에 간단히 설명을 적어 놓았습니다

     

     

    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 서버 정보

    https://GIT서버IP/git/

      - 클라이언트 PC에서 테스트 저장소를 만들고 commit / clone / push / pull 테스트를 진행 합니다

     

     

    ※ Tortoise GIT + msysgit 을 이용 시 아래 에러문구를 보인다면?

      #error: Couldn't resolve proxy '(null)' while accessing

    - 클라이언트 PC에서 bash 쉘을 열고 # git config --global --unset http.proxy 실행!

     

     

    따라 오시느라 수고 많으셨습니다. ^^

    이제 발 닦고 자야겠네요~ㅋ

     

     

     

    Posted by sybd