user2388404
user2388404

Reputation: 121

ansible playbooks get which variable file by default if not defined

I have a devop directory containing ansible's varible directroy , plabooks and inventory directory

The directory looks like this

|groups_vars
      -all.yml
      -development.yml
      -staging.yml
|inventroy
      - staging
      - development

configure.yml
deploy.yml

configure.yml and deploy.yml contains task that are applied to either staging or development machines using variable in groups_vars

Know if i call ansible-playbook command with staging inventory. How will it know which variable file to use. The varfile task in not added to configure.yml and deploy.yml

By the way am using an example from the company i work and the example is working I just want to know the magic that is happening it is using the right variable file though the var file is not incuded in the configure.yml nor deploy.yml

Upvotes: 0

Views: 1925

Answers (1)

Ramon de la Fuente
Ramon de la Fuente

Reputation: 8343

Ansible uses a few conventions to load vars files:

  • group_vars/[group]
  • host_vars/[host]

So if you have an inventory file that looks like this:

[staging]
some-host.name.com

Then These files will be included (optional extension .yml or .yaml also):

/group_vars/all
/group_vars/staging
/host_vars/some-host.name.com

I think this is the "magic" you are referring to.

You can find more on the subject here: http://docs.ansible.com/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable

And here: http://docs.ansible.com/playbooks_best_practices.html

Upvotes: 1

Related Questions