본문 바로가기

++ MAKE IT/: Git

우분투 16.04 - 설치형 Github Gitlab을 라즈베리파이/오드로이드에 설치하는 방법


■ Gitlab의 특징
Gitlab은 Github와 같이 버젼관리 서비스이며 무료로 설치형 서비스를 운영할 수 있습니다.
우분투 16.04가 os으로 설치되어 있는 오드로이드(라즈베리파이)에 설치 하는 방법을 알아 보겠습니다. 

■ GitLab 설치

기본적을 https://about.gitlab.com/installation/ 의 설치 가이드를 따르면 되겠지만 
가이드 만으로는 부족함을 느껴 몇가지 추가로 설명드립니다.

저는 개인적으로 운영하고 있는 리눅스 서버에 Gitlab을 설치하겠습니다.
개인적으로 서버를 가지고 있지 않으신 분들은 온라인에서 제공하는 서버를 활용하셔도 좋을 것 같습니다.

저는 odroid라는 싱글보드 컴퓨터를 서버로 이용하기 때문에 odroid 기준으로 설명하도록 하겠습니다.
odoird는 arm7프로세서이므로 raspberry pi2용으로 빌드된 버전을 설치하면 됩니다.

※ 라즈베리파이도 과정은 동일합니다.

1. dependency 프로그램 설치 및 설정
sudo apt-get install curl openssh-server ca-certificates apt-transport-https
curl https://packages.gitlab.com/gpg.key | sudo apt-key add -

2. 메일 서비스 설정을 위한 postfix 설치
sudo apt-get install -y postfix
중간에 설정하는 부분이 나오면 '인터넷 사이트'로 설정하시면 됩니다.

3. gitlab 패키지 저장소 추가 및 설정

!!! 문제 발생
https://about.gitlab.com/installation/#raspberry-pi-2 에 나와있는 package repository 로 부터 설치하는 방법은 어떤이유인지 gitlab-ce 패키지를 찾지 못하였습니다.
sudo EXTERNAL_URL="http://gitlab.example.com:port" apt-get install gitlab-ce

※ Workaround
그래서 직접 패키지를 다운받아 설치 하였습니다.
https://packages.gitlab.com/gitlab/raspberry-pi2 에서 설치할 패키지를 선택합니다.

download the package 부분에 package 다운로드를 위한 wget 명령어가 있습니다.
copy하여 패키지를 다운로드 합니다.

다운받은 패키지를 설치합니다
sudo sudo EXTERNAL_URL="http://gitlab.example.com:port" dpkg -i 패키지이름.deb
EXTERNAL_URL을 적지 않아도 설치는 되지만 EXTERNAL_URL을 명시하면 설치하면서 설정을 자동으로 잡아주게 됩니다.
port 부분은 가급적 현재 사용하지 않는 8000이후의 포트를 사용하길 권장합니다.

이유는 Gtilab은 내부에 nginx를 웹서버로 사용하는데 현재 웹서버가 설치 되어 있다면 서로 충돌이 발생할 수가 있습니다.

3. 외부URL설정 (설치시 EXTERNAL_URL을 명시하였다면 스킵해도 됩니다.)
편집기를 이용하여 /etc/gitlab/gitlab.rb를 열어줍니다.
sudo  nano /etc/gitlab/gitlab.rb

external_url 부분을 찾아 자신이 사용할 URL로 바꾸어 줍니다. 
예를들어 http://mygit.com/git

변경내용을 저장후 반영시킵니다.
sudo gitlab-ctl reconfigure

4. 저장소 설정
기본설정으로 git 저장소 경로는 /var/opt/gitlab/git-data로 되어 있고 하위폴더인 repositories에 데이터가 저장된다.
서버의 메인공간에 데이터를 두는 것은 위험할 수 있어서 이 경로는 바꾸는 것이 좋습니다.
/etc/gitlab/gitlab.rb 파일을 열어 git_data_dirs의 내용을 수정한다.

git_data_dirs({
   "default" => { "path" => "/data/git-data" }
})

5. 프로세스 사용 설정
필요시 /etc/gitlab/gitlab.rb를 열어 프로세스 사용에 대한 세팅을 변경합니다.
unicorn['worker_processes'] = 2
적어도 2개의 프로세스를 사용하라고 권장하지만 라즈베리파이와 같은 싱글보트컴퓨터에서 Gitlab외에 다른 서비스와 함께 운영을 할때
너무 많은 프로세스를 할당하면 시스템이 느려질 수도 있습니다.

여유가 있다면 3 그렇지 않으면 1로도 운영할 수 있습니다. 단 1일경우에는 다소 느려질 수 있다고 합니다.

변경내용을 저장후 반영시킵니다.
sudo gitlab-ctl reconfigure

6. Swap 메모리 설정
Gitlba은 4GB의 메모리를 권장합니다. 4GB가 되지않는 라즈베리파이는 스왑메모리를 사용해야 합니다.
사용하는 방법은  우분투 16.04 LTS에서 스왑(swap)메모리(가상메모리) 추가 하는 방법 - 파일로 추가(http://steps4great.tistory.com/7) 를 참고 바랍니다.

7. 포트충돌 검증
Giltab은 내부적으로 사용하는 번들프로그램들이 많습니다.
이 프로그램들은 각자 포트를 사용하는데 현재 이미 사용중인 포트와 겹친다면 웹페이지가 정상적으로 보이지 않습니다.
/etc/gitlab/gitlab.rb을 보면 아래와 같이 포트를 명시할 수 있도록 되어있습니다.
내부적으로 지정된 포트를 확인하시거나 주석을 제거하여 사용하지 않는 포트로 명시하는 것을 권장 드립니다.
unicorn['port'] = 8082
8. Mail 설정
소규모 서비스이지만 메일알람 서비스가 있다면 뭔가 근사해 보입니다. 설정 하도록 하겠습니다.
이 또한 /etc/gitlab/gitlab.rb를 수정합니다.
https://docs.gitlab.com/omnibus/settings/smtp.html#smtp-settings

수정하는 방법은 위 링크에 나와있습니다. Gmail을 사용하시는 것을 권장합니다.

※ 만약 제대로 설치 하였는데도 502 에러가 발생하는 경우

페이지 로딩이 늦어져서 그런 경우가 있으니 잠시동안 기다렸다가 다시 불러보시길 바랍니다.
개인적이로 소규모에서 사용한다면 문제는 없지만 싱글보드컴퓨터이기 때문인지 첫로딩은 다소 느린것 같습니다.
다만, 이후 사용하는 것에는 큰 불편함이 없습니다.


반응형