RHEL/CentOS 6 에 gitlab 바이너리 설치
오래된 문서이니 대신 도커로 깃랩 설치하기(install gitlab using docker) 를 참고하세요.
gitlab 은 공식적으로 Ubuntu 만 지원했는데 RHEL/CentOS 지원이 추가되어서 공식 패키지를 배포하고 있다.
번거롭게 소스로부터 빌드하지 말고 패키지를 설치하는 걸 추천한다.
다음 절차에 따라 손쉽게 설치할 수 있다.
gitlab 패키지는 NginX web server와 PostgreSQL 이 같이 설치된다.
설치
필요 패키지와 서비스 설치
yum install openssh-server postfix
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
gitlab 설정
gitlab-ctl reconfigure
iptable 방화벽에 서비스 오픈
lokkit -s http -s https -s ssh
설치 확인. 아래와 같이 나오면 정상 설치 완료
> 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 명령어로 시작과 종료 가능
시작
gitlab-ctl start
종료
gitlab-ctl stop
재시작
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