Suppose you are running a ansible playbook with multiple tasks and want to print execution time of each task, then do the below changes.

Lets see the below sample playbook execution . In this ouput we dont know how much it took for each task execution.

[root@ans_scripts]#  ansible-playbook playbook_copyfile_multi.yml -i /etc/ansible/inventory.txt
 
PLAY [copy files to test servers] ***********************************************************************************************************************************************
 
TASK [Gathering Facts] **********************************************************************************************************************************************************
ok: [db_server2]
ok: [db_server1]
 
TASK [Ansible copy files to remote machine] *************************************************************************************************************************************
changed: [db_server1] => (item=test1.log)
changed: [db_server2] => (item=test1.log)
ok: [db_server1] => (item=test2.log)
ok: [db_server2] => (item=test2.log)
 
PLAY RECAP **********************************************************************************************************************************************************************
db_server1                 : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
db_server2                 : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

For enabling the changes, we need to set the callback_whitelist = profile_tasks inside ansible.cfg file.

 

[root@ansible]# cat /etc/ansible/ansible.cfg |grep callback_whitelist
callback_whitelist = profile_tasks

 

Now run the same playbook in ansible again.

 

[root@ans_scripts]#  ansible-playbook playbook_copyfile_multi.yml -i /etc/ansible/inventory.txt
 
PLAY [copy files to test servers] ***********************************************************************************************************************************************
 
TASK [Gathering Facts] **********************************************************************************************************************************************************
Sunday 31 May 2020  08:27:31 +0300 (0:00:00.047)       0:00:00.047 ************
ok: [db_server1]
ok: [db_server2]
 
TASK [Ansible copy files to remote machine] *************************************************************************************************************************************
Sunday 31 May 2020  08:27:35 +0300 (0:00:04.027)       0:00:04.074 ************
ok: [db_server1] => (item=test1.log)
ok: [db_server2] => (item=test1.log)
ok: [db_server1] => (item=test2.log)
ok: [db_server2] => (item=test2.log)
 
PLAY RECAP **********************************************************************************************************************************************************************
db_server1                 : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
db_server2                 : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
 
Sunday 31 May 2020  08:27:38 +0300 (0:00:03.103)       0:00:07.178 ************
===============================================================================
Gathering Facts ---------------------------------------------------------------------------------------------------------------------------------------------------------- 4.03s
Ansible copy files to remote machine ------------------------------------------------------------------------------------------------------------------------------------- 3.10s

ansible