1 분 소요

Ansible을 처음 사용하기 위해 실습 가이드를 작성해봅니다. Rocky Linux 9 환경에서 VirtualBox + Vagrant를 사용합니다. 기본적인 Ansible 설치 방법과 사용 가이드를 살펴봅니다. 공식 문서(Getting Started – Ansible)의 흐름을 따릅니다.


1. Ansible 설치 (Rocky Linux 9 기준)

[1] EPEL(EPEL Release) 저장소 설치

sudo dnf install epel-release -y

[2] Ansible 설치

sudo dnf install ansible -y

[3] 설치 확인

ansible --version

2. 기본 구조 개념 (초보자용 요약)

구성 요소 설명
Inventory 어떤 서버에 명령을 실행할지 정의 (기본: /etc/ansible/hosts)
Playbook 자동화할 작업을 YAML 형식으로 정의한 스크립트
Module 실제 작업을 수행하는 단위 (ex. yum, copy, service)
Role Playbook을 모듈화해서 재사용 가능하게 만든 구조

3. Ansible 실습 환경 구성 (Vagrant + VirtualBox)

[1] Vagrantfile 작성 (제어노드 1대, 대상노드 2대)

Vagrant.configure("2") do |config|
  config.vm.box = "rockylinux/9"

  config.vm.define "ansible-controller" do |controller|
    controller.vm.hostname = "controller"
    controller.vm.network "private_network", ip: "192.168.56.10"
  end

  (1..2).each do |i|
    config.vm.define "node#{i}" do |node|
      node.vm.hostname = "node#{i}"
      node.vm.network "private_network", ip: "192.168.56.1#{i}"
    end
  end
end
vagrant up
vagrant ssh controller

4. Ansible 기본 사용 가이드

[1] 대상 노드 SSH 연결 설정

컨트롤러 노드에서 아래 명령어로 SSH 키 생성 후, 각 노드에 배포합니다.

ssh-keygen -t rsa
ssh-copy-id vagrant@192.168.56.11
ssh-copy-id vagrant@192.168.56.12

비밀번호는 기본적으로 vagrant입니다.

[2] Inventory 파일 작성

# ~/inventory/hosts 파일 작성
[webservers]
192.168.56.11

[dbservers]
192.168.56.12

[3] Ping 모듈로 테스트

ansible all -i ~/inventory/hosts -m ping

성공하면 각 서버에서 pong 응답이 돌아옵니다.


5. Playbook 예제 (기초)

예시: Apache 설치 및 서비스 시작

# install_apache.yml
- name: Install Apache webserver
  hosts: webservers
  become: true

  tasks:
  - name: Install httpd
    ansible.builtin.yum:
      name: httpd
      state: present

  - name: Start and enable httpd
    ansible.builtin.service:
      name: httpd
      state: started
      enabled: true

실행:

ansible-playbook -i ~/inventory/hosts install_apache.yml

6. 시나리오별 Ansible 추천 활용법

시나리오 사용 예 설명
✅ 서버 초기 세팅 자동화 사용자 추가, 패키지 설치, 방화벽 설정 반복작업을 자동화하여 실수 방지
✅ 웹 서버 배포 Apache/Nginx 설치, 설정 배포 설정이 바뀌어도 재적용이 간편
✅ DB 서버 구성 MySQL 설치 및 계정 설정 데이터베이스 초기 설정 반복 시 유용
✅ 백업 자동화 스크립트 복사, cron 설정 정기 작업을 코드로 관리 가능
✅ 테스트 서버 구축 테스트 환경 통합 배포 VM/컨테이너 테스트 환경 통합관리

7. 공식문서 참고

📘 공식 가이드 요약 링크

카테고리:

업데이트:

댓글남기기