Task 리스트로서의 서버 설정
Ansible playbook 이 YAML play 리스트, 각각 host 타깃하는 task 포함. Runtime 이 각 host 에 SSH 후 task 순서대로 idempotent 하게 실행 — 이미 설정된 host 에 playbook 재실행 시 변경 없는 task 엔 no-op.
다섯 핵심 섹션
hosts:— 어느 inventory 그룹 타깃.vars:— playbook 범위 변수 (또는vars/파일에서 include).tasks:— 순서 있는 액션. 각각이 module 호출 (apt:,copy:,systemd:) + 파라미터.handlers:— task 의notify:에서 fire. 여러 번 알림 받아도 play 끝에 한 번만 실행.roles:— task, var, file, template 의 재사용 묶음.
Inventory — host 파일
Inventory 는 YAML, INI, 또는 동적 (클라우드 API 플러그인). YAML inventory 가 host 그룹화 + 변수 할당.
원칙: Ansible 의 가치는 idempotency. 잘 작성된 task 는 '이 명령 실행' 이 아니라 '원하는 state 선언'.
shell: 또는 command: 로 fallback 전 전용 module (apt:, file:, systemd:) 잡아. 전용 module 이 '이미 됐음' 감지 후 skip 할 줄 앎.