ansible.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Fri, 16 Oct 2020 00:09:34 +0300
changeset 2439 7377cd066123
parent 2438 f570bd31717d
child 2441 58d60b3e470a
permissions -rw-r--r--
Variables. Inventory. Inclusion.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2389
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
=========
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
 Ansible
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
=========
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
.. contents::
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
   :local:
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
Debugging Ansible
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
=================
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
Pass ``-vvv`` to Ansible utilities::
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
  ansible -vvv ...
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    14
  ansible-playbook -vvv ...
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    15
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    16
To debug connection use ``-vvvv``::
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    17
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
  ansible -vvvv ...
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
To debug Python modules set ``ANSIBLE_KEEP_REMOTE_FILES`` to ``1`` (it causes Ansible to leave the
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
exact copy of the Python scripts it executed on the target machine)::
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
  ANSIBLE_KEEP_REMOTE_FILES=1  ansible ...
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
There is ``debugger`` keyword that triggers debugger, see `Ansible Debugger
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    26
<https://docs.ansible.com/ansible/latest/user_guide/playbooks_debugger.html>`_
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    27
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    28
To activate debugger on task::
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    29
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    30
  - name: Execute a command
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    31
    command: false
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    32
    debugger: on_failed
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    33
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    34
To activate debugger in ``ansible.cfg``::
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    35
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    36
  [defaults]
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    37
  enable_task_debugger = True
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    38
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    39
To activate debugger via env var::
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    40
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    41
  ANSIBLE_ENABLE_TASK_DEBUGGER=True ansible-playbook -i hosts site.yml
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    42
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    43
Use ``ansible-lint``::
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    45
  $ sudo apt install ansible-lint
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    46
  $ ansible-lint site.yml
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    47
2390
f2b450fa4f4b Network Debug and Troubleshooting Guide.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2389
diff changeset
    48
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
    49
  Network Debug and Troubleshooting Guide.
2389
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    50
https://stackoverflow.com/questions/42417079/how-to-debug-ansible-issues
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    51
  How to debug Ansible issues?
2430
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    52
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    53
Bash completion
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    54
===============
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    55
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    56
https://github.com/ansible/ansible/issues/36397
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    57
  Provide bash-completion script for ansible commands.
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    58
https://docs.ansible.com/ansible/devel/installation_guide/intro_installation.html#shell-completion
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    59
  As of Ansible 2.9 shell completion of the ansible command line utilities is available and provided
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    60
  through an optional dependency called argcomplete.
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    61
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    62
Ansible language
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    63
================
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    64
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    65
https://docs.ansible.com/ansible/latest/user_guide/playbooks_module_defaults.html
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    66
  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
    67
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
    68
  Reserved keywords.
f570bd31717d Reserved keywords. Patterns: targeting hosts and groups. Using aliases & groups for hosts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2435
diff changeset
    69
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
    70
  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
    71
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
    72
  Using aliases & groups for hosts.
2439
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    73
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
    74
  Error handling in playbooks
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    75
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    76
Variables:
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    77
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    78
https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    79
  Using Variables. Precedence.
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    80
https://docs.ansible.com/ansible/latest/reference_appendices/config.html
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    81
  Ansible Configuration Settings.
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    82
https://docs.ansible.com/ansible/latest/reference_appendices/special_variables.html
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    83
  Magic variables.
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    84
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    85
Inventory:
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    86
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    87
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
    88
  Uses Jinja2 to construct hosts and groups from patterns.
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    89
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    90
Inclusion:
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    91
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    92
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
    93
  Include a play or task list.
2430
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    94
2435
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
    95
Search path
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
    96
===========
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
    97
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
    98
Files, templates, variables definitions are looked in ``files``, ``templates``, ``vars`` role / play
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
    99
directories first, then in the base directory for role / play.
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   100
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   101
https://docs.ansible.com/ansible/latest/user_guide/playbook_pathing.html
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   102
  Search paths in Ansible.
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   103
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   104
Templates
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   105
=========
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   106
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   107
https://docs.ansible.com/ansible/latest/user_guide/playbooks_templating.html
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   108
  Templating (Jinja2).
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   109