Ansible-문제 해결

Ansible 플레이 북을 디버깅하는 가장 일반적인 전략은 아래에 주어진 모듈을 사용하는 것입니다.

디버그 및 등록

이 두 가지는 Ansible에서 사용할 수있는 모듈입니다. 디버깅 목적으로 두 모듈을 신중하게 사용해야합니다. 아래에 예가 나와 있습니다.

Verbosity 사용

Ansible 명령을 사용하면 자세한 수준을 제공 할 수 있습니다. 상세 수준 1 (-v) 또는 2 (-vv)로 명령을 실행할 수 있습니다.

중요 사항

이 섹션에서는 몇 가지 개념을 이해하기 위해 몇 가지 예를 살펴 보겠습니다.

변수로 시작하는 인수를 인용하지 않는 경우. 예를 들면

vars: 
   age_path: {{vivek.name}}/demo/ 
   
{{vivek.name}}

그러면 오류가 발생합니다.

해결책

vars: 
   age_path: "{{vivek.name}}/demo/" – marked in yellow is the fix. 
 
How to use register -> Copy this code into a yml file say test.yml and run it  
--- 
#Tsting 
- hosts: tomcat-node 
   tasks: 
 
   - shell: /usr/bin/uptime 
      register: myvar 
      - name: Just debugging usage 
         debug: var = myvar

Ansible-playbook -i hosts test.yml 명령을 통해이 코드를 실행하면 아래와 같은 출력이 표시됩니다.

yaml이 보이면 명령의 출력을 변수에 등록한 것입니다. myvar 출력을 인쇄했습니다.

노란색으로 표시된 텍스트는 추가 흐름 제어에 사용할 수있는 변수 –myvar의 속성에 대해 알려줍니다. 이렇게하면 특정 변수에 노출 된 속성에 대해 알 수 있습니다. 다음 디버그 명령이 도움이됩니다.

$ ansible-playbook -i hosts test.yml 

PLAY [tomcat-node] ***************************************************************
**************** ****************************************************************
*************** ****************************** 
 
TASK [Gathering Facts] *****************************************************************
************** *****************************************************************
************** ************************** 
Monday 05 February 2018  17:33:14 +0530 (0:00:00.051) 0:00:00.051 ******* 
ok: [server1] 
 
TASK [command] ******************************************************************
************* ******************************************************************
************* ********************************** 
Monday 05 February 2018  17:33:16 +0530 (0:00:01.697) 0:00:01.748 ******* 
changed: [server1] 
 
TASK [Just debugging usage] ******************************************************************
************* ******************************************************************
************* ********************* 
Monday 05 February 2018  17:33:16 +0530 (0:00:00.226) 0:00:01.974 ******* 
ok: [server1] => { 
   "myvar": { 
      "changed": true, 
      "cmd": "/usr/bin/uptime", 
      "delta": "0:00:00.011306", 
      "end": "2018-02-05 17:33:16.424647", 
      "rc": 0, 
      "start": "2018-02-05 17:33:16.413341", 
      "stderr": "", 
      "stderr_lines": [], 
      "stdout": " 17:33:16 up 7 days, 35 min,  1 user,  load average: 0.18, 0.15, 0.14", 
      "stdout_lines": [ 
         " 17:33:16 up 7 days, 35 min,  1 user,  load average: 0.18, 0.15, 0.14" 
      ] 
   } 
} 
 
PLAY RECAP ****************************************************************************
**********************************************************************************
 ************************************** 
server1 : ok = 3    changed = 1    unreachable = 0    failed = 0

일반적인 플레이 북 문제

이 섹션에서는 몇 가지 일반적인 플레이 북 문제에 대해 알아 봅니다. 문제는-

  • Quoting
  • Indentation

Playbook은 yaml 형식으로 작성되었으며 위의 두 가지는 yaml / playbook에서 가장 일반적인 문제입니다.

Yaml은 탭 기반 들여 쓰기를 지원하지 않고 공백 기반 들여 쓰기를 지원하므로 이에 대해주의해야합니다.

Note − yaml 작성을 마치면이 사이트를 엽니 다 (https://editor.swagger.io/) 왼쪽에 yaml을 복사하여 붙여 넣어 yaml이 제대로 컴파일되는지 확인합니다. 이것은 단지 팁입니다.

Swagger는 경고 및 오류의 오류를 검증합니다.