Overview
사내 56대와 사외 IDC 센터 22대, 총 78대의 서버가 운영되고 있었다. 기존에는 구글 폼으로 서버 정보를 관리했지만 2025년 이후 갱신된 항목과 갱신되지 않은 항목이 섞여 있어 최신 여부를 신뢰하기 어려웠다. 회사 총무의 요청으로 전체 서버의 IP·OS·CPU 모델·CPU 수·메모리·디스크 용량과 관리 팀·관리자 정보를 다시 수집해야 했는데, 78대를 일일이 접속해 수기로 기록하는 방식은 시간이 많이 들고 누락·오타 위험이 컸다. 이에 1회성 수작업 대신 인벤토리만 갱신하면 반복 실행할 수 있는 서버 스펙 수집 자동화를 단독으로 구축했다. Ansible로 78대의 인벤토리와 수집 플레이북을 직접 구성해 사양을 일괄 수집하고, 결과를 엑셀로 정형화했으며, Ansible을 모르는 사람도 셸 스크립트 한 번 실행으로 산출물을 받을 수 있도록 패키징해 사용성을 높였다.
아키텍처
Ansible 선택: 모든 서버의 상태를 알 수 없어 패키지를 함부로 설치하기 어려웠기에, 에이전트 설치 없이 SSH 연결만으로 사양을 수집하는 RedHat의 에이전트리스 도구 Ansible을 선택했다. 도입·유지보수 비용이 적고, 인벤토리에 서버만 등록하면 동일 플레이북을 반복 실행할 수 있어 1회성으로 끝나지 않는다.
CPU 수 표기 통일: 'CPU 수'가 소켓/코어/vCPU 중 무엇인지에 따라 값이 달라지고 nproc은 논리 CPU 수를 반환하므로, lscpu의 Socket(s)를 물리 CPU, CPU(s)를 논리 CPU로 구분해 소켓·코어·vCPU를 함께 표기하는 형식으로 통일했다(예: i5-10400 (6C/12T) × 1 → 12 vCPU).
비전문가도 쓰도록 패키징: ansible-playbook 실행과 산출물 변환을 셸 스크립트로 감싸, 사용자는 스크립트 하나만 실행하면 Excel 결과물을 받도록 구성해 자동화 효과가 특정 담당자에 묶이지 않게 했다.
관리 팀·관리자처럼 명령어로 수집되지 않는 조직 정보는 인벤토리에 메타데이터로 정의해, 수집한 사양 값과 하나의 스펙 시트로 합쳐지도록 했다.

