Sometimes you won't have the ability to watch a Puppet run proceed. You will need to read the reports to see what happened. The Puppet Enterprise Console provides an interface for doing so, but sometimes it's useful to write scripts to show changes or to view more data than is visible in the Console. For this, we will look at the raw YAML report on the node itself.
The report configuration version can provide history as to which version of the Puppet codebase was used to generate the catalog applied. This allows you to correlate code changes to configuration changes.
In this lab, you'll look at your cached report and configure your environment's config_version
.
-
See what changes were made in the last Puppet run
grep -B 25 'changed: true' $(puppet agent --configprint lastrunreport)
Your output should look similar to this...
... change_count: 0 out_of_sync_count: 0 events: [] corrective_change: false File[/root/.bashrc.puppet]: !ruby/object:Puppet::Resource::Status title: "/root/.bashrc.puppet" file: "/etc/puppetlabs/code/modules/userprefs/manifests/bash.pp" line: 42 resource: File[/root/.bashrc.puppet] resource_type: File containment_path: - Stage[main] - Userprefs::Bash - File[/root/.bashrc.puppet] evaluation_time: 0.003285356 tags: - file - class - userprefs::bash - userprefs - bash - node - default time: '2017-03-17T19:13:20.811488070+00:00' failed: false changed: true
-
If no changes appeared, make a minor modification to a managed file and run a
puppet agent -t
.vim /root/.bashrc.puppet
, orvim /root/.zshrc.puppet
puppet agent -t
-
Take a look at the raw data in a report.
vim $(puppet agent --configprint lastrunreport)
-
Run the agent and check its configuration version:
puppet agent -t
Your output should look similar to this...
[root@training ~]# puppet agent -t Notice: Local environment: 'production' doesn't match server specified node environment 'training', switching agent to 'training'. Info: Retrieving pluginfacts Info: Retrieving plugin Info: Loading facts Info: Caching catalog for training.puppetlabs.vm Info: Applying configuration version '1489778215'
-
Validate the
config_version
of your environment by reviewing theenvironment.conf
file:cat ~/control-repo/environment.conf
Example file:
[environment]/environment.conf
modulepath = site:modules:$basemodulepath config_version = 'scripts/config_version.sh $environmentpath $environment'
-
Run the agent and check its new configuration version:
puppet agent -t
Your output should look similar to this...[root@training ~]# puppet agent -t Notice: Local environment: 'production' doesn't match server specified node environment 'training', switching agent to 'training'. Info: Retrieving pluginfacts Info: Retrieving plugin Info: Loading facts Info: Caching catalog for training.puppetlabs.vm Info: Applying configuration version '`#{compiling_master}-#{environment}-#{commit_id}`'
-
Compare the configuration version to that of your development repository.
- Linux:
git rev-parse --short HEAD
- Windows: see the most recent commit listed for your branch of the control repository.
- Linux:
| Previous Lab | Next Lab |