Ansible은 반복적인 셸 작업을 관리 대상 호스트의 원하는 상태를 나타내는 읽기 쉬운 선언으로 바꿉니다. 이 실습 과정에서는 SSH 접근과 인벤토리에서 시작해 플레이북, Jinja2 템플릿, 재사용 가능한 역할까지 워크플로를 구축합니다.
외부 인프라가 아닌 Ansible 구조에 집중할 수 있도록 localhost를 대상으로 관리합니다. 안내 실습에서는 Nginx 설치·시작, 호스트 정보가 반영된 페이지 렌더링, 설치 작업의 역할화를 수행하고 마지막 챌린지에서는 같은 호스트에 Apache, 템플릿, MariaDB 역할을 결합합니다.
학습 내용
- Ansible을 설치하고 제어 노드 도구 확인하기
- 관리 대상 호스트에 키 기반 SSH 접근 구성하기
- INI 인벤토리를 만들고 호스트를 그룹화한 뒤 Ansible ping 모듈로 시험하기
- 권한 상승, 패키지, 서비스 작업을 포함한 YAML 플레이북 작성·실행하기
- 사용자 변수를 정의하고 Ansible이 제공하는 인벤토리 변수 사용하기
- 지정한 파일 모드로 Jinja2 템플릿을 보호된 경로에 렌더링하기
- Ansible 역할을 초기화하고 작업을 정의하며 구문 검사 후 호출하기
- 웹 서버 작업, 홈페이지 템플릿, 데이터베이스 역할을 하나의 play에 결합하기
추천 대상
이 중급 과정은 수동 서버 명령에서 구조화된 Ansible 자동화로 전환하려는 Linux 사용자, 초급 시스템 관리자, DevOps 학습자를 위한 과정입니다.
선수 지식: Linux 셸, SSH 개념, sudo, 패키지와 서비스 관리, 기본 YAML 들여쓰기, 간단한 HTML에 익숙해야 합니다. Ansible 경험은 필요하지 않습니다.
학습 환경: Ansible과 관리자 접근 권한이 제공되는 Debian 계열 Linux 터미널입니다. 제어 노드와 관리 대상 호스트는 같은 localhost이며 실습에 따라 SSH 또는 로컬 연결을 사용합니다.
자주 묻는 질문
여러 원격 서버를 자동화하나요?
아닙니다. 인벤토리 그룹과 관리 대상 호스트 모델을 배우지만 모든 연습은 localhost라는 단일 실습 머신을 대상으로 합니다. 다중 호스트 토폴로지, 클라우드 인벤토리, 대규모 오케스트레이션은 다루지 않습니다.
마지막 ‘풀스택’ 챌린지에서는 무엇을 배포하나요?
같은 호스트에 Apache를 설치·시작하고 Jinja2 홈페이지를 배포하며 역할로 MariaDB를 설치·시작합니다. 애플리케이션 코드, 데이터베이스 스키마, 앱과 DB 연결은 배포하지 않습니다.
운영 환경용 Ansible 아키텍처까지 다루나요?
핵심 구성 요소와 표준 역할 구조를 소개합니다. Vault, 핸들러, 컬렉션, 동적 인벤토리, 테스트, CI, 복잡한 변수 우선순위는 범위 밖입니다.





