FAQ
Dear all,

I tried to use both yaml and json backends because some of my users
might not know Yaml. 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?

Thanks,
Steven.

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

--
You received this message because you are subscribed to the Google Groups "Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.

Search Discussions

  • Jcbollinger at Jun 7, 2012 at 3:23 pm

    On Jun 6, 9:30 pm, Steven Truong 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 puppet-users@googlegroups.com.
    To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com.
    For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
  • Matthaus Litteken at Jun 7, 2012 at 6:21 pm
    Steven,
    It looks like you may be running into
    http://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 wrote:
    On Jun 6, 9:30 pm, Steven Truong 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 puppet-users@googlegroups.com.
    To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com.
    For more options, visit this group at http://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 puppet-users@googlegroups.com.
    To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com.
    For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
  • Midair77 at Jun 7, 2012 at 11:27 pm
    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 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 wrote:
    On Jun 6, 9:30 pm, Steven Truong 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 puppet-users@googlegroups.com.
    To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com.
    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 puppet-users@googlegroups.com.
    To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com.
    For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppuppet-users @
categoriespuppet
postedJun 7, '12 at 2:30a
activeJun 7, '12 at 11:27p
posts4
users3
websitepuppetlabs.com

People

Translate

site design / logo © 2022 Grokbase