Thanks Matthaus and jcbollinger for looking into this. I think that this is clearly a bug because my data in json and yaml are not about the same things. In Yaml, I only have ssh_users and in JSON I have dnsservers. When I queried for dnsservers, I got nil. It is good to know that using multiple backends do work but right now a bug prevents this to work correctly.
Steven. On Jun 7, 11:20 am, Matthaus Litteken <[email protected]> wrote: > Steven, > It looks like you may be running > intohttp://projects.puppetlabs.com/issues/12122, which has a potential fix > awaiting review (https://github.com/puppetlabs/hiera/pull/68). The fix > will be going into the current rc series of Hiera. > > > > > > > > On Thu, Jun 7, 2012 at 8:23 AM, jcbollinger <[email protected]> wrote: > > > On Jun 6, 9:30 pm, Steven Truong <[email protected]> wrote: > >> I tried to use both yaml and json backends because some of my users > >> might not know Yaml. > > > They might think they don't, but YAML is a superset of JSON, so any of > > your users who know JSON also know a big chunk of YAML -- in all > > likelihood, enough YAML to encode data for hiera. > > >> However, when I ran hiera from the CLI, I could > >> only retrieve things from YAML and not in JSON. The objects in JSON > >> are not overlapped with those in YAML. I could retrieve all objects > >> when I ran YAML or JSON alone. > > >> Is it possible to use both YAML and JSON as Hiera's backends? Or just > >> JSON + puppet or YAML + puppet or MySQL/Redis + puppet? Is Puppet > >> backend required as the second tier? > > > As I understand it, hiera can query multiple backends for the same > > key, but it is possible that it chooses only one backend for each > > hierarchy level. The Puppet backend is not required at all as far as > > I can tell; if you do not want to look up data in your Puppet > > variables then you should not use it. > > >> cat hiera.yaml > >> --- > >> :backends: > >> - yaml > >> - json > > >> :hierarchy: - %{operatingsystem} > >> - common > >> :yaml: > >> :datadir: /etc/puppet/hierayaml_data > > >> :json: > >> :datadir: /etc/puppet/hierajson_data > > >> ls hiera*data > >> hierajson_data: > >> common.json > > >> hierayaml_data: > >> common.yaml Ubuntu.yaml > > > I guess you were hoping that for hierarchy level "common", hiera would > > consult both common.json and common.yaml. I don't think it works that > > way. As I understand it, Hiera will choose *one* backend for each > > hierarchy level, based on the order in which the backends are listed > > and on whether the corresponding data source is present. > > > If you really need separate YAML and JSON data, then this may work > > better: > > > :backends: > > - yaml > > - json > > > :hierarchy: - %{operatingsystem} > > - common_yaml > > - common_json > > > :yaml: > > :datadir: /etc/puppet/hierayaml_data > > > :json: > > :datadir: /etc/puppet/hierajson_data > > > ----- > > > Of course, you would also need to rename the YAML and JSON data files > > correspondingly. > > > Alternatively, just use YAML. Any JSON-only people will feel almost > > at home right away, and any extra bits they need for this work should > > be easy to pick up. That will also avoid problems revolving around > > which file should contain each item. > > > John > > > -- > > You received this message because you are subscribed to the Google Groups > > "Puppet Users" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group > > athttp://groups.google.com/group/puppet-users?hl=en. -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
