ansible-commands
좋습니다. Ansible에는 크게 두 가지 명령어 툴이 있습니다:
ansible
: 단일 명령어(ad-hoc command) 실행용ansible-playbook
: 플레이북(.yml) 파일을 실행하는 용도
✅ 1. ansible
명령어⚑
"지금 이 순간, 특정 명령어를 여러 서버에 한 번에 실행" → SSH 접속 + 명령 실행
📌 기본 구조⚑
ansible <host-pattern> -i <inventory> -m <module> -a "<args>"
📋 예시⚑
ansible all -i inventories/production/hosts.yml -m ping
옵션 | 의미 |
---|---|
all | 인벤토리의 모든 호스트 |
-i | 인벤토리 파일 지정 |
-m ping | ping 모듈 사용 (Python 있는지만 확인) |
-a | 모듈에 전달할 인자 |
🧪 자주 쓰는 모듈⚑
모듈 | 설명 |
---|---|
ping | 연결 확인 (Python 설치 확인용) |
command | 명령어 실행 (쉘 X) |
shell | 셸 명령어 실행 |
copy | 파일 복사 |
apt , yum | 패키지 설치 |
file | 파일/디렉토리 존재 여부, 권한 설정 |
setup | 시스템 정보 출력 (facts 수집) |
✅ 2. ansible-playbook
명령어⚑
미리 작성한 여러 작업(task) 을 순차적으로 실행 →
.yml
파일로 선언된 절차적 구성
📌 기본 구조⚑
ansible-playbook -i <inventory> <playbook.yml> [--limit <hosts>] [--tags <tagname>] [--check]
📋 예시⚑
ansible-playbook -i inventories/production/hosts.yml playbooks/site.yml
옵션 | 의미 |
---|---|
-i | 인벤토리 파일 |
--limit | 특정 호스트/그룹만 실행 |
--tags | 태그 지정된 태스크만 실행 |
--check | 변경사항 없이 실행 (dry-run) |
🎯 언제 어떤 걸 써야 할까?⚑
상황 | 사용 도구 |
---|---|
"서버에 uptime 한 번 찍어보자" | ansible |
"모든 웹 서버에 nginx 설치하고, 설정 바꿔야 함" | ansible-playbook |
"디버깅용 1회성 명령 실행" | ansible |
"재사용 가능한 인프라 배포 관리" | ansible-playbook |
🧠 팁⚑
ansible
은 간단한 테스트/디버깅에 적합ansible-playbook
은 팀 단위 운영, GitOps, CI/CD에서 실질적 운영에 적합
필요하면 ansible
과 ansible-playbook
을 함께 쓰는 CI/CD 예제도 알려드릴게요!