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.