Ansible - Risoluzione dei problemi

Le strategie più comuni per il debug dei playbook Ansible utilizzano i moduli indicati di seguito:

Eseguire il debug e la registrazione

Questi due sono i moduli disponibili in Ansible. A scopo di debug, dobbiamo usare i due moduli con giudizio. Di seguito sono illustrati degli esempi.

Usa Verbosità

Con il comando Ansible, è possibile fornire il livello di verbosità. Puoi eseguire i comandi con il livello di verbosità uno (-v) o due (-vv).

Punti importanti

In questa sezione, esamineremo alcuni esempi per comprendere alcuni concetti.

Se non stai citando un argomento che inizia con una variabile. Per esempio,

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

Questo genererà un errore.

Soluzione

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

Quando eseguo questo codice tramite il comando Ansible-playbook -i hosts test.yml, ottengo l'output come mostrato di seguito.

Se vedi lo yaml, abbiamo registrato l'output di un comando in una variabile - myvar e ha appena stampato l'output.

Il testo contrassegnato in giallo, ci parla della proprietà della variabile –myvar che può essere utilizzata per un ulteriore controllo del flusso. In questo modo possiamo scoprire le proprietà che sono esposte di una particolare variabile. Il seguente comando di debug aiuta in questo.

$ 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

Problemi comuni del Playbook

In questa sezione, impareremo alcuni problemi comuni del playbook. I problemi sono:

  • Quoting
  • Indentation

Playbook è scritto in formato yaml e i due precedenti sono i problemi più comuni in yaml / playbook.

Yaml non supporta il rientro basato su tabulazioni e supporta il rientro basato sullo spazio, quindi è necessario fare attenzione allo stesso.

Note - una volta finito di scrivere lo yaml, apri questo sito (https://editor.swagger.io/) e copia incolla il tuo yaml sul lato sinistro per assicurarti che lo yaml venga compilato correttamente. Questo è solo un suggerimento.

Swagger qualifica gli errori sia nell'avvertimento che nell'errore.