I've been looking for a module for Cobbler, one which allows me to install a
kickstart mirror, configure the repos, distros, profiles and systems, as well
the basic settings.
I found:
- A very old thread started by Sven Muller about writing a cobbler provider
http://groups.google.com/group/puppet-users/browse_thread/thread/b128386cab3a8d3e
- A couple of existing, but quite basic modules:
https://github.com/actionjack/puppet-cobbler
http://forge.puppetlabs.com/ghoneycutt/cobbler
Unfortunately these seem to attempt only to manage /etc/cobbler/settings, and
nothing else.
Does anyone know of something I could use or build upon?
Cheers,
N
Cobbler manages all its internal info. To get Puppet to manage it would, IMO, either involve hacking Cobbler or wrapping Cobbler command line calls in Puppet "exec" resources.
Sounds messy to me.
I keep both Cobbler and Puppet in a Subversion repository. I used this as a model to start from:
<http://consultancy.edvoncken.net/index.php/HOWTO_Set_up_a_Subversion_repository_for_provisioning>
and modified things to fit my environment.
If you want to preserve the contents of Cobbler, just back up /var/lib/cobbler/config/
Everything is in the JSON files.
“Sometimes I think the surest sign that intelligent life exists elsewhere in the universe is that none of it has tried to contact us.”
Bill Waterson (Calvin & Hobbes)
> --
> You received this message because you are subscribed to the Google Groups "Puppet Users" group.
> To post to this group, send email to puppet...@googlegroups.com.
> To unsubscribe from this group, send email to puppet-users...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
>
Yes - I had imagined the latter.
> Sounds messy to me.
Yes again. But then that's nothing new in this field.
> I keep both Cobbler and Puppet in a Subversion repository. I used this as a
> model to start from:
> <http://consultancy.edvoncken.net/index.php/HOWTO_Set_up_a_Subversion_repository_for_provisioning>
>
> and modified things to fit my environment.
Interesting; although there's a big blank there when it gets to Puppet.
> If you want to preserve the contents of Cobbler, just back up
> /var/lib/cobbler/config/ Everything is in the JSON files.
I keep Puppet in Git. However, it is not documented and wasn't obvious to me
that you can version control the entirety of Cobbler and not tread on its toes.
However, if you are doing that, obviously it is possible, and this seems a good
way to sidestep the problem. For now, anyway.
I'll see if I can shoehorn the cobbler directories into my puppet repository
somewhere, perhaps under modules/cobbler/files...
Then the Puppet bit would just need to deploy that. (Ignoring SCM tracking,
which won't play nicely with a scheme like this, by default.) Actually since I'm
currently using a masterless Puppet config and checking the source out
everywhere, deployment would just be a matter of symlinking.
However, this is only able to cut and paste a working cobbler system, right? So
far as I can see, I can't use it to drive things from Puppet. What I was hoping
might be possible is to have one manifest defining a node's parameters, and use
external references within it (or a masterless equivalent along the lines of
[1]) to import these into Cobbler.
Thanks,
Nick
1. http://current.workingdirectory.net/posts/2011/puppet-without-masters/
My cobbler module[1] is pretty old and I imagine crusty by now. You
mentioned that the module was basic and implied you wanted to manage
other things.
What other things should a cobbler module be managing? Perhaps we could
work together on updating this module to offer more functionality and
flexibility.
[1] - http://forge.puppetlabs.com/ghoneycutt/cobbler
-g
--
Garrett Honeycutt
I am currently working in a pro-Microsoft-anti-Anything-Else environment that still uses a boatload of Linux servers to do all the "Ditch Digging". I have had a tough time convincing them to use this.
I have looked at Foreman. My first impression is that it has a much bigger "footprint" than what I am using now.
I could be convinced to give it a serious try, but the People Who Pay The Bills are another story.
Thanks for offering, anyway.
“Sometimes I think the surest sign that intelligent life exists elsewhere in the universe is that none of it has tried to contact us.”
Bill Waterson (Calvin & Hobbes)
Yes - in fact, I looked at Foreman first. The main reason I then looked at
Cobbler was that Foreman appeared to be very GUI/RDBMS oriented, and ideally I'm
looking for a way to keep everything in version control and generate our
deployment system via Puppet from there.
Can Foreman do that now? If so, I may go back and look again later.
Thanks,
N
Well, as I said, there's a limit to what you can set up. I was hoping to be able to:
- write a node definition manifest for a new machine
- include dhcp, dns, hostname and network definitions
- commit to Git
- deploy via Puppet
- have the provisioning server pick the config up and set up PXE, DHCP, and
DNS accordingly
- shortly after, boot a new machine, and during the PXE boot either
- have its MAC address recognised
- select the system from a menu
- have the provisioned with puppet and an appropriate hostname
- have puppet configure it in the pre-assigned role
To be able to do that with Cobbler, I'd need to be able have puppet configure
the distros, repos, profiles, and systems known to it.
Ideally, I'd be able to re-deploy a new Cobbler server in exactly the same way
as another node.
Of course, this is an idea - I'd probably settle for much less in the short term.
> Perhaps we could
> work together on updating this module to offer more functionality and
> flexibility.
I might be up for that later, but I've probably not got the luxury right now - I
need as much off-the-shelf stuff as I can get. Judging by James Turnbull's blog
post [1] on writing new types/providers, it might be fairly easy to do such a
thing for Cobbler, but I'm not primarily a Ruby developer nor very far into
Puppet, so the learning curve and risk of getting bogged down in some detail is
fairly high.
Cheers,
N
1. http://www.kartar.net/2010/02/puppet-types-and-providers-are-easy/
Cobbler has also an API you can talk to. There is a cobbler gem [1], [2]
that provides you an easy way to interact with the cobbler api from
ruby. It so far is known to work with Cobbler 2.0.x, but should probably
also work with any 2.x.
~pete
[1] https://rubygems.org/gems/cobbler
[2] https://github.com/duritong/ruby-cobbler