RHEL/CentOS 6 에 gitlab 바이너리 설치

오래된 문서이니 대신 도커로 깃랩 설치하기(install gitlab using docker) 를 참고하세요.

gitlab 은 공식적으로 Ubuntu 만 지원했는데 RHEL/CentOS 지원이 추가되어서 공식 패키지를 배포하고 있다.

번거롭게 소스로부터 빌드하지 말고 패키지를 설치하는 걸 추천한다.

다음 절차에 따라 손쉽게 설치할 수 있다. 

gitlab 패키지는 NginX web server와 PostgreSQL 이 같이 설치된다.


설치

  1. 필요 패키지와 서비스 설치

    yum install openssh-server postfix
  2. gitlab 패키지 다운로드 및 설치

    만약 gitlab 패키지 다운이 안되면 https://www.gitlab.com/downloads/ 에서 CentOS 패키지를 직접 다운로드 하면 된다.

    wget https://downloads-packages.s3.amazonaws.com/gitlab-6.7.4_omnibus-1.el6.x86_64.rpm
    yum localinstall gitlab-6.7.4_omnibus-1.el6.x86_64.rpm
  3. gitlab 설정

    gitlab-ctl reconfigure
  4. iptable 방화벽에 서비스 오픈

    lokkit -s http -s https -s ssh 
  5. 설치 확인. 아래와 같이 나오면 정상 설치 완료

    > gitlab-ctl status
     
    run: nginx: (pid 18539) 117s; run: log: (pid 18538) 117s
    run: postgresql: (pid 18349) 161s; run: log: (pid 18348) 161s
    run: redis: (pid 18231) 172s; run: log: (pid 18230) 172s
    run: sidekiq: (pid 18480) 124s; run: log: (pid 18479) 124s
    run: unicorn: (pid 18644) 19s; run: log: (pid 18443) 130s

시작 & 종료

gitlab-ctl 명령어로 시작과 종료 가능

  1. 시작

    gitlab-ctl start
  2. 종료

    gitlab-ctl stop
  3. 재시작

    gitlab-ctl restart

    맨 뒤에 component 명을 주면 해당 component 만 재시작할 수도 있다.

    unicorn web server만 재시작
    gitlab-ctl restart unicorn

    제대로 구동이 되지 않는다면 log 파일을 통해 원인을 파악해야 한다. gitlab 의 로그 파일은 /var/log/gitlab 에 위치하며 component 명 하위폴더에 current 파일에 기록된다. 예로 unicorn 의 로그파일의 경로는 아래와 같으므로 tail 명령어로 로그를 확인할 수 있다.

    tail -f /var/log/gitlab/unicorn/current 

설정

gitlab 의 설정 파일은 /etc/gitlab/gitlab.rc 에 설정하면 된다. 해당 파일은 없으므로 에디터로 생성하면 된다.

설정후 gitlab-ctl reconfigure 을 실행해야 반영된다.


URL 설정

gitlab 의 URL 을 설정한다. 

external_url "http://gitlab.example.com"

git data 저장 경로 설정

기본적으로 gitlab 의 data는 /var/opt/gitlab/git-data 에 저장된다. 위치를 변경하려면 gitlab.rb 에 다음과 같이 설정하면 된다.

git_data_dir "/mnt/nas/git-data"

https 활성화

gitlab 은 기본적으로 https 를 사용하지 않는다. 아래 옵션을 추가하면 https 를 사용할 수 있다. 

6.7.4 버전에서는 아래의 설정이 nginx 에 반영되지 않으므로 수작업으로 nginx 설정을 변경해야 한다. 설정 파일은 /var/opt/gitlab/nginx/etc/gitlab-http.conf 에 위치한다.


external_url "https://gitlab.example.com"
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.key"

http 를 https 로 forwarding

아래 내용을 추가하면 http 로 연결된 client 를 https 로 강제로 포워딩한다.

nginx['redirect_http_to_https'] = true


Ref