Ansible을 사용해 웹 앱을 10분 안에 배포하는 방법

발행: (2025년 12월 3일 오전 01:47 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

Ansible란?

Ansible은 서버 구성에 사용되는 강력한 자동화 도구입니다. SSH를 통해 동작하고 에이전트가 필요 없으며, YAML 플레이북을 사용해 작업을 자동화합니다.

이 가이드에서 배울 내용

  • Ansible 설치 방법
  • 프로젝트 구조 설정 방법
  • SSH 키 추가 방법
  • SSH 연결 테스트 방법
  • 정적 콘텐츠 파일 생성 방법
  • 샘플 플레이북 작성 방법
  • 인벤토리 파일 구성 방법
  • 플레이북 실행 방법
  • 배포 확인 방법

Step 1 – Ubuntu에 Ansible 설치

sudo apt update
sudo apt install ansible -y
ansible --version

Step 2 – Ansible 프로젝트 구조 만들기

# 프로젝트 폴더 생성
mkdir ansible_demo
cd ansible_demo

# inventory와 playbooks 디렉터리 생성
mkdir inventory playbooks

Inventory 파일

cd inventory
touch hosts.ini

Playbook 파일

cd ../playbooks
touch web_prac.yml

Step 3 – 프로젝트에 SSH 키 추가

cd ..
mkdir ssh
cd ssh
touch nagios.pem

nagios.pem에 PEM 키 내용을 붙여넣고, 적절한 권한을 설정합니다:

chmod 600 nagios.pem

Step 4 – PEM으로 SSH 연결 테스트

ssh -i ssh/nagios.pem ubuntu@

정상적으로 로그인되면 연결이 정상적인 것입니다.

Step 5 – 정적 콘텐츠용 Files 폴더 만들기

cd ../playbooks
mkdir files
cd files
touch index.html

index.html 안에 HTML 콘텐츠를 추가합니다.

Step 6 – 샘플 플레이북 (web_prac.yml)

---
- name: Setup Web Server
  hosts: webserver
  become: yes

  tasks:
    - name: Install NGINX
      apt:
        name: nginx
        state: present
        update_cache: yes

    - name: Copy index.html to web server
      copy:
        src: files/index.html
        dest: /var/www/html/index.html
        owner: www-data
        group: www-data
        mode: '0644'

    - name: Start and enable NGINX
      service:
        name: nginx
        state: started
        enabled: yes

Step 7 – 인벤토리 파일 (hosts.ini)

[webserver]
13.201.29.244

ansible_user=ubuntu
ansible_ssh_private_key_file=../ssh/nagios.pem

Step 8 – Ansible 플레이북 실행

ansible_demo 디렉터리에서:

ansible-playbook -i inventory/hosts.ini playbooks/web_prac.yml

오류 없이 실행이 완료되면 배포가 성공한 것입니다.

Step 9 – 브라우저에서 확인

브라우저를 열고 다음 주소로 이동합니다:

http://

NGINX가 제공하는 index.html 내용이 표시되어야 합니다.

최종 결과

이 가이드를 마치면 다음을 수행할 수 있습니다:

  • Ansible 설치
  • 전문적인 프로젝트 구조 생성
  • 인벤토리 파일 생성
  • YAML 플레이북 작성
  • 인증을 위한 SSH 키 추가
  • Ansible을 이용한 웹 페이지 자동 배포
Back to Blog

관련 글

더 보기 »