author | Oleksandr Gavenko <gavenkoa@gmail.com> |
Tue, 27 Oct 2020 13:29:54 +0200 | |
changeset 2442 | 743c988c3fa9 |
parent 2441 | 58d60b3e470a |
child 2443 | 0c3dea222c3c |
permissions | -rw-r--r-- |
2389 | 1 |
|
2 |
========= |
|
3 |
Ansible |
|
4 |
========= |
|
5 |
.. contents:: |
|
6 |
:local: |
|
7 |
||
8 |
Debugging Ansible |
|
9 |
================= |
|
10 |
||
11 |
Pass ``-vvv`` to Ansible utilities:: |
|
12 |
||
13 |
ansible -vvv ... |
|
14 |
ansible-playbook -vvv ... |
|
15 |
||
16 |
To debug connection use ``-vvvv``:: |
|
17 |
||
18 |
ansible -vvvv ... |
|
19 |
||
2441
58d60b3e470a
Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2439
diff
changeset
|
20 |
Print variable value with task ``debug``:: |
58d60b3e470a
Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2439
diff
changeset
|
21 |
|
58d60b3e470a
Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2439
diff
changeset
|
22 |
- debug: var=ansible_host |
58d60b3e470a
Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2439
diff
changeset
|
23 |
- debug: |
58d60b3e470a
Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2439
diff
changeset
|
24 |
var: ansible_host |
58d60b3e470a
Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2439
diff
changeset
|
25 |
- debug: |
58d60b3e470a
Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2439
diff
changeset
|
26 |
msg: "host is {{ ansible_host }}" |
58d60b3e470a
Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2439
diff
changeset
|
27 |
|
2389 | 28 |
To debug Python modules set ``ANSIBLE_KEEP_REMOTE_FILES`` to ``1`` (it causes Ansible to leave the |
29 |
exact copy of the Python scripts it executed on the target machine):: |
|
30 |
||
31 |
ANSIBLE_KEEP_REMOTE_FILES=1 ansible ... |
|
32 |
||
33 |
There is ``debugger`` keyword that triggers debugger, see `Ansible Debugger |
|
34 |
<https://docs.ansible.com/ansible/latest/user_guide/playbooks_debugger.html>`_ |
|
35 |
||
36 |
To activate debugger on task:: |
|
37 |
||
38 |
- name: Execute a command |
|
39 |
command: false |
|
40 |
debugger: on_failed |
|
41 |
||
42 |
To activate debugger in ``ansible.cfg``:: |
|
43 |
||
44 |
[defaults] |
|
45 |
enable_task_debugger = True |
|
46 |
||
47 |
To activate debugger via env var:: |
|
48 |
||
49 |
ANSIBLE_ENABLE_TASK_DEBUGGER=True ansible-playbook -i hosts site.yml |
|
50 |
||
51 |
Use ``ansible-lint``:: |
|
52 |
||
53 |
$ sudo apt install ansible-lint |
|
54 |
$ ansible-lint site.yml |
|
55 |
||
2390
f2b450fa4f4b
Network Debug and Troubleshooting Guide.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2389
diff
changeset
|
56 |
https://docs.ansible.com/ansible/latest/network/user_guide/network_debug_troubleshooting.html |
f2b450fa4f4b
Network Debug and Troubleshooting Guide.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2389
diff
changeset
|
57 |
Network Debug and Troubleshooting Guide. |
2389 | 58 |
https://stackoverflow.com/questions/42417079/how-to-debug-ansible-issues |
59 |
How to debug Ansible issues? |
|
2430 | 60 |
|
61 |
Bash completion |
|
62 |
=============== |
|
63 |
||
64 |
https://github.com/ansible/ansible/issues/36397 |
|
65 |
Provide bash-completion script for ansible commands. |
|
66 |
https://docs.ansible.com/ansible/devel/installation_guide/intro_installation.html#shell-completion |
|
67 |
As of Ansible 2.9 shell completion of the ansible command line utilities is available and provided |
|
68 |
through an optional dependency called argcomplete. |
|
69 |
||
70 |
Ansible language |
|
71 |
================ |
|
72 |
||
73 |
https://docs.ansible.com/ansible/latest/user_guide/playbooks_module_defaults.html |
|
74 |
Module defaults. |
|
2438
f570bd31717d
Reserved keywords. Patterns: targeting hosts and groups. Using aliases & groups for hosts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2435
diff
changeset
|
75 |
https://docs.ansible.com/ansible/latest/reference_appendices/playbooks_keywords.html |
f570bd31717d
Reserved keywords. Patterns: targeting hosts and groups. Using aliases & groups for hosts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2435
diff
changeset
|
76 |
Reserved keywords. |
f570bd31717d
Reserved keywords. Patterns: targeting hosts and groups. Using aliases & groups for hosts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2435
diff
changeset
|
77 |
https://docs.ansible.com/ansible/latest/user_guide/intro_patterns.html |
f570bd31717d
Reserved keywords. Patterns: targeting hosts and groups. Using aliases & groups for hosts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2435
diff
changeset
|
78 |
Patterns: targeting hosts and groups. |
f570bd31717d
Reserved keywords. Patterns: targeting hosts and groups. Using aliases & groups for hosts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2435
diff
changeset
|
79 |
https://docs.ansible.com/ansible/latest/network/getting_started/first_inventory.html |
f570bd31717d
Reserved keywords. Patterns: targeting hosts and groups. Using aliases & groups for hosts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2435
diff
changeset
|
80 |
Using aliases & groups for hosts. |
2439
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
81 |
https://docs.ansible.com/ansible/latest/user_guide/playbooks_error_handling.html |
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
82 |
Error handling in playbooks |
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
83 |
|
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
84 |
Variables: |
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
85 |
|
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
86 |
https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html |
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
87 |
Using Variables. Precedence. |
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
88 |
https://docs.ansible.com/ansible/latest/reference_appendices/config.html |
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
89 |
Ansible Configuration Settings. |
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
90 |
https://docs.ansible.com/ansible/latest/reference_appendices/special_variables.html |
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
91 |
Magic variables. |
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
92 |
|
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
93 |
Inventory: |
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
94 |
|
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
95 |
https://docs.ansible.com/ansible/latest/collections/ansible/builtin/generator_inventory.html |
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
96 |
Uses Jinja2 to construct hosts and groups from patterns. |
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
97 |
|
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
98 |
Inclusion: |
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
99 |
|
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
100 |
https://docs.ansible.com/ansible/latest/collections/ansible/builtin/include_module.html |
7377cd066123
Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2438
diff
changeset
|
101 |
Include a play or task list. |
2430 | 102 |
|
2442
743c988c3fa9
Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2441
diff
changeset
|
103 |
Filters: |
743c988c3fa9
Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2441
diff
changeset
|
104 |
|
743c988c3fa9
Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2441
diff
changeset
|
105 |
https://jinja.palletsprojects.com/en/master/templates/ |
743c988c3fa9
Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2441
diff
changeset
|
106 |
Jinja template language. List of Builtin Filters. |
743c988c3fa9
Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2441
diff
changeset
|
107 |
https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html |
743c988c3fa9
Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2441
diff
changeset
|
108 |
Using filters to manipulate data. |
743c988c3fa9
Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2441
diff
changeset
|
109 |
|
2435 | 110 |
Search path |
111 |
=========== |
|
112 |
||
113 |
Files, templates, variables definitions are looked in ``files``, ``templates``, ``vars`` role / play |
|
114 |
directories first, then in the base directory for role / play. |
|
115 |
||
2441
58d60b3e470a
Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2439
diff
changeset
|
116 |
https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html |
58d60b3e470a
Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2439
diff
changeset
|
117 |
You can also add ``group_vars/`` and ``host_vars/`` directories to your playbook |
58d60b3e470a
Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2439
diff
changeset
|
118 |
directory. The ansible-playbook command looks for these directories in the current |
58d60b3e470a
Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2439
diff
changeset
|
119 |
working directory by default. Other Ansible commands (for example, ansible, |
58d60b3e470a
Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2439
diff
changeset
|
120 |
ansible-console, and so on) will only look for ``group_vars/`` and ``host_vars/`` in the |
58d60b3e470a
Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2439
diff
changeset
|
121 |
inventory directory. If you want other commands to load group and host variables from a |
58d60b3e470a
Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2439
diff
changeset
|
122 |
playbook directory, you must provide the ``--playbook-dir`` option on the command line. |
58d60b3e470a
Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2439
diff
changeset
|
123 |
If you load inventory files from both the playbook directory and the inventory |
58d60b3e470a
Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2439
diff
changeset
|
124 |
directory, variables in the playbook directory will override variables set in the |
58d60b3e470a
Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2439
diff
changeset
|
125 |
inventory directory. |
2435 | 126 |
https://docs.ansible.com/ansible/latest/user_guide/playbook_pathing.html |
127 |
Search paths in Ansible. |
|
128 |
||
129 |
Templates |
|
130 |
========= |
|
131 |
||
132 |
https://docs.ansible.com/ansible/latest/user_guide/playbooks_templating.html |
|
133 |
Templating (Jinja2). |
|
134 |