git 은 CVS, SVN 을 이어 소스 형상관리 시스템으로 많이 사용되어 왔어.
github 가 등장하면서 WebUI 를 통한 소스 관리 기능이 소개되었고, 개인 또는 기업에서 자체적으로 gitlab 을 설치하여 github 를 대신하는 소스 형상관리 이상의 시스템을 갖추고 있지.
이번 포스트에서는 우분투 22.04 에 gitlab 을 설치하는 방법을 살펴볼텐데, 우분투 설치하는 방법은 우분투 22.04 설치하기 – VMware VM 포스트를 참고하길 바래.
gitlab-ce 서버 사양
gitlab 은 생각보다 높은 사양이 필요하더라고. 저장소 경로는 저장될 데이터의 크기에 맞추어 준비하면 되겠지만, CPU 와 메모리는 얼마나 할당해야 할까 하다가, 여러번 설치해보면서 무리가 없는 수준을 찾았어.
- CPU : 4 vCPUs
- MEM : 8192 MB
VM 치고는 메모리를 꽤 차지하게 되었어. 조금 과하게 할당한건 맞는데, 이 상태에서 gitlab WebUI 가 오류없이 제대로 표시가 되더라고. MicroServer 에서 동작하는 VM 이 아니라면 4096 MB 정도의 메모리로도 잘 동작할 것으로 생각이 돼.
gitlab-ce 설치하기
gitlab-ce 동작에 필요한 의존성 소프트웨어 패키지를 미리 설치해주어야 해. 상황에 따라 이미 설치되어 있을 수 있는데, 이 경우에는 그냥 skip 이 되지.
$ sudo apt install ca-certificates curl openssh-server
gitlab-ce 는 우분투 공식 리파지토리에서는 제공되지 않기 때문에 리파지토리를 추가해주어야 해.
$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
gitlab-ce 설치를 위한 리파지토리 설정이 완료되었다고 하네. 이제 gitlab-ce 를 설치할 수 있어.
$ sudo apt update
$ sudo apt install gitlab-ce
설치가 완료되면 GitLab 이라는 글자가 아스키 아트로 출력이 되지.
이제 gitlab 설정을 해 주어야 해.
gitlab-ce 설정하기
gitlab 설정 파일의 경로는 /etc/gitlab/gitlab.rb 야.
$ sudo vi /etc/gitlab/gitlab.rb
external_url 값을 수정해 주어야 하는데, 이 URL 값은 gitlab 저장소를 표현하는데 사용되거든. gitlab 서버를 web ui 로 접근할 수 있는 적절한 URL 주소를 기록해주면 돼. 나는 gitlab 서버의 IP 주소를 기록해줬어. 이 값이 어떻게 사용되는지를 나중에 다시 살펴볼 기회가 있을거야.
gitlab.rb 파일을 수정했다면, 아래 명령어로 그 수정된 내용을 적용시켜 주어야 해.
$ sudo gitlab-ctl reconfigure
reconfigure 작업은 시간이 꽤 오래 걸리는 편이야. 작업이 완료되면 웹브라우저를 이용하여 Web UI 에 접근할 수 있어. gitlab-ce 의 Web UI 는 nginx 웹서버를 사용하고 있어.
최초 로그인할 때 root 계정을 사용하고 패스워드는 아래 방법으로 확인할 수 있지.
$ sudo cat /etc/gitlab/initial_root_password
이 패스워드는 reconfigure 이후 24시간이 지나면 자동으로 삭제가 되는데, 그 이전이라도 이 패스워드로 로그인 처리가 안되는 경우가 있을 수 있어. 그럴 때는 아래 명령어를 사용해서 패스워드를 초기화시킬 수가 있지.
$ sudo gitlab-rake "gitlab:password:reset"
변경하고자 하는 계정을 입력한 뒤에 변경할 패스워드를 두번 입력하면 되는거야.
로그인에 성공하면 sign-up 제한설정을 확인하라는 메시지가 표시되지. 기본적으로 누구나 계정 가입을 신청할 수 있는 모드인데, root 권한의 사용자가 이를 확인하고 신규 가입을 비활성화시켜야 한다는 보안 권고를 하는거야.
Sign-up restrictions (가입 제한) 설정 중에서 Sign-up enabled 항목의 체크를 해제시켜주면 임의의 방문자가 가입을 마음대로 할 수 없게 되지. 아래쪽 설정 내용도 검토해보고나서 “Save changes” 버튼을 클릭해주면 설정값이 저장돼.
GitLab 의 Web UI 사용방법에 대해서는 다른 포스트에서 조금 더 자세하게 다루어볼 예정이야.
이 포스트에서는 마지막으로 GitLab 저장소의 경로를 변경하는 방법까지 살펴볼까해.
gitlab-ce 저장소 경로 변경하기
gitlab 이 소스 형상관리를 위해서 사용하는 저장소 경로는 기본적으로 /var/opt/gitlab/git-data 야. 이 저장소 경로를 다른 디렉토리로 변경하는 방법에 대해서 설명하려고 해.
$ sudo su -
$ cd /var/opt/gitlab/git-data
root 계정으로 사용자를 변경한 후에 /var/opt/gitlab/git-data 디렉토리로 경로를 이동해보면
repositories 디렉토리가 존재하는걸 확인할 수 있어. git-data 디렉토리도, repositories 디렉토리도 모두 git 사용자의 소유로 설정되어 있는 것도 확인할 수 있지. 일단 이런 설정인 것을 확인한 후에 gitlab.rb 파일에서 git 저장소 경로의 설정부분을 변경하는 과정에 대해서 알아볼께.
$ sudo vi /etc/gitlab/gitlab.rb
gitlab.rb 파일에서 git_data_dirs 를 검색해보자(vi 에디터로 gitlab.rb 파일을 오픈한 후 /git_data_dirs 를 입력하면 검색이 되지). 초기값은 주석처리가 되어 있는 상황에서 아래와 같이 기록되어 있을거야.
나는 주석을 해제하고 아래와 같이 /data/git-data 디렉토리를 설정해줬어. 그리고 gitlab.rb 파일을 저장했지.
물론 /data/git-data 디렉토리가 존재해야 하기 때문에 아래 명령어로 디렉토리를 생성해주고 git 계정으로 소유자도 수정을 해주었지.
$ sudo mkdir -p /data/git-data
$ sudo chown -R git:git /data/git-data
gitlab.rb 파일이 변경되었으니 적용해주어야겠지?
$ sudo gitlab-ctl reconfigure
저장소 경로 변경이 제대로 적용되었는지는 root 권한으로 변경한 후에 /data/git-data 경로로 이동해보면 알 수 있어.
$ sudo su -
$ cd /data/git-data
git-data 디렉토리까지만 생성했는데, 그 하위에 repositories 디렉토리가 만들어져 있는걸 볼 수 있을거야.
이번 포스트에서는 gitlab 설치 방법과 기본적인 설정 방법에 대해서 살펴봤어.
앞으로 다른 포스트를 통해서 gitlab Web UI 를 활용하는 방법에 대해서 더 자세하게 알아볼 생각이야.