SIMP 6.4.0 ALPHA ISO Installation Instructions

The SIMP 6.4.0 Alpha release has not been tested with upgrades.  These instructions are only for

installing from the ISO and should not be used on an existing system.


Before You Start

The primary purpose of the 6.4.0 release is to make SIMP compatible with R10K.  This meant a major change to the installation

procedures of SIMP.


SIMP 6.4.0 ISO workflow  describes the SIMP configuration before and after.  It will help to review this at the very least for

the discussion on the different parts of the SIMP environment.


Installing 6.4.0 from ISO:

Boot from the ISO

The biggest change in this step is that the SIMP modules are installed under /usr/share/simp as git repos.  The repo is tagged with the

release installed from the ISO.

Also the data that was previously installed into the Secondary SIMP Environment (/var/simp/environments/simp) is now installed

in a skeleton directory under /usr/share/simp.  The purpose of this is so that no operational files are changed during installation

of the RPMs.  All this will be done by commands specifically run by the user.

Create the SIMP Environment

This section is currently handled by a temporary script installed in /usr/local/sbin.  It will be handled more gracefully and thoroughly in the

BETA.  This script does not remove or overwrite any environments.  (The final product will be more helpful).

Since installing puppet creates a blank production environment you need to remove this

        rm -rf  /etc/puppetlabs/code/environments/production

Then run the script to create the production environment:

       /usr/local/sbin/simpenv -n production

This will create the Puppet environment called "production" under /etc/puppetlabs/code/environments and copy the SIMP hiera data hierarchies from

the skeleton.  It will also create the Secondary Environment (/var/simp/environments)  and the Writeable Environment.  See  SIMP 6.4.0 ISO workflow for

information on the different environments.

Add Your Modules

The simpenv command also creates the Puppetfile in the Puppet environment directory (/etc/puppetlabs/code/environments/production) that R10K will use to deploy your modules. 

There are 2 parts,  Puppetfile, which is a shell that you should use to add any of your own repositories.  This shell includes the other file generated, Puppetfile.simp, which points

to all the simp repos installed under /usr/share/simp/modules.

If you have modules in git repos, they can be added here in the Puppetfile and they will be deployed into the environment when r10k is run.

     cd /etc/puppetlabs/code/environments/production

     vim Puppetfile


Note:  The Puppetfile creation can be done manually by calling the simp command but you do not need to do this if

you used the /usr/local/sbin/simpenv command.

      #To generate the shell Puppetfile:

      simp puppetfile generate --skeleton > /etc/puppetlabs/code/environments/production/Puppetfile

      # To generate the Puppetfile.simp file:

      simp puppetfile generate > /etc/puppetlabs/code/environments/production/Puppetfile.simp


Deploy Modules into the Environment

R10K is used to deploy the modules into the environment.  

   cd /etc/puppetlabs/code/environments/production

   umask 0027

   sg puppet -c '/usr/share/simp/bin/r10k puppetfile install --puppetfile /etc/puppetlabs/code/environments/production/Puppetfile --moduledir /etc/puppetlabs/code/environments/production/modules'


Configure and Bootstrap

At this point you are ready  to run simp config and bootstrap.   In the future running the configuration will take care of creating an environment

for you.  Since this is not completely developed,  that was done previously with the /usr/local/sbin/simpenv script.  So you need to tell simp

to use an existing environment:

    simp config --force-config

Note: simp config is now installing into an environment called "production" instead of "simp"

When this is complete, run  the bootstrap

    simp bootstrap


The Temporary Script

The temporary script, /usr/local/sbin/simpenv,  allows you to create new environments to test in.  The Secondary and Writable environments might not need

to be created from scratch.  For instance the Secondary environment contains rsync data and certificate data.  If you do not need

a separate CA and want to use the same rsync data then when you create a new environment you can link it to the old environment

or you can copy the data over if your environment will be short lived and you are not worried about changes in the original environment.

Run /usr/local/sbin/simpenv --help for more information on creating a new environment.


You can also use  simpenv to list the environments you have by running simpenv --list.   This lists the 3 environment directories.  If you have an

environment, there should be a directory for it under each of these. 



Updating Puppet Modules

If there are patches to a module then this RPM can be installed using yum.  This will update the repo in /usr/share/simp

with the updates and the latest tag.  To deploy the changes to an environment that already exists, in this example, production,  run

cd /etc/puppetlabs/code/environments/production

simp puppetfile generate > /etc/puppetlabs/code/environments/production/Puppetfile.simp

umask 0027

sg puppet -c '/usr/share/simp/bin/r10k puppetfile install --puppetfile /etc/puppetlabs/code/environments/production/Puppetfile --moduledir /etc/puppetlabs/code/environments/production/modules'