웹사이트 검색

Ubuntu 16.04에서 GitLab을 설치하고 구성하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 우분투 18.04(Bionic Beaver)
  • 우분투 16.04(Xenial Xerus)

이 페이지에서

  1. 1단계 - 필요한 Ubuntu 패키지 설치\n
  2. 2단계 - Gitlab 설치
  3. 3단계 - Gitlab 기본 URL 구성
  4. 4단계 - SSL 생성 DHPARAM 인증서를 암호화합니다.\n
  5. 5단계 - GitLab용 Nginx HTTPS 활성화\n
  6. 6단계 - UFW 방화벽 구성\n
  7. 7단계 - Gitlab 설치 후\n
  8. 8단계 - 테스트
  9. 환경 설정\n

GitLab은 Rails를 기반으로 하고 GitLab Inc에서 개발한 오픈 소스 GIT 저장소 관리자입니다. 팀이 코드 작업을 하고 버그 및 기능 요청을 추적하고 애플리케이션을 테스트 및 배포할 수 있게 해주는 웹 기반 GIT 저장소 관리자입니다. GitLab은 위키, 문제 추적, 코드 검토, 활동 피드 및 병합 관리와 같은 기능을 제공합니다. 여러 프로젝트를 호스팅할 수 있습니다.

GitLab은 다음 네 가지 버전으로 제공됩니다.

  1. Gitlab CE(Community Edition) - 자체 호스팅, 무료 및 커뮤니티 포럼 지원.\n
  2. Gitlab EE(Enterprise Edition) - 자체 호스팅 유료 앱으로 추가 기능이 제공됩니다.\n
  3. GitLab.com - SaaS, 무료.
  4. GitLab.io - GitLab Inc.에서 관리하는 비공개 GitLab 인스턴스\n

이 튜토리얼에서는 Ubuntu 16.04 Xenial Xerus 서버에 GitLab CE(Community Edition)를 설치하는 방법을 단계별로 보여줍니다. 이 튜토리얼에서는 쉬운 설치를 위해 GitLab에서 제공하는 옴니버스 패키지를 사용할 것입니다.

우리가 할 일:

  1. 패키지 설치
  2. GitLab 설치
  3. GitLab URL 구성
  4. SSL 생성 암호화 및 DHPARAM 인증서 허용\n
  5. GitLab용 Nginx HTTPS 활성화\n
  6. UFW 방화벽 구성\n
  7. GitLab 설치 수행\n
  8. 테스트

전제 조건

  • Ubuntu 16.04 서버 - 64비트
  • 최소 RAM 2GB
  • 루트 권한\n

1단계 - 필요한 Ubuntu 패키지 설치

첫 번째 단계는 GitLab 설치에 필요한 패키지를 설치하는 것입니다. 루트 사용자로 서버에 로그인하고 Ubuntu 리포지토리를 업데이트하십시오.

ssh 
apt-get update

이제 GitLab 리포지토리를 다운로드하기 위한 curl, ca 인증서 및 SMTP 구성을 위한 postfix를 포함하는 패키지를 설치합니다.

아래의 apt 명령으로 모든 패키지를 설치하십시오.

sudo apt install curl openssh-server ca-certificates postfix

postfix 설치 중에 구성에 대한 메시지가 표시되면 인터넷 사이트를 선택하십시오.

그런 다음 이메일을 보내는 데 사용할 서버 도메인 이름을 입력합니다.

2단계 - Gitlab 설치

이 단계에서는 옴니버스 패키지를 사용하여 GitLab을 설치합니다. Omnibus는 서버에서 GitLab을 실행하는 데 필요한 모든 패키지, 서비스 및 도구를 설치합니다.

curl 명령으로 GitLab 저장소를 추가합니다.

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

그런 다음 apt 명령으로 GitLab CE Community Edition을 설치합니다.

sudo apt install gitlab-ce

서버에서 gitlab 패키지를 다운로드하고 설치할 때까지 기다립니다. 설치가 완료되면 아래와 같은 결과를 볼 수 있습니다.

3단계 - Gitlab 기본 URL 구성

