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가 함께 설치됨. 옴니버스 패키지는 데일리 백업, 롤백 기능이 있어 편리한 인터페이스를 제공한다.
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가 설치되는 위치 및 기본 명령어는 아래와 같다.
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 재시작
sudo gitlab-ci-multi-runner restart