Hiera Example

From stoney cloud
Jump to: navigation, search
---
:backends:
  - ldap
  - yaml
  - json
:ldap:
  :url:ldaps://ldap.stoney-cloud.org:636/
  :binddn:cn=Manager,dc=stoney-cloud,dc=org
  :bindpw:secret
  :basedn:dc=stoney-cloud,dc=org
:yaml:
  :datadir: /etc/puppet/hieradata
:json:
  :datadir: /etc/puppet/hieradata
:hierarchy:
  - "ou=virtual machines,ou=services?sub?(&(sstNetworkHostName=%{::hostname})(sstNetworkDomainName=%{::domainname}))"
  - "ou=software stack,ou=configuration?sub?(uid=%{::rzUid})"
  - "%{::clientcert}"
  - "%{::custom_location}"
  - common
---
:backends:
  - json
:json:
  :datadir: /etc/puppet/hieradata
:hierarchy:
  - "%{::clientcert}"
  - "%{::custom_location}"
  - common

Notes:

  • This is an example of how a hiera config file might look with an mock ldap backend. The backend in question still needs to be found or written.
  • mapping from a DN to directory structure would be nice, so we would rather have to write: ou=virtual machines/ou=services instead to be compatible with the already existing yaml/json backends or something different entirely
  • this needs to take into consideration that puppet expects keys to be defined in a way to enable implicit parameter injection in parameterized classes
  • existing ldap backends for hiera: [1], [2]
  • we should probably aim at integrating this in hiera-2 with regards to ARM-8 and the already imlemented ARM-9
  • I'm not convinced that we should not just grab all this data from the stoney_core:_REST_API and use that as an integration point for puppet.