1. 시스템 준비하기
먼저 Ubuntu 서버를 최신 상태로, 업데이트 및 업그레이드합니다.
sudo apt update
sudo apt upgrade -y
이 과정은 시스템에 최신 패키지와 보안 업데이트를 적용합니다.
2. GitLab 설치하기
GitLab을 설치하기 위해 공식 저장소를 추가한 후 패키지를 설치합니다.
# GitLab 저장소 추가
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
# GitLab 설치 (도메인을 실제 사용하실 URL로 변경하세요)
sudo EXTERNAL_URL="http://gitlab.example.com" apt-get install gitlab-ce
EXTERNAL_URL에는 실제로 사용할 도메인이나 IP 주소를 입력하세요. 이는 사용자가 GitLab에 접속할 때 사용할 URL입니다.
도메인 사용: http://gitlab.yourdomain.com
IP 주소 사용: http://192.168.1.100
로컬 테스트: http://localhost
3. GitLab 기본 설정하기
GitLab의 설정 파일을 편집하여 필요한 설정을 조정합니다.
sudo vim /etc/gitlab/gitlab.rb
# 기본 URL 설정 (이미 설치 시 설정했다면 확인만 하세요)
external_url 'http://gitlab.example.com'
# 이메일 설정 (선택 사항)
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "your-email@gmail.com"
gitlab_rails['smtp_password'] = "your-password"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = 'your-email@gmail.com'
# 백업 설정 (선택 사항)
gitlab_rails['backup_keep_time'] = 604800 # 백업 보관 기간 (7일)
# 서버 리소스에 따른 최적화 (선택 사항)
unicorn['worker_processes'] = 2 # 작은 서버의 경우
설정을 변경한 후에는 GitLab을 재구성해야 합니다.
sudo gitlab-ctl reconfigure
4. GitLab Runner 설치하기
GitLab Runner는 CI/CD 작업을 실행하는 에이전트입니다. 다음과 같이 설치합니다.
# GitLab Runner 저장소 추가
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
# GitLab Runner 설치
sudo apt-get install gitlab-runner
# Runner 상태 확인
sudo gitlab-runner status
5. GitLab Runner 등록하기
Runner를 GitLab 서버에 등록해야 CI/CD 작업을 수행할 수 있습니다.
sudo gitlab-runner register
등록 과정에서 다음 정보를 입력해야 합니다.
- GitLab URL: GitLab 서버 URL (예: http://gitlab.example.com/)
- Registration token: GitLab 웹 인터페이스의 Settings > CI/CD > Runners 섹션에서 확인 가능
- Runner 설명: 식별을 위한 설명 (예: "Ubuntu Server Runner")
- Runner 태그: 선택적 태그 (예: "ubuntu,docker")
- Executor: 작업 실행 방식 (예: shell, docker, kubernetes 등)
Shell executor를 선택하면 가장 간단하게 시작할 수 있으며, Docker executor는 격리된 환경에서 작업을 실행하고 싶을 때 유용합니다.
6. CI/CD 파이프라인 구성하기
프로젝트에 .gitlab-ci.yml 파일을 생성하여 CI/CD 파이프라인을 정의합니다. 프로젝트 루트 디렉토리에 다음과 같은 파일을 생성하세요.
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "빌드 단계 실행 중..."
# 빌드 명령어 추가
artifacts:
paths:
- build/
test_job:
stage: test
script:
- echo "테스트 단계 실행 중..."
# 테스트 명령어 추가
dependencies:
- build_job
deploy_job:
stage: deploy
script:
- echo "배포 단계 실행 중..."
# 배포 명령어 추가
only:
- main # main 브랜치에 푸시될 때만 실행
dependencies:
- build_job
7. 파이프라인 실행 및 확인하기
코드를 GitLab 저장소에 푸시하면 CI/CD 파이프라인이 자동으로 실행됩니다. GitLab 웹 인터페이스의 CI/CD > Pipelines 섹션에서 실행 상태를 확인할 수 있습니다.
8. 고급 설정 (선택 사항)
프로젝트 규모나 요구사항에 따라 다음과 같은 고급 설정을 고려할 수 있습니다.
1) 캐시 설정
빌드 간 의존성 파일을 캐싱하여 시간을 절약할 수 있습니다.
cache:
paths:
- node_modules/
- .npm/
2) 환경 변수 설정
민감한 정보는 환경 변수로 설정하는 것이 좋습니다. GitLab 웹 인터페이스의 Settings > CI/CD > Variables 섹션에서 설정 가능합니다.
3) 다중 환경 배포
스테이징, 프로덕션 등 여러 환경에 배포하려면..
deploy_staging:
stage: deploy
script:
- echo "스테이징 환경에 배포 중..."
only:
- develop
environment:
name: staging
deploy_production:
stage: deploy
script:
- echo "프로덕션 환경에 배포 중..."
only:
- main
environment:
name: production
when: manual # 수동 승인 후 배포
소스트리(Sourcetree) 깃랩(GitLab) 연동을 위한 토큰 발급 방 (0) | 2023.10.06 |
---|
댓글 영역