
Ansible을 활용한 IaC 기반 서버 구성 자동화
두줄요약
Ansible의 Inventory·Playbook·Role로 서버 구성 작업을 코드화하는 방법을 설명했습니다. Terraform과 역할을 분리해 일관된 IaC 자동화 체계를 구성합니다.
문제 상황
- 다수 서버의 패키지 설치·설정 파일 배포·서비스 재시작을 수동 처리하며 발생하는 누락, 순서 오류, 환경 차이, 이력 부재
- 신규 서버 구성과 기존 서버 일괄 변경 시 반복 명령 수행으로 인한 작업 시간 및 일관성 저하
구조와 흐름
- Inventory의 서버 그룹과 YAML Playbook의 순차 Task 기반 구성 관리
- SSH 기반 agentless 통신, 전용 모듈을 통한 패키지·파일·서비스 제어
- 변수, 조건문, Handler, loop, tag, Template, Role을 활용한 환경별 분기와 재사용
선택 이유
- 현재 상태와 목표 상태 비교를 통한 멱등성 기반의 필요한 변경만 수행
- Terraform의 인프라 리소스 상태 관리와 Ansible의 서버 내부 구성 관리 역할 분리
성능/운영 포인트
- shell·command 사용 시 when과 changed_when을 통한 불필요한 실행 및 변경 표기 보완
- Docker 설치, FastAPI WAS 배포, Nginx Reverse Proxy 구성을 Role 단위로 분리
- 헬스 체크 실패 시 다음 단계를 중단하고, 운영 환경에서는 애플리케이션 이미지를 Registry에서 Pull하는 방식 고려





