I upgraded the puppet server from 2.1.1-1 to 2.7.2-1 and at the same time 
the puppet agent was upgraded from 1.2.2-1 to 1.10.4-1.

I read several different posts on this forum and others but I can't seem to 
get hiera 5 to work properly.  I tried a couple of different hiera.yaml 
config files yet nothing seems to work correctly.  I've tried to use the 
old hiera.yaml version and getting the expected depricated warning.  The 
Puppet doci on V5 and converting is not the greatest.

Our hiera config uses both json files and couchdb.  Everytime I run puppet 
lookup I get:
[root@xlabsvcpup4 code]# puppet lookup pup_url
Warning: /etc/puppetlabs/code/hiera.yaml: Use of 'hiera.yaml' version 3 is 
deprecated. It should be converted to version 5
   (in /etc/puppetlabs/code/hiera.yaml)
Warning: Undefined variable '::my_role';
   (file & line not available)
Error: Could not run: HTTP request path is empty

Current hiera.yaml file:
[root@xlabsvcpup4 code]# cat hiera.yaml
---
:backends:
  - http
  - json
  - yaml
:hierarchy:
  - "%{::clientcert}"
  - "%{::environment}/%{::clientcert}"
  - "%{::environment}/%{::my_role}"
  - "%{::environment}/common"
  - "%{::my_role}"
  - common
:json:
  :datadir: /u01/hieradata/
:yaml:
  :datadir: /u01/hieradata/
:http:
  :host: couchdb.com
  :port: 5984
  :output: json
  :failure: graceful
  :use_auth: true
  :auth_user: 'userid'
  :auth_pass: 'password'
  :paths:
    - /hieradb/%{::clientcert}
    - /%{::environment}/%{::my_role}
    - /%{::environment}/common
    - /hieradb/%{::my_role}
    - /hieradb/common

I tried to use this version 5 config file:
---
version: 5

defaults:
  datadir: "/u01/hieradata"
  data_hash: json_data

hierarchy:
  - name: "json files"
    paths:
        - "%{::clientcert}.json"
        - "%{::environment}/%{::clientcert}.json"
        - "%{::environment}/%{::my_role}.json"
        - "%{::environment}/common.json"
        - "%{::my_role}.json"
        - common.json
  - name: "Couchdb"
    options:
        connections:
            hiera3_backend: hiera-http
            host: couchdb.com
            output: json
            failure: graceful
            use_auth: true
            auth_user: 'userid'
            auth_pass: 'password'
            paths:
               - /hieradb/%{::clientcert}
               - /%{::environment}/%{::my_role}
               - /%{::environment}/common
               - /hieradb/%{::my_role}
               - /hieradb/common
When I use the V5 config i get:
Warning: Undefined variable '::my_role';
   (file & line not available)
Error: Could not run: 'json_data' one of 'path', 'paths' 'glob', 'globs' or 
'mapped_paths' must be declared in hiera.yaml when using t


-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/c18c3f70-d65b-4de9-96b1-d56602b782e3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to