ansible.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Tue, 27 Oct 2020 13:55:30 +0200
changeset 2443 0c3dea222c3c
parent 2442 743c988c3fa9
child 2447 cb043d4756a2
permissions -rw-r--r--
Discovering variables: facts and magic variables.
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
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
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    28
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
    29
exact copy of the Python scripts it executed on the target machine)::
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    30
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    31
  ANSIBLE_KEEP_REMOTE_FILES=1  ansible ...
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    32
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    33
There is ``debugger`` keyword that triggers debugger, see `Ansible Debugger
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    34
<https://docs.ansible.com/ansible/latest/user_guide/playbooks_debugger.html>`_
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    35
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    36
To activate debugger on task::
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    37
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    38
  - name: Execute a command
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    39
    command: false
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    40
    debugger: on_failed
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    41
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    42
To activate debugger in ``ansible.cfg``::
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    43
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
  [defaults]
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    45
  enable_task_debugger = True
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    46
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    47
To activate debugger via env var::
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    48
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    49
  ANSIBLE_ENABLE_TASK_DEBUGGER=True ansible-playbook -i hosts site.yml
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    50
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    51
Use ``ansible-lint``::
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    52
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    53
  $ sudo apt install ansible-lint
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    54
  $ ansible-lint site.yml
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    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
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    58
https://stackoverflow.com/questions/42417079/how-to-debug-ansible-issues
6548a372f31f Debugging Ansible.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    59
  How to debug Ansible issues?
2430
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    60
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    61
Bash completion
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    62
===============
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
https://github.com/ansible/ansible/issues/36397
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    65
  Provide bash-completion script for ansible commands.
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    66
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
    67
  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
    68
  through an optional dependency called argcomplete.
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    69
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    70
Ansible language
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    71
================
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    72
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    73
https://docs.ansible.com/ansible/latest/user_guide/playbooks_module_defaults.html
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
    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.
2443
0c3dea222c3c Discovering variables: facts and magic variables.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2442
diff changeset
    92
https://docs.ansible.com/ansible/latest/user_guide/playbooks_vars_facts.html
0c3dea222c3c Discovering variables: facts and magic variables.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2442
diff changeset
    93
  Discovering variables: facts and magic variables.
2439
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
Inventory:
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    96
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    97
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
    98
  Uses Jinja2 to construct hosts and groups from patterns.
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
Inclusion:
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
   101
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
   102
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
   103
  Include a play or task list.
2430
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
   104
2442
743c988c3fa9 Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2441
diff changeset
   105
Filters:
743c988c3fa9 Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2441
diff changeset
   106
743c988c3fa9 Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2441
diff changeset
   107
https://jinja.palletsprojects.com/en/master/templates/
743c988c3fa9 Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2441
diff changeset
   108
  Jinja template language. List of Builtin Filters.
743c988c3fa9 Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2441
diff changeset
   109
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
   110
  Using filters to manipulate data.
743c988c3fa9 Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2441
diff changeset
   111
2435
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   112
Search path
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   113
===========
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   114
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   115
Files, templates, variables definitions are looked in ``files``, ``templates``, ``vars`` role / play
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   116
directories first, then in the base directory for role / play.
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   117
2441
58d60b3e470a Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2439
diff changeset
   118
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
   119
  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
   120
  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
   121
  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
   122
  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
   123
  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
   124
  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
   125
  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
   126
  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
   127
  inventory directory.
2435
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   128
https://docs.ansible.com/ansible/latest/user_guide/playbook_pathing.html
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   129
  Search paths in Ansible.
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   130
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   131
Templates
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   132
=========
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   133
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   134
https://docs.ansible.com/ansible/latest/user_guide/playbooks_templating.html
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   135
  Templating (Jinja2).
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   136