ansible.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Wed, 04 Nov 2020 21:52:41 +0200
changeset 2448 1a02d5429a5d
parent 2447 cb043d4756a2
child 2449 508963deb620
permissions -rw-r--r--
Blocks.
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.
2447
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
    94
https://docs.ansible.com/ansible/latest/collections/ansible/builtin/set_fact_module.html
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
    95
  ``ansible.builtin.set_fact`` – Set host facts from a task.
2439
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
Inventory:
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    98
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
    99
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
   100
  Uses Jinja2 to construct hosts and groups from patterns.
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
   101
2447
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   102
Collections:
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   103
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   104
https://docs.ansible.com/ansible/latest/user_guide/collections_using.html
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   105
  Using collections.
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   106
https://docs.ansible.com/ansible/2.10/collections/index.html
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   107
  Collection Index.
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   108
2439
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
   109
Inclusion:
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
   110
7377cd066123 Variables. Inventory. Inclusion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2438
diff changeset
   111
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
   112
  Include a play or task list.
2430
315b44793009 Module defaults.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2390
diff changeset
   113
2442
743c988c3fa9 Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2441
diff changeset
   114
Filters:
743c988c3fa9 Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2441
diff changeset
   115
743c988c3fa9 Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2441
diff changeset
   116
https://jinja.palletsprojects.com/en/master/templates/
743c988c3fa9 Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2441
diff changeset
   117
  Jinja template language. List of Builtin Filters.
743c988c3fa9 Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2441
diff changeset
   118
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
   119
  Using filters to manipulate data.
743c988c3fa9 Using filters to manipulate data.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2441
diff changeset
   120
2447
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   121
Execution:
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   122
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   123
https://docs.ansible.com/ansible/latest/user_guide/playbooks_strategies.html
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   124
  Controlling playbook execution: strategies and more.
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   125
https://docs.ansible.com/ansible/latest/plugins/strategy.html
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   126
  Strategy Plugins.
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   127
https://docs.ansible.com/ansible/latest/user_guide/playbooks_delegation.html
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   128
  Controlling where tasks run: delegation and local actions.
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   129
https://docs.ansible.com/ansible/latest/reference_appendices/general_precedence.html
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   130
  Controlling how Ansible behaves: precedence rules.
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   131
https://docs.ansible.com/ansible/latest/user_guide/playbooks_handlers.html
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   132
  Handlers: running operations on change.
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   133
https://docs.ansible.com/ansible/latest/collections/ansible/builtin/setup_module.html
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   134
  ansible.builtin.setup – Gathers facts about remote hosts.
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   135
2435
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   136
Search path
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   137
===========
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   138
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   139
Files, templates, variables definitions are looked in ``files``, ``templates``, ``vars`` role / play
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   140
directories first, then in the base directory for role / play.
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   141
2441
58d60b3e470a Print variable value with task debug. Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2439
diff changeset
   142
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
   143
  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
   144
  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
   145
  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
   146
  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
   147
  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
   148
  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
   149
  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
   150
  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
   151
  inventory directory.
2435
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   152
https://docs.ansible.com/ansible/latest/user_guide/playbook_pathing.html
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   153
  Search paths in Ansible.
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   154
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   155
Templates
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   156
=========
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   157
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   158
https://docs.ansible.com/ansible/latest/user_guide/playbooks_templating.html
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   159
  Templating (Jinja2).
27921ee2c781 Search path.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2430
diff changeset
   160
2447
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   161
Execution
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   162
=========
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   163
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   164
``-f`` option controls forking: how many executors are started to perform tasks.
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   165
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   166
The way tasks are processed depends on ``strategy`` and ``serial``.
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   167
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   168
``strategy`` * ``serial`` can be defined on each ``hosts`` in a play::
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   169
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   170
  - hosts: web
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   171
    strategy: free
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   172
    serial: 50%
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   173
  - hosts: db
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   174
    strategy: linear
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   175
    serial: 1
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   176
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   177
* With ``linear`` strategy all workers execute the same tasks, idling until every is finished the
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   178
  task. Then next task is executed. ``serial`` sets how many hosts at a time to run at a time to the
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   179
  end of subplay.
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   180
* With ``free`` strategy tasks are executed without waiting for completion of the same task on every
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   181
  host.
cb043d4756a2 Execution.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2443
diff changeset
   182
2448
1a02d5429a5d Blocks.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2447
diff changeset
   183
Blocks
1a02d5429a5d Blocks.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2447
diff changeset
   184
======
1a02d5429a5d Blocks.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2447
diff changeset
   185
1a02d5429a5d Blocks.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2447
diff changeset
   186
To avoid repetitive checks or to handle failures use ``block``::
1a02d5429a5d Blocks.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2447
diff changeset
   187
1a02d5429a5d Blocks.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2447
diff changeset
   188
  block:
1a02d5429a5d Blocks.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2447
diff changeset
   189
  - shell: echo do 1
1a02d5429a5d Blocks.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2447
diff changeset
   190
  - shell: echo do 2
1a02d5429a5d Blocks.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2447
diff changeset
   191
  when: not db_started
1a02d5429a5d Blocks.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2447
diff changeset
   192
  become: true
1a02d5429a5d Blocks.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2447
diff changeset
   193
  become_user: dba
1a02d5429a5d Blocks.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2447
diff changeset
   194
  rescue:
1a02d5429a5d Blocks.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2447
diff changeset
   195
  - shell: echo rollback
1a02d5429a5d Blocks.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2447
diff changeset
   196
  always:
1a02d5429a5d Blocks.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2447
diff changeset
   197
  - shell: echo notify
1a02d5429a5d Blocks.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2447
diff changeset
   198