# Best Practices with Vars

**URL:** <https://forum.ansible.com/t/best-practices-with-vars/30158>\
**Category:** Ansible Project\
**Created:** [April 21, 2019, 8:20pm UTC](https://forum.ansible.com/t/best-practices-with-vars/30158 "2019-04-21T20:20:38Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![mailinglists-ansible](https://avatars.discourse-cdn.com/v4/letter/m/9d8465/32.png) [@mailinglists-ansible](https://forum.ansible.com/u/mailinglists-ansible)\
**Post date:** [April 21, 2019, 8:20pm UTC](https://forum.ansible.com/t/best-practices-with-vars/30158/1 "2019-04-21T20:20:38Z")

</div>

Hi,

I am searching for the best way to supply vars to multiple ansible  
tasks;  
the vars are mostly based on the systems OS ( like the default config  
directory beeing in /etc for Linux and in /usr/local/etc for FreeBSD)  
so I am generating groups for each OS but they are not recognized

So i use

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/ansible/original/1X/1882d9a01da5d8996a862359b0913cc568a39b84.svg) [@system](https://forum.ansible.com/u/system)\
**Post date:** [April 23, 2019, 2:31am UTC](https://forum.ansible.com/t/best-practices-with-vars/30158/2 "2019-04-23T02:31:05Z")

</div>

You also have {{playbook\_dir}} but there is no 'project' concept in Ansible.

An approach I've used before is to define in 'group\_vars/all.yml'  
something like:

project\_dir: '{{lookup("env", "MYPROJ")|default(playbook\_dir)}}'
