콘텐츠로 이동

GitLab Platform Short Runbook

이 문서를 볼 때

  • OS 준비 완료 후 GitLab을 설치/구성할 때
  • GitLab 권한, 그룹, 프로젝트, Runner, CI/CD 표준을 적용할 때
  • GitLab 기반 release storage와 ops server polling deploy를 구성할 때

먼저 필요한 입력값

  • GitLab FQDN
  • 구조: 단일 서버, reverse proxy 분리, HA
  • GitLab Web HTTPS 처리 위치
  • Git SSH 포트
  • 데이터 저장 경로와 mount 방식
  • 백업 경로
  • SMTP 사용 여부
  • 관리자 계정 정책
  • 가입/도메인/토큰/runner 정책
  • Release Storage 사용 여부
  • Ops Server 배포 대상 서비스명

설치/구성 작업 순서

  1. 사전 준비 및 시스템 요구사항 확인
  2. 스토리지 경로와 bind mount 준비
  3. 네트워크 정책 결정
  4. GitLab 설치
  5. gitlab.rb 설정
  6. SELinux/firewall 설정
  7. Nginx reverse proxy 설정
  8. 초기 관리자와 보안 정책 적용
  9. 백업과 secrets 관리 기준 확인
  10. Web, Git SSH, 자체 점검 검증

운영 정책 작업 순서

  1. 그룹/프로젝트 구조 결정
  2. Role/permission 정책 적용
  3. 접근 제어 정책 적용
  4. 브랜치 전략과 deploy policy 적용
  5. Runner 구성
  6. CI/CD 표준 적용
  7. release metadata spec 확인

Ops Server 작업 순서

  1. AIStor/Release Storage 설치
  2. 프로젝트별 bucket, IAM, access key 정책 적용
  3. .ops/cd bootstrap source 준비
  4. 운영 서버 bootstrap 실행
  5. poll-release timer/service 구성
  6. 수동 poll-release 검증
  7. rollback 절차 확인

중단 조건

  • GitLab FQDN과 DNS가 미정
  • SSL 종료 위치가 미정
  • Git SSH 포트와 OS SSH 포트 분리가 미정
  • GitLab 데이터 저장 경로와 mount 설계가 미정
  • gitlab-secrets.json 백업 위치가 없음
  • Runner token 또는 MinIO access key를 repository에 저장하려 함
  • .release-storage.env 같은 runtime credential을 Git 추적 상태로 유지하려 함

검증 명령

gitlab-ctl status
gitlab-rake gitlab:check
curl -I https://gitlab.example.com
ssh -T git@gitlab.example.com -p <git-ssh-port>
firewall-cmd --list-all
ss -lntup | grep -E ':(80|443|22|2222)\b'
systemctl list-timers | grep release-poll
journalctl -u release-poll.<service>.service -n 100 --no-pager

상세 문서

Core:

Policy and Project:

CI/CD and Ops:

Local examples and assets:

  • ../docs/07-gitlab/projects/
  • ../docs/07-gitlab/gitlab-ssh.xml
  • ../docs/07-gitlab/gitlab-web-service.xml
  • ../docs/07-gitlab/99-gitlab-group-permission-automation