Foreman 1.10 and Puppet 4

Hi there

Unfortunately I'm a bit confused as to Foremans compatibility with open
source Puppet 4.x. In the Foreman 1.10 manual there is this section '3.1.2
Puppet Compatibility' where it says Puppet version 4.x is not supported.
But in the release notes on the same page there is this 'installer modules
have been updated…' section where it says puppet-foreman, version 4.0.1.
From this I infer that Puppet 4.x is supported by the latest Foreman
version (1.10).

Currently I'm running open source Puppet 3.8.4 and Foreman 1.9.3 and I
would like to update to os Puppet 4.x and Foreman 1.10 but I'm uncertain if
that is stable or if it still needs some tinkering with stuff that might be
too complicated for me.

Any hints on how to understand/interpret those informations from the
foreman manual are much appreciated!

Best regards,
Cyril

>
> Hi there
>
> Unfortunately I'm a bit confused as to Foremans compatibility with open
source Puppet 4.x. In the Foreman 1.10 manual there is this section '3.1.2
Puppet Compatibility' where it says Puppet version 4.x is not supported.
But in the release notes on the same page there is this 'installer modules
have been updated…' section where it says puppet-foreman, version 4.0.1.
From this I infer that Puppet 4.x is supported by the latest Foreman
version (1.10).

Not exactly. The Foreman installer is written in Puppet, as a collection of
modules, so that people can use these modules to continue managing their
install once it's set up. While the individual modules are now
Puppet4-compatible, the Foreman installer is not (due to library-loading
issues with the All In One packages).

Foreman's rake tasks also suffer some issues, since they try to load Facter
(which hits the same issue). Foreman 1.10 is probably ok with Puppet 4 if
the puppet gem is loadable in the system ruby stack, but it'll fail with
the AIO packages for now.

Short version - it might work with Puppet 4, but you definitely won't be
able to install with Puppet 4.

> Currently I'm running open source Puppet 3.8.4 and Foreman 1.9.3 and I
would like to update to os Puppet 4.x and Foreman 1.10 but I'm uncertain if
that is stable or if it still needs some tinkering with stuff that might be
too complicated for me.

I definitely wouldn't say "stable" yet. As noted, if puppet can be loaded
from the system ruby, then it might be OK, but from the AIO packages,
unlikely. It's something we're trying really hard to fix, but it's tricky.
Stay tuned to Tracker #8447: Puppet 4 support - Foreman for details.

Thanks,
Greg

··· On 12 January 2016 at 10:26, wrote:

Can you use Puppet 3.x to install Puppet 4.x and Foreman?

This may be a 'work-a-round' but it could help move things forward.

I.e. install a minimum puppet 3.x client then use that to install the rest!

It would then be possible to clean up the 'installer' as the last stage of
the install.

··· On Tuesday, January 12, 2016 at 5:36:30 AM UTC-5, cyril...@wlan-partner.com wrote: > > Hi there > > Unfortunately I'm a bit confused as to Foremans compatibility with open > source Puppet 4.x. In the Foreman 1.10 manual there is this section '3.1.2 > Puppet Compatibility' where it says Puppet version 4.x is not supported. > But in the release notes on the same page there is this 'installer modules > have been updated...' section where it says puppet-foreman, version > 4.0.1. From this I infer that Puppet 4.x is supported by the latest Foreman > version (1.10). > > Currently I'm running open source Puppet 3.8.4 and Foreman 1.9.3 and I > would like to update to os Puppet 4.x and Foreman 1.10 but I'm uncertain if > that is stable or if it still needs some tinkering with stuff that might be > too complicated for me. > > Any hints on how to understand/interpret those informations from the > foreman manual are much appreciated! > > Best regards, > Cyril >

Hi Greg

> > Currently I'm running open source Puppet 3.8.4 and Foreman 1.9.3 and I
> would like to update to os Puppet 4.x and Foreman 1.10 but I'm uncertain if
> that is stable or if it still needs some tinkering with stuff that might be
> too complicated for me.
>
> I definitely wouldn't say "stable" yet. As noted, if puppet can be loaded
> from the system ruby, then it might be OK, but from the AIO packages,
> unlikely. It's something we're trying really hard to fix, but it's tricky.
> Stay tuned to Tracker #8447: Puppet 4 support - Foreman for details.
>
>
Thanks a lot for the fast and substantial answer! That clarifies it for me
and I will keep an eye on that issue8447.

