Back
⚙️
SKB 인프라 자동화 고도화
Overview
- 기간
- 2024.10 – 2024.12
- 팀원
- 1명
- 역할
- 코드 리팩토링
- 주최처 / 발주처
- SK브로드밴드
- 활용 기술
- AnsiblePythonLinuxShell Script
- 프로젝트 설명
- SK브로드밴드 인프라 자동화 프로젝트의 Linux 서버 점검 Ansible 코드를 리팩토링한 프로젝트입니다. 기존 코드는 점검 그룹/점검 유형 조합마다 파일을 별도로 생성하는 구조로, 파일이 개수가 늘어나 legacy 함이 남아있었습니다. 플레이북 단일화, vars 파일 외부화, 그룹 기반 동적 실행으로 로직을 재설계하여 파일 수를 줄이고, 신규 점검 그룹 추가 시 vars 파일만 수정하면 되는 구조로 개선했습니다.
Architecture Decisions
- 1
그룹 기반 동적 점검 분기
플레이북이 실행 시 DB에서 호스트의 인벤토리 정보를 조회하고, vars 파일에 선언된 그룹 정의에 따라 점검을 동적으로 실행합니다. 새 점검 항목 추가 시 플레이북 코드를 수정하지 않고 vars 파일만 수정하면 되도록 설계했습니다.
- 2
점검 명령어 vars 파일 외부화
그룹별 점검 명령어를 YAML vars 파일에 관리하도록 구현해, 리팩토링 후 담당자가 플레이북 구조를 몰라도 vars 파일만으로 점검 항목을 추가 및 수정할 수 있도록 변경했습니다.
Troubleshooting
- 1
API 점검 결과가 UI에서 렌더링될 때 화면이 심각하게 느려지는 현상 발생
일부 API 응답이 수십만 자 이상의 대용량 payload를 반환하면서 DB 저장 및 UI 출력 시 부하가 발생했습니다. 커스텀 Jinja2 필터 플러그인을 작성해 점검 결과를 100만 자 이하로 잘라 저장하도록 처리하여 해결했습니다.
- 2
sar 컬럼 인덱스 추출 방식 변경
sysstat 버전에 따라 sar 출력의 컬럼 순서가 달라지는 문제가 있었습니다. 컬럼 인덱스를 하드코딩하는 대신, 실행 시 헤더를 파싱해 인덱스를 동적으로 추출하는 방식으로 변경하여 에러를 방지했습니다.