===== Отладка в ansible =====
Самое очевидное что приходит на ум это использование вспомогательного отладочного вывода. Тут нам на помощь приходит встроенный модуль debug. Все просто как 3 копейки - дебаг позволяет вывести сообщение или значение переменной.
==== debug - отладочный вывод в процессе сборки ====
Для того что бы увидеть отладочный вывод нужно добавить свойства register и debug
---
- name: user
hosts: demo
tasks:
- name: Create user
vars:
user: werwolf
user:
name: "{{ user }}"
state: present
become: true
register: out
- debug:
var: out
erwolf@werwolf-System-Product-Name:~/ansible-demo$ ansible-playbook -i demo-server user.yml -K
...
ok: [127.0.0.1] => {
"out": {
"append": false,
"changed": false,
"comment": "werwolf",
"failed": false,
"group": 1000,
"home": "/home/werwolf",
"move_home": false,
"name": "werwolf",
"shell": "/bin/bash",
"state": "present",
"uid": 1000
}
}
...
==== debugger - отладка в процессе сборки ====
Для вкючения отладки необходимо добавить свойство debugger в playbook. У данного свойства есть несколько возможных параметров:
{{ :linux:ansible:debugger.png |}}
---
- name: user
hosts: demo
tasks:
- name: Create user
vars:
user: werwolf
user:
name: "{{ user }}"
state: present
become: true
debugger: always
При запуске команды ansible запуститься отладочный режим
werwolf@werwolf-System-Product-Name:~/ansible-demo$ ansible-playbook -i demo-server user.yml -K
# Режим отладки
[127.0.0.1] TASK: Create user (debug)> p task # информация о task
TASK: Create user
[127.0.0.1] TASK: Create user (debug)> p task.name # название task
'Create user'
[127.0.0.1] TASK: Create user (debug)> p task.args # Передаваемы параметры task
[127.0.0.1] TASK: Create user (debug)> p task_vars['inventory_hostname'] # Получить host
'127.0.0.1'
[127.0.0.1] TASK: Create user (debug)> p task_vars['user'] # Получить пользователя
'werwolf'
[127.0.0.1] TASK: Create user (debug)> p task.vars # получить переменные task
{'user': 'werwolf'}
[127.0.0.1] TASK: Create user (debug)> task.args['name'] = 'werwolf14' # изменить пользователя
[127.0.0.1] TASK: Create user (debug)> r # Пересобрать ansible
changed: [127.0.0.1]
[127.0.0.1] TASK: Create user (debug)> task.args['state'] = 'absent' # удалить пользователя
[127.0.0.1] TASK: Create user (debug)> c # Продолжить работу