EC2에 GitLab 설치


1. GitLab 개요

1.1. AWS EC2 설치 시 제약사항

  • GitLab은 최소 2코어 4GB의 메모리 자원이 필요함
  • GitLab이 설치된 EC2는 AmazonEC2ContainerRegistryFullAccess, AmazonECS_FullAccess의 IAM 권한 필요함
    (ECS 배포시만 사용하는 권한, ECS배포하지 않으면 역할을 줄 필요 없음)

1.2. Omnibus install

  • 옴니버스 패키지로 설치를 진행할 경우, GitLab Package에 포함된 Chef 프로비저닝 툴에 의해 아래 S/W가 함께 설치됨. 옴니버스 패키지는 데일리 백업, 롤백 기능이 있어 편리한 인터페이스를 제공한다.

Omnibus Package

GitLab 기본 정보

2. GitLab 설치 가이드

2.1. Gitlab Download

curl https://packages.GitLab.com/install/repositories/GitLab/GitLab-ce/script.rpm.sh | sudo bash

2.1. GitLab-CE 설치

sudo yum install -y gitlab-ce.x86_64

2.2. 도메인 연결 설정

GitLab의 설정파일은 /etc/gitlab/gitlab.rb가 설정 파일이다.

아래 명령어로 설정 파일을 열어 external_url 부분을 찾아 수정한다.

# 설정 파일 열기
sudo vim /etc/gitlab/gitlab.rb

# 설정 파일 적용
sudo gitlab-ctl reconfigure

2.3. SMTP 서버 설정

GitLab과 이메일을 연동하기 위해서 SMTP 서버 설정을 한다.

제공되는 서버 기준으로 작성하면 되며 본 가이드에서는 구글 SMTP 기준이다.

# 설정 파일 열기
sudo vim /etc/gitlab/gitlab.rb

# 

3. GitLab-Runner 설치 가이드

3.1. Runner 기본 정보

GitLab-Runner가 설치되는 위치 및 기본 명령어는 아래와 같다.

GitLab Runner 기본 정보

3.2. Runner 설치 가이드

3.2.1. 도커 설치

GitLab-Runner는 도커 기반하에 기동되므로 도커가 필수이다.

sudo yum update -y;
sudo yum install -y docker;
sudo yum service docker start;
sudo usermod -aG docker ec2-user;
sudo service docker restart;

3.2.2. Runner 설치

GitLab으로 빌드하기 위해서는 Go언어로 작성된 GitLab Runner를 설치해야 한다. .Net, java, Python, C 및 기타 프로그래밍 언어를 테스트 할 수 있으며, GitLab-Runner에는 오토 스케일, Docker 지원 및 병렬 작업 등 많은 기능을 제공한다.

# repository update
curl -L https://packages.GitLab.com/install/repositories/runner/GitLab-runner/script.rpm.sh | sudo bash;

# install runner
sudo yum install -y gitlab-runner

3.2.3. Runner 기본 설정

웹브라우저에서 GitLab 페이지 > Admin Area > Runners 메뉴를 선택한다.

같은 서버에 Runner가 설치되어 있으므로 IP를 localhost로 변경하고 아래 쉘 명령을 통해 Runner를 등록한다.

sudo gitlab-ci-multi-runner register -n \
--url http://localhost \
--registration-token K-usWea-k9TVNsVAfCeN \
--executor docker \
--description "docker runner:shared-socket" \
--docker-image "docker:latest" \
--docker-volumes /var/run/docker.sock:/var/run/docker.sock

- registration-token은 연결할 gitlab-runner에 인증을 위한 해쉬값이다. gitlab에 접속해 Settings -> CICD -> Runner 메뉴에석 확인 가능하다.

3.2.4. Runner 상세 설정

필요시 생성된 Runner의 /etc/gitlab-runner/config.toml 파일을 수정한다.

상세 설정의 의미는 아래와 같다.

Runner 상세 설정

위 설정 적용 후 Runner 재시작

sudo gitlab-ci-multi-runner restart

+ Recent posts