Introduction

Ansible, an open-source automation tool, simplifies IT infrastructure operations. Whether tackling simple package installations or orchestrating complex clustered solutions, optimizing Ansible playbooks is key to faster execution.

Step by Step

Here are ten methods to enhance Ansible Playbook performance:

  1. Identify Slow Tasks with Callback Plugins in ansible.cfg:
  1. Disable Fact Gathering in Playbook:
  1. Configure Parallelism in ansible.cfg:

Adjust the forks setting in ansible.cfg to control task execution batches. Increasing forks from the default 5 allows more parallel task execution, speeding up playbooks.

  1. Configure SSH Optimization in ansible.cfg:
  1. Disable SSH Host Key Checking in ansible.cfg:
Join 50+ hours of courses in our exclusive community
  1. Enable Pipelining in ansible.cfg:
  1. Utilize Execution Strategies in Playbook:
  1. Use Async Tasks in Playbook:
  1. Setting the Batch Size with Serial in Playbook
  • Use the serial statement to customize the batch size of hosts that are concurrently processed during playbook execution. This feature is particularly valuable in scenarios like rolling updates, where you want to limit the number of machines managed simultaneously. The serial value can be configured with specific host counts, percentages, or a mix of both, providing flexibility in optimizing task execution. It allows users to fine-tune the scope of failures, ensuring that issues are isolated to individual batches rather than affecting the entire host list. This capability enhances playbook performance and control in diverse infrastructure automation scenarios.
  • https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_strategies.html#setting-the-batch-size-with-serial
  1. Use Paramiko in ansible.cfg
  • Using Paramiko, the native Python SSH implementation, as a transport method in Ansible, especially on older platforms like RHEL6 and earlier without ControlPersist support in SSH, offers compatibility and efficiency benefits. Paramiko ensures faster and more efficient connections for users on these platforms, enhancing Ansible’s performance, and is seamlessly integrated into Ansible’s smart option for the transport option in the ansible.cfg, which automatically selects the appropriate transport method based on the controller’s OS and SSH versions, simplifying connection management in diverse environments.
  • https://docs.ansible.com/ansible/latest/reference_appendices/config.html#default-transport

Conclusion

Optimizing Ansible playbooks is a continuous journey. Experiment with various configuration parameters to find the ideal combination for your infrastructure needs. Additional parameters like serial, throttle, and run_once offer further optimization options. Refer to Ansible documentation for comprehensive guidance tailored to your environment.

Subscribe to the YouTube channel, Medium, and Website, X (formerly Twitter) to not miss the next episode of the Ansible Pilot.

Academy

Learn the Ansible automation technology with some real-life examples in my Udemy 300+ Lessons Video Course.

BUY the Complete Udemy 300+ Lessons Video Course

My book Ansible By Examples: 200+ Automation Examples For Linux and Windows System Administrator and DevOps

BUY the Complete PDF BOOK to easily Copy and Paste the 250+ Ansible code

Want to keep this project going? Please donate

Patreon Buy me a Pizza