$ cat /etc/redhat-release Scientific Linux release 6.7 (Carbon)
$ sudo yum updateLoaded plugins: refresh-packagekit, security
Setting up Update ProcessNo Packages marked for Update
$ rpm -qa | egrep '(puppet|fact|hiera|ruby)'
facter-2.4.4-1.el6.x86_64puppet-3.8.2-1.el6.noarchhiera-1.3.4-1.el6.noarchpuppet-server-3.8.2-1.el6.noarchruby-libs-1.8.7.374-4.el6_6.x86_64ruby-rdoc-1.8.7.374-4.el6_6.x86_64ruby-shadow-2.2.0-2.el6.x86_64ruby-1.8.7.374-4.el6_6.x86_64rubygems-1.3.7-5.el6.noarchruby-augeas-0.4.1-3.el6.x86_64rubygem-deep_merge-1.0.0-2.el6.noarchlibselinux-ruby-2.0.94-5.8.el6.x86_64rubygem-json-1.5.5-3.el6.x86_64ruby-irb-1.8.7.374-4.el6_6.x86_64
$ cat /etc/puppet/hiera.yaml ---:backends: - json:hierarchy: - common
:merge_behavior: "deeper":json: :datadir: /etc/puppet/hieradata
$ cat /etc/puppet/hieradata/common.json
[{ "apache-packages" : [ "apache2", "apache2-common", "apache2-utils" ],
"hosts_entry" : "sandbox.%{fqdn}",
"sshd_settings" : { "root_allowed" : "no", "password_allowed" : "no" }}]
$ cat /etc/puppet/hieradata/common.json | jq '.[0]'{ "sshd_settings": { "password_allowed": "no", "root_allowed": "no" }, "hosts_entry": "sandbox.%{fqdn}", "apache-packages": [ "apache2", "apache2-common", "apache2-utils" ]}
$ hiera --version1.3.4$ hiera -c /etc/puppet/hiera.yaml hosts_entry/usr/lib/ruby/site_ruby/1.8/hiera/filecache.rb:56:in `read_file': Data retrieved from /etc/puppet/hieradata/common.json is String not Hash (TypeError) from /usr/lib/ruby/site_ruby/1.8/hiera/backend/json_backend.rb:24:in `lookup' from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:76:in `datasources' from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:74:in `map' from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:74:in `datasources' from /usr/lib/ruby/site_ruby/1.8/hiera/backend/json_backend.rb:17:in `lookup' from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:206:in `lookup' from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:203:in `each' from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:203:in `lookup' from /usr/lib/ruby/site_ruby/1.8/hiera.rb:60:in `lookup' from /usr/bin/hiera:225
$ mv /etc/puppet/hieradata/common.json /etc/puppet/hieradata/common.yaml
$ vim /etc/puppet/hieradata/common.yaml
$ cat /etc/puppet/hieradata/common.yaml ---# arrayapache-packages: - apache2 - apache2-common - apache2-utils
# stringapache-service: apache2
# interpolated facter variablehosts_entry: "sandbox.%{fqdn}"
# hashsshd_settings: root_allowed: "no" password_allowed: "yes"
# alternate hash notationsshd_settings: {root_allowed: "no", password_allowed: "yes"}
# to return "true" or "false"sshd_settings: {root_allowed: no, password_allowed: yes}
$ vim /etc/puppet/hiera.yaml $ cat /etc/puppet/hiera.yaml---:backends: - yaml:hierarchy: - common
:merge_behavior: "deeper":yaml: :datadir: /etc/puppet/hieradata
$ hiera -c /etc/puppet/hiera.yaml hosts_entrysandbox.
$ hiera -c /etc/puppet/hiera.yaml hosts_entry/usr/lib/ruby/site_ruby/1.8/hiera/filecache.rb:56:in `read_file': Data retrieved from /etc/puppet/hieradata/common.json is String not Hash (TypeError) from /usr/lib/ruby/site_ruby/1.8/hiera/backend/json_backend.rb:24:in `lookup' from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:76:in `datasources' from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:74:in `map' from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:74:in `datasources' from /usr/lib/ruby/site_ruby/1.8/hiera/backend/json_backend.rb:17:in `lookup' from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:206:in `lookup' from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:203:in `each' from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:203:in `lookup' from /usr/lib/ruby/site_ruby/1.8/hiera.rb:60:in `lookup' from /usr/bin/hiera:225