본문 바로가기
IT/SCM

Gitlab-ce 설치 및 구성

by 마이오픈마인드 2022. 3. 12.

내부 프로젝트에서 사용하기 위해 gitlab 설치가 필요할때 상용버전이 아닌 ce버전을 사용할수 있다. 

본글에서는 redhat 환경에서 gitlab-ce 설치 및 구성하는 방법을 설명하고자 한다. 

 

 

1. Gitlab 설치  

 

   1.1 Gitlab-ce 다운로드  

- 사이트 : gitlab/gitlab-ce - Packages · packages.gitlab.com

 

OS 버전 / CPU 환경에 맞는 버전을 선택하고 다운 받는다.  (설치 환경 : redhat 8 / 64bit rpm)

개인적으로 gitlab-ce는 공짜라서 그런가.. 접속 사이트 찾기 어렵게 해놓은듯 하다. 

  1.2 Gitlab-ce rpm 설치 

   - 디렉토리 : /sw/ci/gitlab

   - 실행계정 : ci (솔루션계정)

   - 명령어 : 

sudo yum install gitlab-ce-14.6.6.ce.0.el8.x86_64.rpm

 

    * 개인적으로 gitlab은 root로 설치하고 일반계정에 기동/재기동/종료에서 대한 sudo 권한을 주는게 나을듯함.

       일반 솔루션계정으로 설치는 쉽지 않다. 

 

2. 환경구성

 

   2.1 Gitlab 포트 변경

    - 디렉토리 : /etc/gitlab

    - 파일명 : gitlab.rb

    - 명령어 :

sudo vi gitlab.rb

    - 변경내용 :      

external_url 'http://서버IP:서버포트/'
       git_data_dirs.({
           "default" => {
                "path" => "/repo/git-data"    #Gitlab 레파지토리 공간
               }
       })

    2.2 변경설정 적용

     - 계정 : ci

     - 명령어 : 

sudo gitlab-ctl reconfigure

         * 환경설정 후 기동/중지/재기동 명령어 수행

 

     2.3 Gitlab 기동/중지/재기동 명령어

     - 기동 : sudo gitlab-ctl start

     - 중지 : sudo gitlab-ctl stop

     - 재기동 : sudo gitlab-ctl restart

 

3. 기타 - 가용성 확보 방안

 

큰규모의 프로젝트에서는 장애상황에 대비하여야 한다.

 

   3.1 고가용성 환경 구성

      3.1.1 AP#1, AP#2로 구성 (Active-StandBy) 

          엔진영역 / 데이터영역 구분해서 세팅하고, 장애발생시 데이터영역 AP#2 으로 mount하고 AP#2 엔진 기동  

        - 엔진영역 : /etc/gitlab    => AP#1, AP#2 로 구성

        - 데이터영역 : /repo/git-data     =>  /repo영역을 infoscale로 구성,  /etc/gitlab/gitlab.rb 에서 데이터 영역설정

 

      3.1.1 NetBackup 솔루션 사용

           데이터영역을 NetBackup 솔루션을 사용하여 백업진행        

        - 데이터영역 : /repo/git-data     =>  /etc/gitlab/gitlab.rb 파일의 데이터 영역을 변경

 

4. 참고 - 환경구성

    솔루션 계정으로 설치하고 운영을 하려고 변경을 시도했지만 해당 수정만으로는 쉽지 않으니 하기 gitlab.rb 하기 내용은 참고만하고, 변경하지 말것.

    

    - 디렉토리 : /etc/gitlab

    - 파일명 : gitlab.rb

    - 설정내용 :

user['username'] = 사용자명    // Gitlab 레파지토리 관리할 계정명
user['group'] = 사용자그룹      // Gitlab 레파지토리 관리할 그룹명
user['uid'] = nil                    // Gitlab 레파지토리 관리할 계정의 uid
user['gid'] = nil                    // Gitlab 레파지토리 관리할 그룹의 gid
user['home'] = 'ha'                // Gitlab 레파지토리 관리할 계정의 home 디렉토리

 

 

'IT > SCM' 카테고리의 다른 글

svn 설치 및 구성  (0) 2022.03.10