1. Provisioning 이란?

Provisioning(프로비저닝)이란 "IT인프라(서버, 네트워크 스토리지 등)을 설치하고 설정하여 사용자가 쓸 수 있게 만드는 모든 과정"을 말합니다.
2. Ansibie의 역할
Ansible은 프로비저닝을 자동화하기 위한 도구입니다.

예를 들어 "A, B, C" 서버에 최신버전의 Nginx를 설치하라는 작업을 자동화 할 수 있습니다.
3. Ansibie 특징
- Agentless (에이전트리스):
- 대상 서버에 별도의 프로그램(Agent)을 설치할 필요가 없습니다. SSH만 열려 있으면 바로 작업이 가능합니다. 이 점이 관리 부담을 확 줄여줍니다.
- Idempotency (멱등성):
- 같은 코드를 한 번 실행하든 백 번 실행하든 결과가 항상 같습니다.
- 예: "Nginx를 설치해"라는 명령을 10번 내려도, 이미 설치되어 있다면 아무 작업도 하지 않고 "성공"으로 처리합니다. (시스템이 꼬이지 않음)
- IaC (Infrastructure as Code):
- 인프라 구성을 문서(코드)로 관리하므로 버전 관리(Git)가 가능하고, 누가 무엇을 언제 변경했는지 추적하기 쉽습니다
4. Ansible Workflow

Control Node: Ansible이 설치되어 있는 메인 노드, 여기서 작업을 지시합니다.
Manager Node: 작업대상 노드 입니다.
Inventory: 작업 대상 노드 지정합니다. IP 또는 도메인을 사용하며 목적에 따라 그룹화도 가능합니다.
Playbook: "어떤 작업을 할지" 적어놓은 작업 지시서(Yaml)입니다.
5. Ansible Playbook 예시
---
- name: 웹 서버 프로비저닝
hosts: webservers # 대상 그룹
become: yes # 관리자 권한(sudo) 사용
tasks:
- name: Nginx 설치
apt:
name: nginx
state: latest
update_cache: yes
- name: Nginx 서비스 시작
service:
name: nginx
state: started
6. 마무리
이번 학습을 통해 Ansible을 활용하면 수십, 수백 대의 서버 인프라 설정을 간단한 작업만으로 자동화할 수 있다는 것을 확인했습니다.
특히 HDFS, Spark, Kafka와 같이 복잡한 클러스터링이 필요한 데이터 엔지니어링 인프라를 자동으로 구축하고 유연하게 확장하는 데 큰 도움이 될 것 같습니다.
다음 포스팅에서는 오늘 배운 내용을 바탕으로 실제 데이터 엔지니어링 인프라를 직접 구축해보는 과정을 담아보겠습니다.
'DevOps' 카테고리의 다른 글
| Starrocks 클러스터 구축하기 with Ansible (1) | 2025.12.11 |
|---|---|
| 맥북에 리눅스 서버 5대 구성하기 - Ansible, Vagrant (0) | 2025.12.10 |
| Icinga2 Monitoring Basic (4) | 2022.12.21 |
| Icinga2란? (0) | 2022.12.21 |
| [Docker] docker-cmd (0) | 2019.12.27 |