Hi guys, I want realise a role-based puppet-configuration. What I mean is this: There should be a simple external text-file, which contains "hostname/node --> role" association. Then there should be a class-definition for each role. In this way, I want to associate a server with different roles. In this way, Puppet should look for the hostname of the Puppet-Agent in the external file and see what roles it should have and then execute the role-classes. I hope I could explain my problem. The problem is, that I''ve no idea how to realise it. Please help -- 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+unsubscribe@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
Hi,
What you''ll need is some way to classify nodes, I do this through
Hiera.
Per node I have a yaml file named after the host: hostname.yaml with the
following:
---
roles:
- ''::role::somerole''
In manifests/site.pp I only define one node, the default:
node default {
hiera_include(''roles'', [])
}
Now when hostname checks in it will hit node default and a hiera lookup
will be done for an array named ''roles'', which I just defined
in the yaml
file. If it''s found those roles, which are actually a puppet module,
are
included on the host/in the catalog and get applied. If not we return an
empty array so nothing happens, you can also chose not to provide a default
in which case it will error.
As for how to organise roles and profile in Puppet, Craig Dunn has a very
nice post that should get you started:
http://www.craigdunn.org/2012/05/239/
--
Daniele Sluijters
On Friday, 25 October 2013 19:08:39 UTC+2, Steven Jonthen
wrote:>
> Hi guys,
>
> I want realise a role-based puppet-configuration. What I mean is this:
> There should be a simple external text-file, which contains
"hostname/node
> --> role" association.
> Then there should be a class-definition for each role. In this way, I want
> to associate a server with different roles.
> In this way, Puppet should look for the hostname of the Puppet-Agent in
> the external file and see what roles it should have and then
> execute the role-classes.
>
> I hope I could explain my problem. The problem is, that I''ve no
idea how
> to realise it.
> Please help
>
--
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+unsubscribe@googlegroups.com.
To post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users.
For more options, visit https://groups.google.com/groups/opt_out.
Ok thanks! That helps me a lot! I''ll do research on your hints and come back if I''ve questions. Thanks a lot! -- 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+unsubscribe@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
I''ve a question: What does this mean/how is this realized?: ''::role::somerole'' Is this a module or a manifest? What is "role" and what "somerole"? How does the content look like and where do I have to create it? Can you give me an example? -- 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+unsubscribe@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
In that example, ''role'' is a module, and
''role::somerole'' is a class
in that module:
/etc/puppet/modules/role/manifests/somerole.pp:
class role::somerole {
...
}
- Chad
On Sat, Oct 26, 2013 at 7:58 AM, Steven Jonthen
<coffeejunkeysteve@gmail.com> wrote:> I''ve a question:
> What does this mean/how is this realized?:
> ''::role::somerole''
>
> Is this a module or a manifest? What is "role" and what
"somerole"? How does
> the content look like and where do I have to create it?
> Can you give me an example?
>
> --
> 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+unsubscribe@googlegroups.com.
> To post to this group, send email to puppet-users@googlegroups.com.
> Visit this group at http://groups.google.com/group/puppet-users.
> For more options, visit https://groups.google.com/groups/opt_out.
--
Chad M. Huneycutt
--
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+unsubscribe@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/CAOJfo155Fy6L3083ppdtTnbKyFPc1_FaCZR71oiBXjB3XrxiQQ%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.