ansible default variables

**Understanding Ansible Default Variables**

Ansible is an open-source automation platform that simplifies complex IT tasks. It allows you to deploy, configure, and orchestrate tasks across a large set of servers. One of the key features of Ansible is its use of variables, which allow for the dynamic configuration of playbooks and roles. In this article, we will delve into Ansible default variables and explore their usage in playbooks and roles.

**What Are Ansible Default Variables?**

In Ansible, default variables are a way to set default values for variables that can be overridden during playbook execution. These variables are defined in Ansible roles and playbooks and are used to define the desired state of the system. Default variables provide a way to establish a common configuration that can be customized as needed for different hosts or groups of hosts.

**Usage in Playbooks**

In Ansible playbooks, default variables can be defined at different levels, including at the play, role, or task level. When a playbook is executed, Ansible will use these default variables unless they are overridden. This allows for consistency in configuration across multiple hosts while still providing the flexibility to customize specific variables as needed.

**Defining Default Variables**

Default variables in Ansible are typically stored in YAML files. Within a role, default variables are often stored in a file named `defaults/main.yml` and are structured using YAML syntax. For example, a default variable for the `nginx` role may look like this:

“`
# defaults file for nginx
nginx_port: 80
nginx_user: nginx
nginx_conf_dir: /etc/nginx
“`
In this example, we have defined default values for the `nginx_port`, `nginx_user`, and `nginx_conf_dir` variables. These values will be used unless they are overridden when the playbook is executed.

**Overriding Default Variables**

While default variables provide a baseline configuration, they can be easily overridden during playbook execution. This can be done in several ways, including through inventory files, group or host vars, or directly within the playbook itself. If a default variable needs to be customized for a specific host or group of hosts, it can be easily updated without modifying the original default variable file.

**Precedence of Variable Overrides**

When overriding default variables, it’s important to understand the precedence of variable values. In Ansible, variable values can be defined at multiple levels, including inventory files, playbooks, roles, and more. When a variable is referenced