본문으로 바로가기
반응형

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