# GUARDiA ITSM — CI/CD 표준 가이드 > **버전**: 1.0.0 > **최종 수정**: 2026-05-25 > **대상 환경**: 온프레미스 Linux (RHEL 8/9, Rocky Linux 8/9, Ubuntu 20.04/22.04) --- ## 1. 개요 GUARDiA ITSM의 배포 파이프라인은 **Jenkins 기반 CI/CD**를 표준으로 사용한다. SR(서비스 요청)이 접수되면 GUARDiA Messenger 봇과 Claude CLI가 바이브 코딩을 수행하고, 완료 후 **Jenkins 파이프라인**이 자동으로 빌드 → 테스트 → 배포 → 결과 통보까지 처리한다. ``` SR 접수 │ ▼ GUARDiA Messenger → Claude CLI 바이브 코딩 (AI 어시스턴트) │ 코딩 완료 → !build ▼ Jenkins 파이프라인 트리거 (GUARDiA ITSM → Jenkins REST API) │ ├─ Stage 1: Checkout 소스 체크아웃 (Git) ├─ Stage 2: Build 컴파일 / 패키징 ├─ Stage 3: Test 단위 테스트 / SonarQube 분석 ├─ Stage 4: Archive 아티팩트 저장 ├─ Stage 5: Deploy SSH 전송 (배포 서버) ├─ Stage 6: WAS Restart WAS 재기동 ├─ Stage 7: Health Check 서비스 정상 확인 └─ Stage 8: ITSM Callback 결과 → GUARDiA ITSM 자동 등록 │ ▼ SR COMPLETED + 고객 이메일·메신저 자동 발송 ``` --- ## 2. 폴더 구조 ``` cicd/ ├── README.md ← 이 파일 (CI/CD 표준 개요) │ ├── docs/ ← 설치/운영 문서 │ ├── 01_jenkins_install.md Jenkins 설치 (RHEL/Rocky/Ubuntu) │ ├── 02_pipeline_standard.md 파이프라인 설계 표준 │ ├── 03_security_config.md 보안 설정 (Credentials, RBAC) │ └── 04_itsm_integration.md GUARDiA ITSM 연동 가이드 │ ├── jenkins/ ← Jenkinsfile 템플릿 │ ├── Jenkinsfile.java-maven Java Maven 프로젝트 표준 │ ├── Jenkinsfile.java-gradle Java Gradle 프로젝트 표준 │ ├── Jenkinsfile.nodejs Node.js 프로젝트 표준 │ ├── Jenkinsfile.deploy-only 배포 전용 (빌드 없음) │ └── Jenkinsfile.rollback 롤백 파이프라인 │ ├── scripts/ │ ├── install/ │ │ ├── jenkins_install.sh Jenkins 자동 설치 │ │ └── jenkins_plugins.sh 필수 플러그인 설치 │ ├── pipeline/ │ │ ├── build.sh 빌드 공통 스크립트 │ │ ├── test.sh 테스트 공통 스크립트 │ │ ├── deploy.sh 파일 배포 (rsync/SCP) │ │ ├── was_restart.sh WAS 재기동 (Tomcat/JBoss/JEUS) │ │ ├── health_check.sh 헬스체크 (HTTP/TCP) │ │ └── rollback.sh 롤백 스크립트 │ └── notify/ │ └── itsm_callback.sh ITSM 결과 콜백 │ └── config/ ├── jenkins.yaml JCasC (Jenkins as Code) 설정 └── sonarqube.properties SonarQube 연동 설정 ``` --- ## 3. 빠른 시작 ### 3-1. Jenkins 설치 ```bash # RHEL/Rocky Linux sudo bash cicd/scripts/install/jenkins_install.sh # 플러그인 자동 설치 sudo bash cicd/scripts/install/jenkins_plugins.sh ``` ### 3-2. JCasC 설정 적용 ```bash # Jenkins 재시작 후 JCasC 적용 cp cicd/config/jenkins.yaml /var/lib/jenkins/casc_configs/ sudo systemctl restart jenkins ``` ### 3-3. GUARDiA ITSM 연동 설정 ```bash # 환경변수 설정 (itsm/.env) JENKINS_URL=http://jenkins.agency.go.kr:8080 JENKINS_USER=itsm-bot JENKINS_TOKEN= JENKINS_CALLBACK_URL=http://itsm.agency.go.kr:8000/api/vibe/callback ``` ### 3-4. 파이프라인 등록 Jenkins 관리 콘솔 → New Item → Pipeline → SCM에서 Jenkinsfile 지정 또는 `cicd/config/jenkins.yaml` 로 자동 생성. --- ## 4. 브랜치 전략 (GitFlow) ``` main ─────────────────────────────── 운영 배포 ↑ merge develop ──────────────────────────────── 통합 개발 ↑ merge feature/* ────────────── 기능 개발 (SR 연결) hotfix/* ─── 긴급 패치 (SR 연결) release/* ──── 릴리즈 준비 ``` | 브랜치 | 파이프라인 | 배포 환경 | |--------|-----------|---------| | `feature/*` | Build + Test | 개발 | | `develop` | Build + Test + Deploy | 개발/스테이징 | | `release/*` | Full Pipeline + SonarQube | 스테이징 | | `main` | Full Pipeline + Approval Gate | 운영 | | `hotfix/*` | Full Pipeline (Fast Track) | 운영 | --- ## 5. 환경별 Jenkins 파이프라인 파라미터 | 파라미터 | 설명 | 기본값 | |---------|------|-------| | `ITSM_SESSION_ID` | GUARDiA 바이브 세션 ID | — | | `ITSM_SR_ID` | 연결된 SR ID | — | | `DEPLOY_ENV` | 배포 환경 (dev/stg/prd) | dev | | `TARGET_SERVER` | 배포 대상 서버명 | — | | `SKIP_TEST` | 테스트 건너뜀 (긴급 시) | false | | `ROLLBACK_VERSION` | 롤백 버전 (빌드 번호) | — | --- ## 6. 관련 문서 | 문서 | 경로 | |------|------| | Jenkins 설치 가이드 | [docs/01_jenkins_install.md](docs/01_jenkins_install.md) | | 파이프라인 설계 표준 | [docs/02_pipeline_standard.md](docs/02_pipeline_standard.md) | | 보안 설정 | [docs/03_security_config.md](docs/03_security_config.md) | | ITSM 연동 가이드 | [docs/04_itsm_integration.md](docs/04_itsm_integration.md) |