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 출력의 컬럼 순서가 달라지는 문제가 있었습니다. 컬럼 인덱스를 하드코딩하는 대신, 실행 시 헤더를 파싱해 인덱스를 동적으로 추출하는 방식으로 변경하여 에러를 방지했습니다.