I use hiera as an External Node Classifier in Puppet in order to avoid that roles are deployed on nodes that are for example incompatible. Now I have two servers that are provisioned using Ansible. I am concerned that when the cluster grows that I have to check what nodes are available and then decide what role should be applied instead of hiera that that is doing automatically. For example, system A is a developer system and deploy development role and systemB is a db system deploy database role.
Ansible supports pulling host and group variables from one or more external inventory systems. Examples are included of pulling in inventory from Cobbler, EC2 and OpenStack. Ansible Tower also includes its own dynamic inventory source. It is also possible to write your own script to pull data from any source.