Migrating to Puppet 4.5.2

puppetpuppet-agentrhel6

We are migrating to later versions of puppet.

New Version:

# puppet --version
4.5.2

Existing Version:

#puppet-3.8.7

Our existing site.pp is as follows:

#A default site.pp to do a quick test run
import "../classes/*"
import "../nodes/*"
   file { 'testfile':
       path => '/home/test/testfile',
       ensure => present,
       mode => 0755,
       content => "A test file to check a different manifestdir" ,
      }
 Exec { path => ["/bin" , "/sbini/", "/usr/bin" , "/usr/sbin/"]  }

Now since we are migrating to Puppet 4, i think below import function to include multiple pp files will not work here in Puppet 4

import "../classes/*"
import "../nodes/*" 

If I am not wrong then I can copy all manifests under classes and nodes directory to the below manifest directory

/apps/puppetlabs/code/environments/production/manifests/site.pp          

Please suggest how to update the manifests to the later versions of Puppet or there is no compatibility issues ?

Best Answer

If I am not wrong then I can copy all manifests under classes and nodes directory to the below manifest directory

Yes, the manifest directory will be imported recursively, so this is the best thing to do.

Please suggest how to update the manifests to the later versions of Puppet or there is no compatibility issues ?

There are many subtle changes, so test your manifests on Puppet 3 with the future parser (--parser future) to see how well they work.

Start with Puppet 3.x to 4.x: Get upgrade-ready, release notes and Puppet 3.8 deprecations.