프로젝트 배경
1) 목적
Jira 활성화
Jira에 실제 업무에 사용되는 편리한 기능을 붙여서 타팀에서도 Jira 이용을 유도한다.
업무 자동화
개별로 직접 현장 서버에 들어가서 수행해야되는 작업들을 Jira를 통해 원격으로 수행 하도록함
작업툴 일원화
현재 도구들을 이용해서 작업들이 파편화 되어있는데 JIRA를 통해서 일원화한다.
Jira 활성화
Jira에 실제 업무에 사용되는 편리한 기능을 붙여서 타팀에서도 Jira 이용을 유도한다.
업무 자동화
개별로 직접 현장 서버에 들어가서 수행해야되는 작업들을 Jira를 통해 원격으로 수행 하도록함
작업툴 일원화
현재 도구들을 이용해서 작업들이 파편화 되어있는데 JIRA를 통해서 일원화한다.
프로젝트 성과
원클릭 업무 자동화
약 천개 현장 업데이트 원클릭 자동화 ( 기존 5명 1주일 소요 )
예약 기능을 통해서 스케쥴 관리 가능
스크립트 수행 가능구조로 확장성 있게 활용 가능
예약 기능을 통해서 스케쥴 관리 가능
스크립트 수행 가능구조로 확장성 있게 활용 가능
핵심 기능
jira automation 룰셋
jira automation 룰셋으로 이슈 템플릿화
API 서버
python flask 기반으로 API 서버 개발
작업 스케쥴 기능
APScheduler + SQLAlchemyJobStore 통해서 스케쥴 기능 구현
프로젝트 상세
1) 아키텍처 개요
• JIRA Cloud Automation: 이슈/필드 변경 시 Webhook 호출
• flaskAPI Gateway (AWS EC2): 인증/검증 후 작업 큐/스케줄 등록, 현장 정보 조회, 원격 실행 지휘
• Python 스크립트 런너: Paramiko/SSH 등으로 원격 스크립트 실행, 결과 수집·검증
• 현장 단지 서버 & DB: 동/호 등 현장 메타데이터 조회
• HT 통합인증서버 MySQL: 테스트 계정 Insert/Update/Delete, 상태 기록
• Jenkins + Docker(선택): 배포/롤백 파이프라인
• APScheduler/Celery(선택): 예약 스케줄·재시도·백오프
2) End-to-End 플로우
1. JIRA 이슈 필드 변경 → Webhook 호출
2. flask: 요청 검증(토큰/시그니처) 및 작업 타입 판별(bulk_update/schedule/test_account)
3. 필요 시 현장 DB 조회(동/호/설정값) → 작업 파라미터 구성
4. Python 스크립트 원격 실행(SSH/Paramiko) 또는 내부 실행 → 결과 수집
5. MySQL에 테스트 계정/설정 Insert/Update/Delete 및 작업 로그 기록
6. JIRA 코멘트/필드로 결과 콜백(성공/부분성공/실패, 영향 수, 다음 액션)
7. 예약 작업은 APScheduler/Celery/cron으로 등록·모니터링(재시도/백오프 포함)
3) 대표 기능
• 수백 개 현장 일괄 업데이트: 현장 메타 기반 템플릿 적용, 안전 배치(배치 크기·지연·재시도)
• 예약 스케줄: 특정 일시/주기 실행(업무시간/예외일 고려), 실패 시 재시도/알림
• 테스트 계정 일괄 생성/삭제: 중앙 MySQL과 현장 시스템 동기화, 규칙 기반 네이밍·권한·만료일 관리
• 스크립트 원격 수행: SSH 안전 실행(드라이런, 타임아웃, 표준출력/에러 수집), 롤백 훅 제공
• JIRA Cloud Automation: 이슈/필드 변경 시 Webhook 호출
• flaskAPI Gateway (AWS EC2): 인증/검증 후 작업 큐/스케줄 등록, 현장 정보 조회, 원격 실행 지휘
• Python 스크립트 런너: Paramiko/SSH 등으로 원격 스크립트 실행, 결과 수집·검증
• 현장 단지 서버 & DB: 동/호 등 현장 메타데이터 조회
• HT 통합인증서버 MySQL: 테스트 계정 Insert/Update/Delete, 상태 기록
• Jenkins + Docker(선택): 배포/롤백 파이프라인
• APScheduler/Celery(선택): 예약 스케줄·재시도·백오프
2) End-to-End 플로우
1. JIRA 이슈 필드 변경 → Webhook 호출
2. flask: 요청 검증(토큰/시그니처) 및 작업 타입 판별(bulk_update/schedule/test_account)
3. 필요 시 현장 DB 조회(동/호/설정값) → 작업 파라미터 구성
4. Python 스크립트 원격 실행(SSH/Paramiko) 또는 내부 실행 → 결과 수집
5. MySQL에 테스트 계정/설정 Insert/Update/Delete 및 작업 로그 기록
6. JIRA 코멘트/필드로 결과 콜백(성공/부분성공/실패, 영향 수, 다음 액션)
7. 예약 작업은 APScheduler/Celery/cron으로 등록·모니터링(재시도/백오프 포함)
3) 대표 기능
• 수백 개 현장 일괄 업데이트: 현장 메타 기반 템플릿 적용, 안전 배치(배치 크기·지연·재시도)
• 예약 스케줄: 특정 일시/주기 실행(업무시간/예외일 고려), 실패 시 재시도/알림
• 테스트 계정 일괄 생성/삭제: 중앙 MySQL과 현장 시스템 동기화, 규칙 기반 네이밍·권한·만료일 관리
• 스크립트 원격 수행: SSH 안전 실행(드라이런, 타임아웃, 표준출력/에러 수집), 롤백 훅 제공
