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'