Ubuntu 14.04 LTS 서버에 GitLab 설치

GitLab은 서버에 설치해서 Git Remote 서버로 쓸수 있게 해주는 동시에, 웹브라우저로 접속하여 Git 관리를 할 수 있게 해주는 툴이다. GitLab.com에서 호스팅해주는 서비스를 사용해도 되지만 오픈소스로 배포되고 있어서 직접 서버에 구성해서 사용할 수 있다.

물론 Git repository 관리를 위해서 GitHub를 쓰거나 GitLab.com 의 서비스를 사용해도 되지만 GitHub 같은 경우에는 프로젝트를 비공개로 설정하려면 유료 계정으로 전환해야 한다.

만약 무료로 개인용 서버에 설치해서 비공개 repository를 운영하거나, 팀단위에서 cooperation을 하기 위해 Git Remote를 운영하고 싶다면 오픈소스로 배포되는 GitLab Community Edition이 좋은 옵션이 될 수 있다.

이 포스팅은 Ubuntu 14.04 LTS에 GitLab 7.6 버젼을 설치하는 방법에 대한 내용이다.

GitLab

  • Web에서 Browser로 접속할 수 있는 Git 관리 툴.
  • Ruby 로 개발됨.
  • 오픈소스로 프로젝트를 공개하여, 개인 서버에도 구성이 가능함. (필자는 서버 컴퓨터에서 VMWare로 Linux 가상머신을 만들고 GitLab을 설치했다. 과정은 크게 다르지 않다.)
  • 자세한 내용은 GitLab – About GitLab 참조

GitLab 설치

  • GitLab 홈페이지에서 다운로드 및 설치 메뉴얼을 참조
    — Omnibus 배포판을 통해 Community Edition을 설치할 수 있다.

GitLab – Download and Installation
GitLab – Omnibus GitLab Documentation

  • Ubuntu 14.04 에서는 아래 명령어로 설치 가능하다.
wget https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.6.2-omnibus.5.3.0.ci.1-1_amd64.deb
sudo apt-get install openssh-server
sudo apt-get install postfix # Select 'Internet Site', using sendmail instead also works, exim has problems
sudo dpkg -i gitlab_7.6.2-omnibus.5.3.0.ci.1-1_amd64.deb

# 위 명령어를 실행하면 email 설정 화면으로 넘어간다. Internet site 로 설정하고 관리자의 email 을 입력하면 된다.

sudo dpkg -i gitlab_7.5.1-omnibus.5.2.0.ci-1_amd64.deb
  • GitLab 설정을 한다. GitLab – Omnibus Configuration 참조
    — 설정 파일은 /etc/gitlab/gitlab.rb
  • sudo vim /etc/gitlab/gitlab.rb로 수정. (vim editor 가 사전에 설치되어 있는지 확인할 것.)
    — 포트를 바꾸거나 GitLab의 주소를 바꾸고 싶으면 interal_api_url 을 입력해준다.

gitlab_rails['interal_api_url'] = 'http://IP:PORT';
  • 도메인을 연결하거나 외부에서 접속할때의 주소를 지정하고 싶으면 exterunal_url을 입력해준다.
external_url 'http://address';
  • 설정이 완료되면 터미널에서 sudo gitlab-ctl reconfigure 명령어로 설치가 제대로 됐는지 확인한다.

sudo gitlab-ctl status 를 입력했을 때 아래처럼 뜨면 정상

run: nginx: (pid 972) 7s; run: log: (pid 971) 7s
run: postgresql: (pid 962) 7s; run: log: (pid 959) 7s
run: redis: (pid 964) 7s; run: log: (pid 963) 7s
run: sidekiq: (pid 967) 7s; run: log: (pid 966) 7s
run: unicorn: (pid 961) 7s; run: log: (pid 960) 7s
  • 클라우드가 아니라 개인 서버나 PC에 GitLab을 구성하는 경우 방화벽이 문제되는 경우가 있다.
  • 해당 포트의 방화벽을 해제해준다.
    — GitLab은 80 포트를 사용하여 웹호스팅한다.

VMWare에 GitLab 구성하는 경우

<li><strong>VMware의 Virtual Network Editor 에서 포트 포워딩 해줘야 함.</strong></li>

1. 도구막대의 Edit-Virtual Network Editor
2. NAT 을 선택한 후 NAT Settings 버튼을 누른다.
3. Port Forwarding 에서 Add.
4. Host Port 는 Guest와 연결될 Host의 포트 (여기선 8080으로 설정함.)
5. Guest Port 는 Guest에 설치된 GitLab이 사용하는 포트. 별다른 설정을 하지 않았으면 80.
6. IP는 Guest의 IP 입력. (여기선 192.168.46.128)
7. Description 입력. (e.g) GitLab)
8. Host의 방화벽 설정에서 Port Forwarding 에서 입력한 Host Port 를 열어준다. (자세한 내용은 아래 링크 참조)

링크 참조 MS Windows – Open Port Firewall

  • 학내 네트워크 정책으로 인해서 GitLab 유저는 email 을 반드시 @snu.ac.kr 도메인으로 설정해야 confirmation email 등 GitLab에서 보내는 email 을 받을 수 있다.
  • 학내 네트워크 정책으로 80 포트가 방화벽으로 인해 학외에서는 접속이 불가. 따라서 8080 포트로 우회하도록 포트를 8080으로 설정했다.

GitLab 사용

  • 관리자는 Gitlab에 멤버를 초대할 수 있음
  • 관리자에게 계정 생성을 요청하거나 GitLab 에 접속하여 계정 생성
  • GitLab Web에서 관리자의 초대 없이 사용자가 직접 계정을 생성할 수 있도록 하기 위해선 GitLab 설정 (서버에서 sudo vim /etc/gitlab/gitlab.rb로 설정 파일 수정)에서 아래를 입력.
gitlab_rails['gitlab_signup_enabled'] = true
  • 계정을 생성하면 생성한 계정의 이메일로 확인 메일이 발송된다. 확인 메일의 링크를 클릭해야 계정 생성 완료.
  • 허용된 계정으로 Gitlab 에 git commit 이나 push 등의 명령을 하려면 ssh key 를 등록해야 함. 자세한 내용은 프로필의 ssh keys의 “generate it” 링크 확인.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s