# Hiera equivalent for Ansible

**URL:** <https://forum.ansible.com/t/hiera-equivalent-for-ansible/13910>\
**Category:** Ansible Project\
**Created:** [November 14, 2013, 9:02pm UTC](https://forum.ansible.com/t/hiera-equivalent-for-ansible/13910 "2013-11-14T21:02:19Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gonzalo\_Servat](https://avatars.discourse-cdn.com/v4/letter/g/71c47a/32.png) [@Gonzalo\_Servat](https://forum.ansible.com/u/Gonzalo_Servat)\
**Post date:** [November 14, 2013, 9:02pm UTC](https://forum.ansible.com/t/hiera-equivalent-for-ansible/13910/1 "2013-11-14T21:02:19Z")

</div>

Hi All,

Is there a Hiera equivalent for Ansible? For example I want to build an array of packages to install for a host which is made up of packages in host\_vars, group\_vars and perhaps some common packages that apply to all. If Hiera doesn’t exist, how could something like this be achieved?

Thanks.  
GS

---

<div class="post-metadata">

**Author:** ![Brian\_Coca1](https://avatars.discourse-cdn.com/v4/letter/b/278dde/32.png) [@Brian\_Coca1](https://forum.ansible.com/u/Brian_Coca1)\
**Post date:** [November 14, 2013, 9:08pm UTC](https://forum.ansible.com/t/hiera-equivalent-for-ansible/13910/2 "2013-11-14T21:08:40Z")

</div>

No tool currently and I think setting up such things in ansible is simple  
enough that no equivalent tool will be made.

---

<div class="post-metadata">

**Author:** ![Gonzalo\_Servat](https://avatars.discourse-cdn.com/v4/letter/g/71c47a/32.png) [@Gonzalo\_Servat](https://forum.ansible.com/u/Gonzalo_Servat)\
**Post date:** [November 14, 2013, 9:09pm UTC](https://forum.ansible.com/t/hiera-equivalent-for-ansible/13910/3 "2013-11-14T21:09:53Z")

</div>

Do you have an example?

---

<div class="post-metadata">

**Author:** ![Brian\_Coca1](https://avatars.discourse-cdn.com/v4/letter/b/278dde/32.png) [@Brian\_Coca1](https://forum.ansible.com/u/Brian_Coca1)\
**Post date:** [November 14, 2013, 9:14pm UTC](https://forum.ansible.com/t/hiera-equivalent-for-ansible/13910/4 "2013-11-14T21:14:09Z")

</div>

look at roles, but you can also do this with play playbooks (i did before roles came)

base.yml

- common\_packages.yml
- removes\_cruft.yml
- setup\_admin\_accounts.yml
- remove\_old\_admins.yml

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan2](https://avatars.discourse-cdn.com/v4/letter/m/da6949/32.png) [@Michael\_DeHaan2](https://forum.ansible.com/u/Michael_DeHaan2)\
**Post date:** [November 14, 2013, 9:48pm UTC](https://forum.ansible.com/t/hiera-equivalent-for-ansible/13910/5 "2013-11-14T21:48:34Z")

</div>

External inventory scripts, see docs.

Ansible has a much more flexible classifier and way easier to understand!

– Michael

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan2](https://avatars.discourse-cdn.com/v4/letter/m/da6949/32.png) [@Michael\_DeHaan2](https://forum.ansible.com/u/Michael_DeHaan2)\
**Post date:** [November 14, 2013, 9:49pm UTC](https://forum.ansible.com/t/hiera-equivalent-for-ansible/13910/6 "2013-11-14T21:49:21Z")

</div>

You are wrong Brian, external inventory and group classification are already there, and also lookup plugins 🙂

– Michael

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan2](https://avatars.discourse-cdn.com/v4/letter/m/da6949/32.png) [@Michael\_DeHaan2](https://forum.ansible.com/u/Michael_DeHaan2)\
**Post date:** [November 14, 2013, 9:50pm UTC](https://forum.ansible.com/t/hiera-equivalent-for-ansible/13910/7 "2013-11-14T21:50:54Z")

</div>

Roles are useful but what is being asked about is how playbooks map hosts to roles using the “hosts:” directive.

– Michael

---

<div class="post-metadata">

**Author:** ![Brian\_Coca1](https://avatars.discourse-cdn.com/v4/letter/b/278dde/32.png) [@Brian\_Coca1](https://forum.ansible.com/u/Brian_Coca1)\
**Post date:** [November 14, 2013, 9:57pm UTC](https://forum.ansible.com/t/hiera-equivalent-for-ansible/13910/8 "2013-11-14T21:57:22Z")

</div>

Ah, sorry, yes, i was assuming dynamic inventory (ass == me) and then just use plays/roles to organize based on that.

---

<div class="post-metadata">

**Author:** ![Gonzalo\_Servat](https://avatars.discourse-cdn.com/v4/letter/g/71c47a/32.png) [@Gonzalo\_Servat](https://forum.ansible.com/u/Gonzalo_Servat)\
**Post date:** [November 14, 2013, 9:59pm UTC](https://forum.ansible.com/t/hiera-equivalent-for-ansible/13910/9 "2013-11-14T21:59:38Z")

</div>

Thanks Michael/Brian. I’ll look into using an external inventory script.

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan2](https://avatars.discourse-cdn.com/v4/letter/m/da6949/32.png) [@Michael\_DeHaan2](https://forum.ansible.com/u/Michael_DeHaan2)\
**Post date:** [November 14, 2013, 10:14pm UTC](https://forum.ansible.com/t/hiera-equivalent-for-ansible/13910/10 "2013-11-14T22:14:43Z")

</div>

Look into group\_by if you wish to make dynamic groups based on variables too!

– Michael
