프로젝트 설계: 역할 및 인벤토리
전체 배포 저장소의 구조를 구성합니다.
프로젝트 설계: 역할 및 인벤토리은(는) CoddyKit의 무료 Ansible Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Ansible Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Ansible Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
캡스톤 목표
롤링 배포와 다운타임 없는 운영을 적용한 실제 다중 계층 앱을 배포할 차례입니다. 첫 단계는 프로젝트 레이아웃을 설계하는 것입니다. 🚀
역할 단위로 생각하기
시스템을 역할로 나눕니다. common, web, app, db, loadbalancer처럼 각 관심사마다 하나씩 지정합니다. 각 역할은 재사용할 수 있고 독립적으로 테스트할 수 있습니다.
최상위 레이아웃
깔끔한 저장소는 루트에 인벤토리, group_vars, roles, site.yml 진입 플레이북을 두므로 누구나 필요한 항목을 빠르게 찾을 수 있습니다.
deploy/
site.yml
inventory/
group_vars/
host_vars/
roles/site.yml이 모든 것을 연결합니다
마스터 플레이북인 site.yml은 계층별 플레이를 순서대로 가져옵니다. 전체 스택을 배포하는 단일 명령입니다.
- import_playbook: plays/loadbalancer.yml
- import_playbook: plays/db.yml
- import_playbook: plays/app.yml
- import_playbook: plays/web.yml계층을 그룹에 연결하기
인벤토리는 각 계층에 하나씩 그룹을 정의합니다. lb, db, app, web이 그 예입니다. 각 플레이는 자신이 관리하는 호스트만 정확히 대상으로 삼습니다.
[lb]
lb1
[web]
web1
web2
[app]
app1
app2
[db]
db1계층별 group_vars
계층 설정은 group_vars에 저장합니다. 웹 포트, 앱 버전, 데이터베이스 자격 증명 등을 저장하면 호스트가 자동으로 상속하므로 복사하여 붙여 넣을 필요가 없습니다.
group_vars/web.yml:
nginx_port: 80
upstream: app:8080특수한 설정에는 host_vars 사용하기
특정 호스트만 다를 때는 재정의 설정을 host_vars에 넣습니다. 예를 들어 기본 데이터베이스에는 다른 호스트에 없는 복제 설정이 있을 수 있습니다.
host_vars/db1.yml:
postgresql_role: primary앱 버전 고정하기
릴리스 버전을 하드코딩된 문자열이 아니라 변수로 만듭니다. 한 곳만 변경하면 몇 초 만에 버전을 올리거나 이전 버전으로 되돌릴 수 있습니다.
group_vars/all.yml:
app_version: "2.4.1"환경 분리하기
환경별로 인벤토리 폴더를 분리하여 스테이징과 프로덕션이 호스트를 절대 공유하지 않도록 합니다. 역할은 같고 대상만 다릅니다.
inventory/
staging/hosts
production/hosts종속 항목 잠그기
외부 Galaxy 역할을 requirements.yml에 나열하면 모든 팀원과 CI 실행에서 정확히 동일한 자동화 코드를 설치할 수 있습니다.
roles:
- name: geerlingguy.nginx
version: 3.1.4먼저 아키텍처를 설계하면 이점이 있습니다
신중하게 구성한 레이아웃은 복잡해 보이는 배포를 예측 가능한 몇 개의 명령으로 바꿉니다. 지금 구조를 잡아 두면 나중에 긴급 장애 대응을 줄일 수 있습니다. 🧱
빠른 확인
구성 항목 하나를 올바른 위치에 배치해 보겠습니다.
복습
저장소를 설계했습니다. 계층별 역할, 인벤토리 그룹, group_vars와 host_vars, 그리고 전체 배포를 실행하는 site.yml을 구성했습니다. ✅
자주 묻는 질문
“프로젝트 설계: 역할 및 인벤토리” 강의는 무료인가요?
네 — “프로젝트 설계: 역할 및 인벤토리” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Ansible Academy 강의 전체를 잠금 해제할 수 있습니다. Ansible Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“프로젝트 설계: 역할 및 인벤토리”에서 뭘 배우나요?
전체 배포 저장소의 구조를 구성합니다. 브라우저에서 직접 실행하는 실습 코드로 Ansible Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Ansible Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Ansible Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“프로젝트 설계: 역할 및 인벤토리” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Ansible Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Ansible Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 프로젝트 설계: 역할 및 인벤토리
- 호스트 프로비저닝, 강화 및 초기 설정
- 로드 밸런서 뒤에서 롤링 배포하기
- 스모크 테스트, 롤백 및 알림