Skip to main content

Ansible configuration files

Ansible is a powerful automation tool that can help you manage your infrastructure more efficiently. One of the key components of Ansible that you'll need to understand is its configuration files. In this article, we'll explore what these files are, why they're important, and how you can use them to customize your Ansible environment.

What is an Ansible Configuration File?

An Ansible configuration file is a YAML or INI formatted file that contains configuration parameters for the Ansible environment. The default location for the global configuration file is /etc/ansible/ansible.cfg. However, Ansible can use other configuration files as well, and it looks for them in a specific order:

  1. ANSIBLE_CONFIG (an environment variable)
  2. ansible.cfg (in the current directory)
  3. ~/.ansible.cfg (in the home directory)
  4. /etc/ansible/ansible.cfg

This flexibility allows you to create different configurations for different projects or environments.

Key Components of an Ansible Configuration File

The configuration file is divided into several sections, each containing different parameters. Let's look at some of the key sections:

  • defaults: This is the main section where you'll find most of the general settings, like the inventory file location or the timeout for connections.
[defaults]
inventory = /etc/ansible/hosts
timeout = 60
  • privilege_escalation: This section is for settings about privilege escalation, such as whether to use sudo or not.
[privilege_escalation]
become = True
  • ssh_connection: Here you can define settings for the SSH connection, like the SSH arguments or the transfer method.
[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60s

Customizing the Ansible Configuration

You can customize the Ansible configuration file to better suit your needs. For example, if you want to change the default inventory file location, you can do so in the defaults section:

[defaults]
inventory = /my/new/inventory/path

Remember to always be careful when modifying configuration files. A wrong setting can cause your playbook runs to fail.

Conclusion

Understanding Ansible's configuration files is an important step in mastering Ansible. These files give you the power to customize your Ansible environment to fit your specific needs. Remember that Ansible looks for configuration files in a specific order, and that you can use this to create different configurations for different projects or environments.


I hope you find this guide helpful in your Ansible journey. Happy automating!