이제 GitLab 서버에 액세스하는 데 사용할 URL을 구성해야 합니다. 여기서는 GitLab URL에 도메인 이름 gitlab.hakase-labs.co를 사용하고(자신의 도메인 이름을 선택하세요) 사용자 액세스 보안을 위해 HTTPS를 사용하겠습니다.

GitLab의 기본 구성은 /etc/gitlab 디렉토리에 있습니다. 해당 디렉토리로 이동하여 vim으로 구성 파일 gitlab.rb를 편집합니다.

cd /etc/gitlab
vim gitlab.rb

GitLab 구성에서 9행 external_url로 이동하고 URL을 URL gitlab.hakase-labs.co로 변경합니다.

external_url 'http://gitlab.hakase-labs.co'

파일을 저장하고 편집기를 종료합니다. 다음 단계에서는 GitLab에 대해 HTTPS를 활성화합니다.

4단계 - SSL 생성 암호화 및 DHPARAM 인증서 허용

이 단계에서는 GitLab용 HTTPS 프로토콜을 활성화합니다. gitlab 도메인 이름에 대해 let encrypt에서 제공하는 무료 SSL 인증서를 사용하겠습니다.

apt 명령으로 letsencrypt 명령줄 도구를 설치합니다.

sudo apt install letsencrypt -y

설치가 완료되면 아래 명령을 사용하여 gitlab 도메인 이름에 대한 새 인증서를 생성합니다.

letsencrypt certonly -d gitlab.hakase-labs.co

SSL 인증서 갱신 알림을 받을 이메일 주소를 입력하세요.

Lets Encrypt 서비스 약관에 대해 동의를 선택하고 기다립니다.

완료되면 아래 결과가 표시됩니다.

새로운 GitLab용 Lets encrypt 인증서 파일이 생성되었습니다. /etc/letsencrypt/live 디렉토리에서 인증서 파일을 찾을 수 있습니다.

다음으로 GitLab 구성 디렉토리 아래에 ssl이라는 새 디렉토리를 만듭니다.

mkdir -p /etc/gitlab/ssl/

그리고 openssl 명령으로 ssl 디렉토리에 dhparam pem 파일을 생성합니다.

sudo openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048

이제 인증서 파일의 권한을 600으로 변경합니다.

