Skip to content

Ansible

Ansible⚑

Usage⚑

Meta⚑

Run handlers (before): - meta: flush_handlers

ansible handlers

Loops⚑

Looping over Subelements⚑

Useful when you have a list of dictionaries and you want to pick the same element from all of them.

with_subelements:
  - "{{ some list }}"
  - interesting_list_item
  - flags:
    skip_missing: yes

ansible-docs

Command line⚑

Variables⚑

To provide variables directly from the command line: --extra-vars "version=1.23.45 other_variable=foo".

stackoverflow

Facts⚑

  • ansible_user_id
Only gather facts when tag matches⚑

To speed up playbooks, disable gather_facts. In the parts where this is requiered, you can use this approach:

- hosts: all
  sudo: yes
  gather_facts: False
  pre_tasks:
   - setup:
       filter: ansible_*
  roles:
   - your_role_here
  tags:
    - tag1

This way ansible will only gather some facts and only if the tag matches (when run with the -t option).

stackoverflow

Debug⚑

Include tags ignored⚑

Example:

- import_tasks: db-setup.yml tags=db-setup

This tags are ignored if you skip them. Bug: github

could not find item['foo'] key in iterated item⚑

Solution: specify a third element in the with_subelements list called flags that is a dict and contains skip_missing: yes.

with_subelements:
  - "{{ some list }}"
  - interesting_list_item
  - flags:
    skip_missing: yes

github-issues

Reference⚑

Usage⚑

Modules⚑

Utilities⚑

  • ansigenome Tool for calculating dependency graphs and more.

Vault⚑

Plugins⚑

Timing⚑

Displays tasks timing at the end of the playbook output.

To enable, add callback_whitelist = profile_tasks to ansible.cfg.

ansible-profile