Ansible Guide
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/컨테이너 테스트 환경 통합관리 |
댓글남기기