• gitlab 공식 사이트의 설치 가이드 제공 URL → https://about.gitlab.com/install/#centos-7?version=ce
  • gitlab을 docker container registry로 사용 가능
  • 쿠버네티스 CI/CD 파이프라인으로 활용 가능
  • 무료 버전인 ce(Community Edition)을 찾아서 설치해야 라이선스 없이 설치 가능
  • 공식사이트의 설치가이드를 따라 설치하면 ee(Enterprise Edition)의 가이드를 보여주기 때문에 ee버전을 설치 → 주의 필요

gitlab을 설치하기 전의 사전작업 (메일서버 설치)

  • gitlab에서 사용자 가입 인증이나 관리자에게 Alerts이나 기타 이유로 메일을 보내야 하므로 메일 서버를 설치
    $ yum install postfix -y
    $ systemctl enable --now postfix
    $ systemctl status postfix


gitlab 패키지 설치하기

1. 패키지 저장소 등록

  • curl를 이용하여 gitlab package repository를 등록
    $ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

2. 패키지 설치

  • yum을 이용하여 등록된 패키지를 설치
  • EXTERNAL_URL은 지금 설치한 gitlab 웹사이트에 접속할 URL을 입력
  • 보통 도메인이 있으면 도메인명을 입력하지만 도메인이 없는 경우 일단 그냥 IP번호를 작성해도 됨
  • Port를 다른 포트로 사용한다면 port번호도 :으로 구분하여 작성 → port는 8001로 가정
  • yum install -y gitlab-ce 설치
    # EXTERNAL_URL="자신의 도메인이나 접속가능한 IP:접속할 Port번호" yum install -y gitlab-ce
    $ EXTERNAL_URL="[서버 IP]:8001 또는 도메인" yum install -y gitlab-ce

3. 설치한 gitlab 실행

  • 설치에 별 문제가 없는 경우는 설치가 완료
  • 도메인 또는 [서버 IP]:8001을 웹브라우저에 입력하면 gitlab 로그인 화면 출력되면 설치에 반은 성공


4. 설치한 gitlab에 로그인

  • 최초 접속 시 로그인 아이디는 root
  • 최초 접속시 root 비밀번호 갱신 → qwer1234
    $ gitlab-rails console -e production
    irb(main):005:0> user = User.where(id: 1).first
    => #<User id:1 @root>
    irb(main):006:0> user.password='qwer1234'
    => "qwer1234"
    irb(main):007:0> user.password_confirmation='qwer1234'
    => "qwer1234"
    irb(main):008:0> user.save
    => true
  • root 계정 로그인 성공

gitlab 설정하기

  • gitlab의 설정은 설치된 폴더에서 gitlab.rb을 변경
  • 보통 설치 위치는 /etc/gitlab/gitlab.rb → gitlab 많은 설정이 해당 파일에서 적용 가능
    $ vi /etc/gitlab/gitlab.rb

1. 업로드 파일 용량 변경

  • 한번에 업로드해야 할 파일의 용량이 큰 경우 사이즈 조정 필요 → 업로드 파일 용량을 1G로 제한
  • 앞에 주석(#)을 제거해야 반영됨
    $ vi /etc/gitlab/gitlab.rb
    ## ...중략...
    nginx['enable'] = true
    nginx['client_max_body_size'] = '1G'

2. 레파지토리 저장 디렉토리 위치 변경

  • 기본은 지정된 레파지토리 저장위치가 있으나 드라이브를 별도로 추가하여 운영하는 경우는 다른 드라이브로 저장 위치를 변경해야함

  • git_data_dirs 함수 아래에 원하는 저장 디렉토리를 지정

  • /dev/sdb1와 mount된 /data 디렉토리 아래에 gitlab_data에 저장(/data/gitlab_data)

  • /data/gitlab_data/ 디렉토리가 없다면 해당 디렉토리 생성 필요

    $ mkdir /data/gitlab_data
    
    # 레파지토리 저장 디렉토리 위치 변경
    $ vi /etc/gitlab/gitlab.rb
    ## ...중략...
    git_data_dirs({
      "default" => {
        "path" => "/data/gitlab_data"
       }
    })

3. 도메인 생성 및 SSL 적용

  • IP를 사용할 경우 SSL 사용 X

  • SSL을 사용하는 경우 도메인 필요

  • /etc/gitlab/ssl 디렉토리로 crt, key 파일 복사 필요

    $ vi /etc/gitlab/gitlab.rb
    
    external_url 'https:/도메인'
    nginx['redirect_http_to_https'] = true
    nginx['redirect_http_to_https_port'] = 80
    
    nginx['ssl_certificate'] = "/etc/gitlab/ssl/도메인.crt"
    nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/도메인.key"
    
    # 도메인 생성 및 SSL 설정 적용
    $ gitlab-ctl reconfigure



gitlab 터미널 명령어

  • 대표적인 gitlab의 터미널 명령어

1. gitlab 재설정 후 재시작

  • gitlab 설정을 변경하였다면 재설정과 재시작
    $ gitlab-ctl reconfigure

2. gitlab 시작

  • gitlab 시작
    $ gitlab-ctl start

3. gitlab 종료

  • gitlab 종료
    $ gitlab-ctl stop

4. gilab 재시작

  • gitlab 재시작
    $ gitlab-ctl restart


gitlab 삭제

  • gitlab를 삭제해야 할 경우는 아래의 명령어로 삭제
  • 남아있는 폴더나 파일이 있는경우 수동으로 삭제 필요

1. gitlab 명령어 삭제

  • gitlab 삭제
    $ gitlab-ctl uninstall
    $ gitlab-ctl cleanse
    $ gitlab-ctl remove-accounts
    $ dpkg -P gitlab-ce || sudo yum -y remove gitlab-ce

2. 수동삭제 → rm -rf 명령어로 해당 디렉토리 삭제

  • gitlab 삭제에 필요한 디렉토리 목록
    - /opt/gitlab
    - /var/opt/gitlab
    - /etc/gitlab
    - /var/log/gitlab

+ Recent posts