4.7.1. General Upgrade Instructions

4.7.1.1. Incremental Updates

For Y and Z SIMP changes, you should feel comfortable dropping the changes directly into your test systems. The promotion cycle from test to production should be short and painless.

For RPM-based systems, a simple yum update should suffice after adding the necessary packages to your site yum repositories. If you are using r10k or Code Manager, you will need to work with the upstream Git repositories as appropriate for your workflow.

Note

If you started with an ISO installation, an easy way to get your entire local SIMP distribution updated is to download the new SIMP ISO and run unpack_dvd </path/to/ISO>.

Important

Be sure to review any version-specific upgrade instructions prior to executing the incremental upgrade. Although this type of upgrade will not contain any breaking changes, there may be specific instructions that you should follow to facilitate the upgrade process.

4.7.1.2. Breaking Changes

If the X version number has changed then you should expect major breaking changes to the way SIMP works. Please carefully read the Changelog and the new User’s Guide and do not deploy these changes directly on top of your production environment.

Important

Upgrading SIMP does not require re-kicking your clients, even if some core services move to the new Puppet node. All software configurations can be updated in Puppet, as needed.

4.7.1.2.1. New Server Creation and Client Migration

The recommended method for upgrading breaking changes is to create a new Puppet Server and migrate your data and clients to it. This process follows the path of least destruction; we will guide you through how to back up the existing Puppet server, create a new server, and transfer your clients.

  1. Set up a new Puppet server that will house your new SIMP environment.

    Note

    You must ensure that this node can be reached by any client that is to be migrated. The new system will not interfere with your existing Puppet system unless you specifically configure it to do so.

    Important

    Do NOT destroy your old Puppet server until everything has been successfully migrated and is in production under the new server.

  2. Consider vital services other than Puppet that are housed on your current Puppet server node (eg. DNS, DHCP, LDAP, custom kickstart, YUM, NFS, etc.). You may choose to keep many of these services running on your old Puppet server node. Anything not preserved must be migrated to a new system.

4.7.1.2.1.1. Back Up the Existing Puppet Server

Prior to any modifications to your infrastructure, we highly recommend following HOWTO Back up the Puppet Master.

4.7.1.2.1.2. Create a New Server

Obtain an official SIMP ISO or point your server at the latest YUM Repositories and follow the Installing SIMP from an ISO.

Follow the Client Management guide, and set up services as needed. Remember, you can opt-out of any core services (DNS, DHCP, etc.) you want your clients or old Puppet server to run! If you want the new Puppet server to run services the existing Puppet server ran, you may be able to use the backup of the rsync directories from the old system.

Warning

Do not blindly drop rsync (or other) materials from the old Puppet server onto the new one. This is a breaking version and the required structures for these components may have changed.

When you Apply Certificates you may wish to transfer client certs to the new server. If you are using the FakeCA and still wish to preserve the certificates, follow the Installing Official Certificates guidance, and treat the existing Puppet server as your ‘proper CA’.

4.7.1.2.1.3. Promote the New Puppet Server and Transfer Your Clients

Follow the HOWTO Change Puppet Servers guide to begin integration of your new Puppet server into the existing environment.

Note

You should always start migration with a small number of least critical clients!

4.7.1.2.1.4. Retire the Old Puppet Server

Once you have transferred the management of all your clients over to the new Puppet server, you may safely retire the old Puppet server.