대부분의 개발팀 에서는 개발하고 있는 프로젝트의 소스를 VCS(Version Control Systems)을 이용해서 관리하고, 협업할때 사용을 합니다. 대표적으로 SVN(Subversion), Git이 있죠.
주로 우리가 오픈소스 프로젝트를 하거나 개인프로젝트를 진행할때는 Github을 많이 사용하고, Private 레파지토리도 무제한이라서 스타트업 또는 회사에서도 Github을 이용해 소스코드를 관리 하는 곳도 있습니다.
하지만 제가 경험한 회사들은 일단 다른 회사의 서버(Github, Bitbucket, GitLab 등등)에 우리 회사에서 진행한 프로젝트의 소스코드(자산) 을 업로드 하는걸 좋아하지는 않습니다. 혹시모를 보안상의 이유나, 장애발생시 대처가 어렵다는 이유인것 같은데요.
그래서 저희팀도 자체적으로 VCS서버를 운영을 하고 있습니다. 설치형 Git(Self-Hosted)서버는 GitLab, Bitbucket(이거 둘만 알고있습니다) 이 있는데요 Bitbucket은 자체 서버에 설치하더라도 무조건 유료인데, GitLab Core 버젼(?)은 무료로 제공하고 있어서 GitLab 선정 된거 같습니다. (제가 설치한건 아니라 정확한 이유는 모르겠….)
아무튼 오늘은 ubuntu 서버에 GitLab 직접 설치해 보도록 하겠습니다.
우선 GitLab은 Community Edition이랑 Enterprise Edition으로 구분이 되어있구요
CE는 무료, EE는 유료 이렇게 구분하면 좀 쉽게 구분할 수 있고
EE가 유료인만큼 조금 더 다양한 기능이 있습니다. 기능 비교
EE로 설치하셔도 라이센스를 구매하지 않으신경우엔 CE와 동일하게 사용 가능한거 같습니다.
Gitlab을 쓰다가 나중에라도 라이센스 구매를 할 계획이 있으시다면 무조건 EE를 설치해주세요.
(CE로 설치하면 라이센스 적용시 EE로 재 설치 하셔야합니다.)
이 글에서는 Enterprise Edition으로 설치해보도록 하겠습니다.
Enterprise Edition으로 설치
GitLab Installation 사이트에 보면 아래 사진처럼 엄청 다양한 형태로 GitLab을 설치할수 있게 제공을 해주는데 Omnibus package installation 항목 중 가장 왼쪽 상단에 ubuntu 를 선택하면 ubuntu에서 설치하는 방법에 대해서 나오는데 설치 방법이 엄청 쉽습니다. (요 방법은 EE로 설치됩니다.)
패키지 매니저 업데이트 후 GitLab설치시 필요한 패키지를 설치합니다.
1
2sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates위 패키지를 설치한 후 가이드에는 이메일 전송을 위해 postfix 패키지를 설치하라고 하지만
사내에서 제공중인 SMTP 서버를 사용하기 위해 해당 패키지 설치는 skip하겠습니다.GitLab 패키지 설치 저장소를 추가합니다.
1
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
| sudo bash 가 어떤 역할을 하는 명령어 인지 정확하게 몰라서 검색해 봤더니 저랑 같은 궁금증을 가졌던 사람이 reddit에 있었습니다.
답변으로는curl로 해당 .sh 파일을 받아오고 파이프 명령어를 이용해 바로 sudo 권한으로 bash를 이용해 해당 파일을 실행시킨다
라고 답변이 적혀 있네요.
아마 저 쉘 스크립트 파일에 GitLab 설치를 위한 스크립트가 작성 되어 있는거 같습니다.
(열어봤는데 뭔지 잘 모르겠어요…)GitLab 설치하기
설치하기 전에 GitLab에 연결할 도메인이 있으면 EXTERNAL_URL에 해당 도메인을,
없으면 해당 서버의 IP를 입력해주셔야 합니다.1
2
3
4sudo EXTERNAL_URL="https://gitlab.example.com" apt-get install gitlab-ee
#저는 도메인도 없고, 인증서 설치를 하지 않아 아래와 같은 형태로 제 서버의 IP주소를 이용해 설치했습니다.
sudo EXTERNAL_URL="http://192.168.0.1" apt-get install gitlab-ee
1번 부터 3번까지 정상적으로 잘 진행되었으면 GitLab이 정상적으로 설치된것 입니다.
3번에서 입력한 도메인 또는 IP를 입력하면 비밀번호 변경 페이지가 바로 나오는데요
root계정의 비밀번호를 설정하는 페이지이고, 비밀번호 설정 후 로그인 페이지에서
Username은 root, Password는 방금 설정하신 비밀번호를 이용해 로그인 하시면 됩니다.
이 이후부터는 특별한 설정을 하지 않아도 Github처럼 레파지토리를 생성하고, 프로젝트를 푸시하는 등의 기능을 모두 사용 가능합니다.
참고