One of the useful tools for an upgrade situation is the Catalog Preview 
tool. It requires Puppet 3.8, which should be a much smaller jump for you 
(3.7 -> 3.8) to begin with. It'll probably help soothe worries for the ops 
team by allowing a level of testing and certainty before the big jump.

It's pretty rad, because it will compile catalogs in the Puppet 3 format, 
and compare them with catalogs compiled with "future parser" turned on, 
which was the Puppet 4 compatibility mode avaliable for Puppet 3 for 
helping to upgrade.

Setup steps are here: https://forge.puppet.com/puppetlabs/catalog_preview

Another tool that's used is Githubs Octocatalog-diff
 https://github.com/github/octocatalog-diff 
<https://github.com/github/octocatalog-diff>, which is similar to 
catalog-preview

*<Personal opinion>*I generally recommend a cutover to a completely new 
infra, rather than trying to upgrade in place. This is more philosophical 
than technical, as it's probably easier if you have the server resources to 
create a new shiny Puppet 4 infra, then slowly just point old servers to 
the new shiny servers in batches, picking the easiest or least breaking 
servers first (eg. lab, dev, canary servers for testing) rather than trying 
to big-bang upgrade everything at once and worrying about rollback. But I 
know this can be a harder battle with change windows and getting everyone 
aligned.*</Personal opinion>*

In terms of automation, the new Bolt tool would be perfect for you here, as 
you can use bolt to run the commands needed to move servers to the new 
infra. 

We have a bootstrap task 
<https://github.com/puppetlabs/puppetlabs-bootstrap> avaliable, but right 
now it's PE only (it uses a particular script we host to bootstrap Puppet, 
open-source support is coming in the future) but it wouldn't be too hard to 
just use bolt to either run a script (Such as my
 https://github.com/petems/puppet-install-shell 
<https://github.com/petems/puppet-install-shell>) or write your own 
organisational specific task to do the steps you need, and rollback if 
something goes wrong.

I'd also recommend the following talks and blogposts about Puppet 3->4 
upgrades:

   - Rob Nelsons talk about AT&T's upgrade from PuppetConf 2016 (
   https://www.youtube.com/watch?v=FWnj0xQOZN8)
   - Nacho Barrientos talk about CERN's Puppet 4 update (
   
https://puppetconf17.sched.com/event/B4wI/a-not-so-bumpy-road-to-puppet4-at-cern-nacho-barrientos-cern
 Vids 
   not out yet, soon!)
   - Skroutz's blogpost about their upgrade (
   https://engineering.skroutz.gr//blog/upgrading-puppet3-to-puppet4/
   - Githubs blogpost about their Puppet 4 Upgrade: 
   https://puppet.com/blog/upgrading-to-puppet-4-at-github
   
There's also the #upgraders room on the Puppet Slack channel if you have 
other questions :) Feel free to ping me there with questions, if I'm around 
I might be able to help (@petems)

On Wednesday, October 11, 2017 at 9:15:02 PM UTC+1, Michael Watters wrote:
>
> Been through a similar upgrade myself.  The first step would be to spin up 
> a new puppet master running Puppet Server.  You can copy over the SSL dir 
> from your old/current master to avoid SSL errors on the agents.  For 
> testing you'll want to make sure your manifests work correctly using the 
> future parser, that can be enabled in the puppet.conf file on the agents.  
> Setting up a separate environment for testing is also recommended.
>
> Puppet Server will work with 3.7 clients so once you have a manifest that 
> compiles correctly you can just point the agents to the new master's IP.
>
>
> On Wednesday, October 11, 2017 at 8:07:13 AM UTC-7, Salty Old Cowdawg 
> wrote:
>>
>> About three years ago (4 years ago?) I deployed a Puppet infrastructure 
>> for my company and department based on FOSS Puppet 3.7.   Given that's been 
>> deprecated of course I'm very much looking to migrate to Puppet 4.   
>> Besides for about three months I worked for another company and got spoiled 
>> by Puppet 4. 
>>
>> So I'm back at my old digs and assessing what it will take to go from P3 
>> to P4.   Here are some of the things I have to think about
>>
>> 1) the migration needs to be fully automated both on the server end and 
>> the client end. 
>> 2) no really.... this is going to be done by operations personnel who 
>> have a low threshold of fright for Puppet in spite of my best efforts to 
>> desensitize them.
>> 3) There is as penetrable firewall between me (developer) and the Puppet 
>> infrastructure servers and clients so I cannot personally intervene
>>
>> Anybody out there been through this pain and have any suggestions and 
>> pointers on how to make this happen with minimal "breakage?" 
>>
>

-- 
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/d20e2bab-e3de-4cd0-aa90-89b1ccbfc3a7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to