Skip to content

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에서 실질적 운영에 적합

필요하면 ansibleansible-playbook을 함께 쓰는 CI/CD 예제도 알려드릴게요!