My favorite Ansible tools and personal contributions towards Ansible.

Profiling Ansible

Create ansible.cfg file into same directory with playbook with following content:

[defaults]
callback_whitelist = profile_tasks, profile_roles

When I run playbook, it creates summary to the end about how long each role and task took.

With tasks:

Thursday 07 December 2017  20:09:46 +0200 (0:00:04.965)       0:00:11.386 *****
===============================================================================
setup ------------------------------------------------------------------- 6.23s
git --------------------------------------------------------------------- 4.97s
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
total ------------------------------------------------------------------ 11.20s
Thursday 07 December 2017  20:09:46 +0200 (0:00:04.965)       0:00:11.384 *****
===============================================================================
Gathering Facts --------------------------------------------------------- 6.23s
git update -------------------------------------------------------------- 4.97s

With roles and tasks:

Thursday 07 December 2017  20:11:29 +0200 (0:00:17.668)       0:00:48.552 *****
===============================================================================
JekyllSetup ------------------------------------------------------------ 42.11s
setup ------------------------------------------------------------------- 6.10s
include_role ------------------------------------------------------------ 0.23s
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
total ------------------------------------------------------------------ 48.43s
Thursday 07 December 2017  20:11:29 +0200 (0:00:17.669)       0:00:48.551 *****
===============================================================================
JekyllSetup : build site ----------------------------------------------- 17.67s
JekyllSetup : git update ------------------------------------------------ 8.58s
Gathering Facts --------------------------------------------------------- 6.10s
JekyllSetup : .gitignore for content ------------------------------------ 2.09s
JekyllSetup : override files -------------------------------------------- 1.37s
JekyllSetup : override dirs must exist ---------------------------------- 1.27s
JekyllSetup : override with ylitalot.com (sync) ------------------------- 1.18s
JekyllSetup : run bundler ----------------------------------------------- 1.16s
JekyllSetup : .gitignore for override content --------------------------- 1.08s
JekyllSetup : install bundler ------------------------------------------- 0.91s
JekyllSetup : download jquery ------------------------------------------- 0.90s
JekyllSetup : link images from colorbox --------------------------------- 0.83s
JekyllSetup : /.../files/override has to exist -------------------------- 0.59s
JekyllSetup : link javascript from colorbox ----------------------------- 0.59s
JekyllSetup : link with playbook_dir ------------------------------------ 0.58s
JekyllSetup : /.../files/override/Gemfile has to exist ------------------ 0.56s
JekyllSetup : Ensure that .gitignore files exists ----------------------- 0.56s
JekyllSetup : colorbox directories -------------------------------------- 0.56s
JekyllSetup : add items to .gitignore ----------------------------------- 0.50s
JekyllSetup : create site ----------------------------------------------- 0.48s

Source: ansible-profile

Personal opinions, contributions, etc.

My personal background with configuration management tools starts from Cfengine in ’90s that we used to customize Linux installations. Followed by Puppet to setup multi-node installations in ’00s. In ‘16, I came across with Chef, but my current choice for configuration tasks is Ansible, even if it is not the fastest tool on a market.

Contributions to other Ansible projects

Personal Ansible Roles projects

Personal Ansible Playbook projects

Pull requests to other Ansible projects