Ansible Playbook에서 register와 debug 모듈 사용하는 방법
Ansible Playbook에서는 작업(Task)의 실행 결과를 변수에 저장하고 이후 작업에서 활용할 수 있다.
- register : 작업(Task)의 실행 결과를 변수에 저장
- debug : 변수의 값을 출력하여 확인
1. 기본 사용 방법
register
register 키워드는 특정 작업의 실행 결과를 변수에 저장한다.
register: result_variable
저장되는 주요 값 예시
- stdout : 명령 실행 결과 문자열
- stdout_lines : 결과를 줄 단위 리스트로 분리
- stderr : 오류 메시지
- rc : Return code
- changed : 작업 변경 여부
debug
debug 모듈은 변수 값을 출력할 때 사용한다.
debug:
var: result_variable
또는 특정 필드 출력
debug:
var: result_variable.stdout
2. Playbook 예제
Playbook 작성
vim example1.yml
---
- name: 예제 플레이북
hosts: all
gather_facts: true
tasks:
- name: 명령 실행 후 결과 저장
ansible.builtin.command: echo "Hello, World!"
register: command_result
- name: 명령 실행 결과 출력
ansible.builtin.debug:
var: command_result.stdout
- name: /tmp 디렉토리 목록 확인
ansible.builtin.command: ls /tmp
register: ls_result
- name: /tmp 디렉토리 목록 출력
ansible.builtin.debug:
var: ls_result.stdout_lines
- name: 현재 날짜 및 시간 확인
ansible.builtin.shell: date +%Y-%m-%dT%H:%M:%SZ
register: current_date_time
- name: 현재 날짜 및 시간 결과 출력
ansible.builtin.debug:
var: current_date_time
###
# ansible-playbook -i inventory/hosts.ini ansible_learn/example1.yml --limit localhost
3. Playbook 실행
실행 명령어
ansible-playbook -i inventory/hosts.ini ansible_learn/example1.yml --limit localhost
- -i : 인벤토리 파일 지정
- --limit : 특정 호스트만 실행

4. register 변수 구조 예시
current_date_time:
changed: true
cmd: "date +%Y-%m-%dT%H:%M:%SZ"
rc: 0
stdout: "2026-03-08T12:00:00Z"
stdout_lines:
- "2026-03-08T12:00:00Z"
- stdout : 명령 실행 결과
- stdout_lines : 결과를 리스트 형태로 분리
- rc : 명령 실행 결과 코드
- changed : 작업 상태
5. 실무 활용 예시
register는 다음과 같은 상황에서 자주 사용된다.
서비스 상태 확인
- name: nginx 상태 확인
command: systemctl is-active nginx
register: nginx_status
조건 실행
- name: nginx 재시작
service:
name: nginx
state: restarted
when: nginx_status.stdout != "active"
6. 실무 팁
전체 변수 구조 확인
- 처음에는 전체 변수를 출력해서 구조를 확인하는 것이 좋다.
debug:
var: result_variable
특정 값만 출력
- 필요한 값만 출력
debug:
var: result_variable.stdout
리스트 출력
debug:
var: result_variable.stdout_lines
참고URL
- Ansible Documentation : ansible.builtin.debug module
- Ansible Documentation : register variable
'리눅스' 카테고리의 다른 글
| [draft] 우분투 22.04에서 Apache를 소스 컴파일하여 설치하는 방법 (0) | 2026.03.08 |
|---|---|
| [draft] Docker 컨테이너 터미널 프롬프트(PS1) 색상을 변경하는 방법 (0) | 2026.03.08 |
| [draft] Ansible Playbook에서 block, rescue, loop, always를 사용하는 방법 (0) | 2026.03.08 |
| [draft] Ansible Playbook에서 loop와 when 조건문을 사용하는 방법 (0) | 2026.03.08 |
| [draft] MySQL 5.7 초기 비밀번호 변경 오류 해결 방법 (0) | 2026.03.07 |