Satellite has the capability to make facts available to puppet-clients through its ENC.
This process however is not documented well on Satellite’s , nor on Puppets documentation.
Take for example a class on the puppet-forge that requires some input for optional couplings:
This class has some optional parameters:
# # $ldap = { # hostname => 'ldap.example.com', # ssl => true, # port => '636', # dn => 'o=example', # bind_dn => "cn=admin,ou=system,o=example", # bind_password => "admin123", # admin_user => "sysadmin", # guest_user => "guest" # }
Many blocks on the puppet forge have code like this, its a hash with values that should be enabled.
The puppet-initiates who have not yet fully grasped satellite, might implement it as following.
Create a new class, for instance:
class oliekoets_archiva { 'archiva::ldap' : hostname => 'ldap.oliekoets.nl', ssl => true, dn => 'cn=users,cn=accounts,dc=oliekoets,dc=nl' ....
This however, is completely unnessecary in Satellite with the ENC.
Within satellite, override the archiva::ldap variable and change its type from ‘string’ to ‘hash’
Now the hash-type accepts any valid json or yaml input, as long as it validates to a legal puppet object.
Here we go:
ldap: hostname: - ldap.oliekoets.nl - ldap2.oliekoets.nl ssl: true port: 636 dn: cn=users,cn=accounts,dc=oliekoets,dc=nl ....
Doublecheck by asking satellite to display its YAML enc:
--- classes: archiva: ldap: hostname: - ldap.oliekoets.nl - ldap2.oliekoets.nl ssl: true port: 636 dn: cn=users,cn=accounts,dc=oliekoets,dc=nl ....
And thats all there is to it.
Mark.