반응형
playbook을 작성하고 debug를 사용할 때 var 그리고 stdout 그리고 stdout_lines에 따라서 보여주는 결과의 차이점을 정리하였습니다.
예제로 구성한 debug.yml 내용은 아래와 같습니다.
[stack@rhosp-zzero-director hkjeon]$ cat debug.yml
---
- name: debug test
hosts: dell
gather_facts: no
tasks:
- name: Check sysstat info
shell: sudo cat /etc/cron.d/sysstat
register: sysstat
- debug:
var: sysstat
- name: Check sysstat info
shell: sudo cat /etc/cron.d/sysstat
register: sysstat
- debug:
var: sysstat.stdout
- name: Check sysstat info
shell: sudo cat /etc/cron.d/sysstat
register: sysstat
- debug:
var: sysstat.stdout_lines
1. Test 결과 - 일반 debug를 이용할 경우 debug 안에 여러 정보를 포함하여 출력됩니다.
TASK [debug] ********************************************************************************
ok: [55.55.10.12] => {
"sysstat": {
"changed": true,
"cmd": "sudo cat /etc/cron.d/sysstat",
"delta": "0:00:00.018003",
"end": "2022-04-01 01:43:05.192357",
"failed": false,
"rc": 0,
"start": "2022-04-01 01:43:05.174354",
"stderr": "",
"stderr_lines": [],
"stdout": "# Run system activity accounting tool every 1 minutes\n* * * * * root /usr/lib64/sa/sa1 1 1\n# 0 * * * * root /usr/lib64/sa/sa1 600 6 &\n# Generate a daily summary of process accounting at 23:59\n59 23 * * * root sleep 10 && /usr/lib64/sa/sa2 -A",
"stdout_lines": [
"# Run system activity accounting tool every 1 minutes",
"* * * * * root /usr/lib64/sa/sa1 1 1",
"# 0 * * * * root /usr/lib64/sa/sa1 600 6 &",
"# Generate a daily summary of process accounting at 23:59",
"59 23 * * * root sleep 10 && /usr/lib64/sa/sa2 -A"
]
}
}
2. Test 결과 - stdout를 사용할 경우 debug에서 stdout 내용이 행형태로 나열되서 출력됩니다.
TASK [debug] ********************************************************************************
ok: [55.55.10.12] => {
"sysstat.stdout": "# Run system activity accounting tool every 1 minutes\n* * * * * root /usr/lib64/sa/sa1 1 1\n# 0 * * * * root /usr/lib64/sa/sa1 600 6 &\n# Generate a daily summary of process accounting at 23:59\n59 23 * * * root sleep 10 && /usr/lib64/sa/sa2 -A"
}
3. Test 결과 - stdout.lines를 사용할 경우 debug에서 stdout_lines의 내용이 열형태로 나열되어 출력됩니다.
TASK [debug] ********************************************************************************
ok: [55.55.10.12] => {
"sysstat.stdout_lines": [
"# Run system activity accounting tool every 1 minutes",
"* * * * * root /usr/lib64/sa/sa1 1 1",
"# 0 * * * * root /usr/lib64/sa/sa1 600 6 &",
"# Generate a daily summary of process accounting at 23:59",
"59 23 * * * root sleep 10 && /usr/lib64/sa/sa2 -A"
]
}
debug에 여러 정보를 확인할 필요가 없고, 확인하고 싶은 결과값만 확인할 경우 stdout_lines를 활용하는 것이 위 테스트 했던 1번과 2번보다 보기 편하고 여러 장비에 동시에 작업할 경우 위 2가지 방법보다 편리할 것 같은 생각이 듭니다.
상황에 따라서 필요로 하는 형태의 debug를 방법을 활용할 수 있습니다.
728x90
'IaC (Automation) > Ansible-Playbook' 카테고리의 다른 글
[Playbook] ansible system check playbook (0) | 2022.04.03 |
---|---|
[Ansible] ansible when (조건문) 샘플 (0) | 2022.04.02 |
[Playbook] include task를 활용한 playbook 샘플 (0) | 2022.03.31 |
[playbook] kvm에 vm 생성하는 playbook (0) | 2021.10.13 |
[playbook] kvm (virt-manager) 설치 playbook (0) | 2021.10.13 |