chmod 600 /etc/gitlab/ssl/*

SSL Lets encrypt cert for GitLab 및 DHPARAM 인증서가 생성되었습니다.

5단계 - GitLab용 Nginx HTTPS 활성화

이 단계에서는 /etc/letsencrypt/live 디렉터리에 Letsencrypt의 인증서 파일이 있고 /etc/gitlab/ssl 디렉터리에 DHPARAM 인증서가 있습니다.

이 단계에서는 인증서 파일을 사용하도록 GitLab을 구성합니다. /etc/gitlab 디렉토리로 이동한 다음 vim으로 gitlab.rb 구성을 편집합니다.

cd /etc/gitlab/
vim gitlab.rb

http 대신 https를 사용하도록 외부 URL을 변경합니다.

external_url 'https://gitlab.hakase-labs.co'

그런 다음 아래와 같이 gitlab에 대한 새 SSL 구성을 추가합니다.

nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"

메모:

gitlab에서 HTTP에서 HTTPS로의 리디렉션을 활성화합니다.

파일을 저장하고 vim을 종료합니다.

이제 새 gitlab 구성을 적용하려면 아래 명령을 루트로 실행해야 합니다.

sudo gitlab-ctl reconfigure

아래와 같은 결과를 볼 수 있습니다.

GitLab에 대한 HTTPS 구성이 완료되었습니다.

6단계 - UFW 방화벽 구성

이 단계에서는 UFW 방화벽을 활성화합니다. 시스템에 이미 설치되어 있으므로 서비스를 시작하기만 하면 됩니다. UFW 방화벽 뒤에서 GitLab을 실행할 것이므로 HTTP 및 HTTPS 포트를 열어야 합니다.

아래 명령으로 UFW 방화벽을 활성화하십시오.

ufw enable

이 명령은 ufw 서비스를 실행하고 부팅 시 자동으로 시작하도록 추가합니다.

그런 다음 새 포트 ssh, HTTP 및 HTTPS를 엽니다.

ufw allow ssh
ufw allow http
ufw allow https

이제 방화벽 상태를 확인하고 ssh, http 및 https 포트가 목록에 있는지 확인하십시오.

ufw status

HTTP 및 HTTPS 포트가 구성됩니다.

7단계 - Gitlab 설치 후

GitLab이 시스템에 설치되었으며 UFW 방화벽 뒤에서 실행됩니다. 이 단계에서는 비밀번호, 사용자 이름 및 프로필 설정 변경과 같은 몇 가지 빠른 설정을 수행합니다.

웹 브라우저를 열고 gitlab URL을 입력하십시오. 제 URL은 gitlab.hakase-labs.co입니다. HTTPS 연결로 리디렉션됩니다.

GitLab 루트 비밀번호 재설정

이제 루트 사용자와 비밀번호로 GitLab에 로그인하십시오.

사용자 이름 및 프로필 변경

오른쪽 상단에서 프로필을 클릭하고 프로필 설정을 선택합니다.

프로필 탭에서 기본 이름을 이름으로, 이메일을 이메일 주소로 바꾸십시오. 이제 프로필 업데이트를 클릭합니다.

계정 탭을 클릭하고 자신의 사용자 이름으로 사용자 이름을 변경하십시오. 그런 다음 사용자 이름 업데이트를 클릭합니다.

SSH 키 추가

이미 키가 있는지 확인하십시오. SSH 키가 없는 경우 아래 명령을 사용하여 생성할 수 있습니다.

ssh-keygen

그리고 개인 키 id_rsa와 공개 키 id_rsa.pub라는 두 개의 키를 얻게 됩니다.

그런 다음 SSH 키 탭을 클릭하고 id_rsa.pub 파일의 내용을 복사하여 키 상자에 붙여넣고 키 추가를 클릭합니다.

새로운 SSH 키가 추가되었습니다.

가입 제한 및 한도 설정

관리 영역 아이콘을 클릭한 다음 톱니바퀴 아이콘을 클릭하고 설정을 선택합니다.

계정 및 제한 설정에서 사용자당 최대 프로젝트를 구성하고 가입 제한을 설정할 수 있으며 이메일의 도메인 이름을 화이트리스트 상자에 추가할 수 있습니다.

모든 것이 완료되면 하단으로 스크롤하여 저장을 클릭합니다.

기본 GitLab 구성이 완료되었습니다.

8단계 - 테스트

마지막으로 GitLab 시스템이 제대로 작동하는지 확인하기 위해 몇 가지 테스트를 수행합니다.

새 프로젝트 만들기

상단의 더하기 아이콘을 클릭하여 새 프로젝트 저장소를 생성합니다. 프로젝트 이름, 설명을 입력하고 프로젝트의 가시성 설정을 설정합니다. 그런 다음 프로젝트 만들기 버튼을 클릭합니다.

새 프로젝트가 생성되었습니다.

첫 번째 커밋 및 푸시 테스트

howtoforge 프로젝트가 생성되면 프로젝트 페이지로 리디렉션됩니다. 이제 저장소에 새 콘텐츠를 추가하기 시작합니다. Git이 컴퓨터에 설치되어 있는지 확인하고 아래 명령을 사용하여 git의 전역 사용자 이름과 이메일을 설정합니다.

git config --global user.name "hakase"
git config --global user.email ""

리포지토리를 복제하고 README.md 파일을 추가합니다.

git clone https:///hakase/howtoforge.git
cd howtoforge/
vim README.md

hakase 사용자 비밀번호를 묻는 메시지가 표시됩니다. 처음 GitLab에 접속했을 때 사용한 비밀번호를 입력해주세요.

새 파일을 howtoforge 저장소에 커밋합니다.

git add .
git commit -m 'Add README.md file by hakase-labs'

다음으로 변경 사항을 GitLab 서버의 리포지토리로 푸시합니다.

git push origin master

비밀번호를 입력하고 Enter를 눌러 계속하십시오. 결과는 아래와 같습니다.

이제 웹 브라우저에서 howtoforge 프로젝트를 열면 새 README.md 파일이 저장소에 추가된 것을 볼 수 있습니다.

Gitlab은 Ubuntu 16.04 Xenial Xerus 서버에 설치되었습니다.

기본 설정

  • https://docs.gitlab.com/ce/