skip navigation

설치형 Git 서버 설치테스트

  • - GitHub, GitLab 와 같이 원격저장소 제공 서비스를 하는 사이트를 통해 손쉽게 원격저장소를 세팅할 수 있다. 다만 인터넷이 연결되어야 사용 가능하며 서비스에 따라 Repository의 제한이 있을 수 있으며 추가 서비스 (예를 들어 코드를 비공개설정) 이용시 비용이 발생할 수 있기 때문에 사용 목적에 따라 선택해야 한다.

  • - 여기선 설치형 Git Server 관련해서 이야기 하고자 한다.
    설치형 Git Server 세팅하는 방법은 다양하다. 일반적으로 리눅스/유닉스 OS 에서 설치형 Git Server 세팅하며 그 외에도 다양한 방법으로 세팅할 수 있다. 그래서 추천/권장하는 방법은 있어도 어느 한가지 정답은 없다.

  • - Git Server 가장 손쉽게 세팅할 수 있는 방법을 찾기 위해 우리에게 생소한 리눅스/유닉스 OS 대신 Windows OS 와 IIS 서버로 세팅하는 방법이 없을까 하는 고민으로 테스트 하기로 하였다.

  • - GIT 저장소와의 통신은 local, SSH, Git, HTTP 의 네 가지 네트워크 프로토콜을 사용할 수 있다.각각의 프로토콜은 각자 장단점이 있으며 상세 내용은 아래 URL은 참고한다.
    그 중 HTTP 프로토콜 세팅 중 우리에게 익숙한 IIS 서버로 사용하기 위해 Bonobo Git Server 프로그램을 사용하였다.
    참고로 Git Server 시 HTTP 프로토콜 사용하기 위한 서버는 아파치 서버를 일반적으로 사용한다.
    지금 하고 있는 세팅 테스트는 GUI 로 손쉽게 세팅하는 기준으로 선택한 것일 뿐 Git Server 세팅 할 때 주로 선택하는 방법은 아니다. 이 점을 참고해야 한다.

  • [출처] https://git-scm.com/book/ko/v2/Git-서버-프로토콜

IIS 서버 활용 : Bonobo Git Server

준비해야할 사항
  • 1. IIS설정하기
  • 1) 제어판 > 프로그램 > Windows 기능 켜기/끄기

  • 2. Bonobo Git Server 파일 적용
  • 1) https://bonobogitserver.com/ 에서 파일 다운로드.

    2) 다운로드 한 Bonobo.Git.Server 폴더를 웹서버로 지정한 폴더 하위로 이동. Bonobo.Git.Server 폴더명은 변경 가능.

    3) Bonobo.Git.Server 폴더 > App_Data 폴더 > Repositories 폴더의 오른쪽 버튼 메뉴의 속성 클릭 속성창에서 보안탭의 IIS_IUSRS 의 편집을 클릭을 해서 수정 쓰기 권한을 얻어온다.

  • TipIIS_IUSRS 가 없을 경우 ‘편집’ 버튼 > 보안창의 ‘추가' 버튼 > 사용자 또는 그룹 선택의 ‘고급' 버튼 > 사용자 또는 그룹 선택의 ‘지금 찾기’버튼 클릭 > IIS_IUSRS 선택 후 추가

  • 4) ‘IIS(인터넷 정보 서비스) 관리자’ 실행

  • 5) Bonobo.Git.Server 폴더가 있는 웹서버로 정한 폴더에서 오른쪽 버튼 메뉴의 ‘응용 프로그램으로 변환’ 메뉴 클릭

  • 6) 응용 프로그램 풀의 ‘선택' 버튼클릭 > .NET v4.5 선택

  • 7) IIS(인터넷 정보 서비스) 관리자의 ‘사용 권한 편집’ 클릭해서 Repositories폴더의 IIS_IUSRS 권한 편집과 동일하게 권한편집 진행.

  • 8) 상단 그림의 *:80 (http) 찾아보기 를 클릭하면 깃 서버 설정이 되었는지 알 수 있으며 오류 메시지가 나오면 권한 수정이 바르게 되었는지 확인해 보자

  • 9) 깃 서버 설정이 정상적으로 되면 아래 화면이 보여지며 Create new repository 클릭하여 Git 원격 저장소 설정한다.
    기본 관리자 계정: admin / admin

  • 10) 상단 ‘Settings’의 Repository Directory 의 기본 경로는 ~/App_Data/Repositories 이나 다른 경로로 바꿀 수 있다.

  • 11) Create New Repository 클릭하여 원하는 프로젝트 네임과 프로젝트 설명을 적고 아래의 세부 설정 부분이 필요한 경우는 체크하여 원격 저장소를 생성한다.

  • 12) 생성된 원격 저장소 목록에서 프로젝트 네임을 클릭하면 Git 원격 경로를 확인 할 수 있다.

웹서버 세팅 자동 배포

  • 1. Git Server가 세팅된 서버 다른 디렉토리에 클론 저장소 생성하고 IIS 웹서버 세팅

  • 2. Bare 원격저장소에서 신규 생성한 Repository 의 hooks 폴더로 이동

  • 3. post-receive 파일 생성하여 아래 내용 기입 → post-receive : push 이후 동작하는 훅 파일

    cd <non-bare storage path> unset GIT_DIR git pull origin master
  • - 다만 여기서 git: 'pull' is not a git command. See 'git --help'. 메시지를 호출하며 Git Pull 이 동작하지 않았다.
    리서치 해보니 HTTP를 통해서 Push하는 것도 가능하나 단지 이 방법은 잘 사용하지 않는 WebDAV 환경을 완벽하게 구축해야 한다. WebDAV 환경은 Apache web-server 대상으로 설명하고 있어서 더 이상 테스트는 어려웠다.

마치며...

  • - 웹서버의 지역저장소의 자동배포를 실패하여 Bonobo Git Server 프로그램 사용이 어렵다는것을 확인하였다.

  • - 리눅스/유닉스 OS의 Apache web-server 세팅은 경험 부족으로 더이상 테스트 진행은 하지 않기로 하였다.

  • - 참고로 본사에서 사용하고 있는 개발서버도 리눅스/유닉스 OS에서 Apache web-server로 되어 있다.