Best regards,
Cyril

Hi Michael

Can you use Puppet 3.x to install Puppet 4.x and Foreman?
>
> Unfortunately I'm not quite sure if you're asking the community or me.
Either way here is my reply.

> I.e. install a minimum puppet 3.x client then use that to install the rest!
>
> Since I'm a Puppet newbie and don't have a lot of time for experiments I
prefer to wait for Puppet 4 to be officially supported. Besides I don't
really understand how one is supposed to use a client (node?) to install
anything. As I understand Puppet I need the master to install stuff on the
nodes and not the other way around.

> It would then be possible to clean up the 'installer' as the last stage of
> the install.
>
Again I don't really understand what I would be supposed to do here. So as
mentioned before I will wait for P4 to be officially supported.

Thanks again anyway for the ideas and good luck to anybody who wants to try
it like Michael suggested.

Best regards,
Cyril

Hi Cyril,

You guessed correctly my response was directed to the developers.

Thank you for pointing out that I had got in a bit deep :wink:

The puppet client has the ability to ' Apply a standalone Puppet manifest
to the local system'.

Unless I am mistaken is how the Foreman installer works. In that Foreman
uses Puppet to install Foreman. See Greg's response &
http://docs.puppetlabs.com/puppet/3.8/reference/man/apply.html

I am suggesting that they (the developers) install a Puppet 3.x client to
then install Puppet 4.x and Foreman.

Regards Mike.

··· On Thursday, January 28, 2016 at 11:08:05 AM UTC-5, cyril...@wlan-partner.com wrote: > > Hi Michael > > Can you use Puppet 3.x to install Puppet 4.x and Foreman? >> >> Unfortunately I'm not quite sure if you're asking the community or me. > Either way here is my reply. > > >> I.e. install a minimum puppet 3.x client then use that to install the >> rest! >> >> Since I'm a Puppet newbie and don't have a lot of time for experiments I > prefer to wait for Puppet 4 to be officially supported. Besides I don't > really understand how one is supposed to use a client (node?) to install > anything. As I understand Puppet I need the master to install stuff on the > nodes and not the other way around. > > >> It would then be possible to clean up the 'installer' as the last stage >> of the install. >> > Again I don't really understand what I would be supposed to do here. So as > mentioned before I will wait for P4 to be officially supported. > > Thanks again anyway for the ideas and good luck to anybody who wants to > try it like Michael suggested. > > Best regards, > Cyril >

You almost certainly can, equally I'm fairly certain it won't be trivial.

I've just about finished upgrading to Puppet 4 here at home - I use the
installer modules in my production environment, so while it's not "puppet
apply" it's comparable. Notwithstanding the few nights it took me to go
over the pre-upgrade checks (i.e testing my manifests with the future
parser etc), the main issues were:

  • Installing the puppetserver while the puppetmaster was still running - I
    broke puppet entirely for about 45min while switching over.
  • Total change of file paths - from /etc/puppet and /var/lib/puppet to
    /etc/puppetlabs and /opt. This leads to a lot of parameter overrides to
    set things back to the old way until I have time to actually move the
    contents on-disk to match.
  • Loading puppet in the smart-proxy - the proxy runs on system ruby and
    thus can't load the AIO puppet library. You have to "gem install puppet" in
    the proxy's environment, and then watch out for binaries ending up in the
    path that have a higher precedence than /opt/puppetlabs/bin

There were a host of other small issues, but those were the big ones. It
took me 2 nights work to get it happy, with probably another one or two to
go for undoing those filepath overrides.

So, yes, Foreman can work with Puppet 4. But it's not trivial, and
certainly very fragile as an "official" install path - we're much better
working through the issues in the installer itself. The clean-up definitely
works though - I was repeatedly running the modules in no-op mode to see
what other overrides I needed to put in place.

Sorry for the doom & gloom - we will get there though!