Ubuntu 18.04 LTS에 GitLab-CE 설치 방법을 적어둔다.
당연하겠지만 공식 가이드 문서를 참고할 것.
공식 가이드 문서 : https://about.gitlab.com/install/
방법
1. OS 버전 확인
cat /etc/issue
# 또는
uname -a
# 또는
cat /etc/*release*
만약 사진처럼 Amazon Linux 2 AMI를 사용하는 EC2에 설치하고자 한다면 CentOS 7 버전의 문서를 참고할 것.
다만 이 글은 Ubuntu에서 설치하는 것만 다룬다. 사실 명령어만 조금 차이 있고 과정은 동일하다.
2. 의존성 패키지 설치
sudo apt-get update
sudo apt-get install curl openssh-server ca-certificates tzdata perl
보통 y 옵션을 줘서 별도로 사용자 확인 없이 설치하게끔 하는데, 어떤 패키지가 설치되는지 확인하는 것을 권한다.
패키지 설치 확인
dpkg -l
# 또는
apt --installed list
설치된 패키지 전체가 출력되기 때문에 grep으로 필터링하면 좋다.
3. 메일 서버 설치
sudo apt-get install postfix
postfix는 GitLab에서 알림 이메일을 보내기 위해 필요하다. 나는 필요하지 않아서 설치하지 않았다. 별도로 SMTP를 구성해 사용한다면 설치하지 않아도 된다.
4. Gitlab 패키지 레포지터리 추가 및 설치
두 가지 명령어 중에 필요한 것을 실행한다.
# GitLab CE
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
# GitLab EE
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
GitLab은 Community Edition과 Enterprise Edtion으로 구분되는데, 그 차이는 아래 사진과 같다.
- Community Edition : Core로만 구성되어 무료 오픈소스로 사용 가능
- Enterprise Edtion : Core는 CE와 동일. 가격에 따라 티어가 구분되며 고급 기능 제공
무료로 사용하고자 하는 경우, 둘 중 아무 버전을 설치해도 상관없다. 다만 CE 버전을 사용하다 버전을 업그레이드하려는 경우에는 서비스 중단이 필요할 수 있다. GitLab 공식 홈페이지에서는 EE 버전 이용하기를 권하고 있다.
이 글에선 CE 버전을 설치했다.
5. GitLab 설치
sudo EXTERNAL_URL="https://gitlab.example.com" apt-get install gitlab-ce
# 포트 번호 지정
sudo EXTERNAL_URL="http://IP:PORT_NUM" apt-get install gitlab-ce
EXTERNAL_URL 부분에는 웹 브라우저를 통해 GitLab에 접속할 때 사용할 URL 주소를 설정한다. 도메인 주소가 있다면 도메인 주소를 설정하면 된다.
만약 포트 번호를 지정한다면 기존에 사용하지 않은 번호로 적절하게 설정한다.
netstat -ano | grep <PORT_NUM>
발생 가능 에러
letsencrypt_certificate 에러
- 원인 : 인증서 구성 없이 https 사용
- 해결방법 : http 사용 또는 인증서 구성
=> 이 글에서는 http를 사용한다.
설치 완료 후 접속 시 502 에러
- 원인 : 단순 서비스 지연 또는 포트 충돌
- 해결 : 대기 후 새로고침 또는 포트 변경
5.5 설정 파일 변경 및 설정 적용
설정 파일을 수정했다고 자동으로 적용되지는 않는다.
# 설정 파일 수정
sudo vim /etc/gitlab/gitlab.rb
# 변경 설정 적용
sudo gitlab-ctl reconfigure
6. 설치 완료
정상적으로 설치가 완료됐다면 웹 브라우저를 통해 EXTERNAL_URL로 접속한다.
최소 접속 시에는 관리자 계정의 비밀번호를 설정하게 된다. 비밀번호 설정 이후에는 접속 시 아래와 같은 로그인 화면을 볼 수 있다.
참고로 관리자 계정의 Username은 root이다.