What is the Order of Execution of a Puppet Manifest?

Problem scenario:  When someone uses a .pp file (either through a puppet agent call from a Puppet Agent node or via a puppet apply on a Puppet Master server), what order can a human DevOps Engineer expect the order to be?

Answer:  The execution order of a given manifest is the top of the manifest is executed and Puppet works its way down from there. 

How Do You Troubleshoot a Puppet Manifest when The Errors and Logging Do Not Help You?

Updated on 6/8/20
This version is the unabridged version. For the abridged version, you may click here.

Problem scenario
A Puppet manifest is not working, but there are no obvious error messages.  When running the puppet agent command, you use the -d flag for debugging.  In your manifest, you use logoutput => true stanza.  But still, you cannot figure out why your manifest is not working.

Doing Bash Arithmetic with Greater Precision than Integer Values

Problem scenario:  Using Bash you want to compute kB, MB, and GB with decimal values.  But you only seem to be able to do arithmetic on integer values.

Root cause:  Bash does not support “float” arithmetic with values to the right of the period.  Decimal values cannot be calculated.

Solution:  Install the bc utility/language (e.g. yum -y install bc). It is often used in Bash to augment the numeric processing features. 

What Should Be Done About the Discrepancies Between Local Group Policy Editor and the Registry Settings?

Question:  What Should Be Done About the Discrepancies Between Local Group Policy Editor and the Registry Settings?

Solution:  Nothing.  To open the Local Group Policy Editor in Windows Server 2012, either go to PowerShell and type “gpedit.msc” with no quotes. Or without PowerShell go to the Windows button on the desktop and go to the search field.  Search for “gpedit” with no quotes.  Click on the result (usually just one). 

How Do You Upload Files to Nexus 3 in a Docker Container on Linux CentOS?

Problem scenario
You want to upload files into Nexus 3 running in a Docker container.  You installed Nexus 3 with Docker 1.9 using these directions. The OS is CentOS 7.2.  The web UI for Nexus 3 works via Docker, but you cannot upload files into any repository. When you go to Repositories, but you do not see the “Artifact tab.”  How do you upload files?

Solution
Prerequisite
Install Docker;

How do you install Hadoop on Linux SUSE?

Updated on 1/1/18
You may want to see this different posting that works for Linux SUSE as well as other non-SUSE distributions of Linux.

Problem scenario
You want to install the open source version of Hadoop 3.0.0 on Linux SUSE 12 SP3.  What do you do?

Solution
These directions would work on a non-SUSE distribution if you install Java a different way from the first command in the script. 

How Do You Download Big Files with PowerShell?

Problem scenario
You want to download a very large file using PowerShell (from a file share on your network or URL on the Internet).  But the file is larger than the available RAM on your server.  How do you download a large file using Powershell?

Solution
Invoke-restmethod, Invoke-webrequest, curl and wget (even with the redirect “” command) all put the file being downloaded into memory. 

How do you run Windows Malicious Software Removal Tool?

Problem scenario:  You go to the Start menu and type in the box “malicious” or “Windows Malicious Software Removal Tool” and no program shows up.  You go to “Programs and Features” in the “Control Panel” but you cannot find anything with the word “Malicious” in it.  How do you run Windows Malicious Software Removal Tool?

Solution from a command prompt:  Open a command prompt (hold the Windows button and tap “r”). 

How Do I Create a Manifest with Puppet Enterprise to be run on a server other than the Puppet Master server itself?

Question: How Do I Create a Manifest with Puppet Enterprise to be run on a server other than the Puppet Master server itself?

Assumption:  Puppet Master is installed on a Linux server.

Answer:  Manifests are .pp files.  The Puppet syntax (with its domain specific language) is beyond the scope of this posting.  This post is to get you started. Go to the directory where the modules are on the Puppet Master server. 

How do I get a forward slash (“/”) to be passed from a Puppet manifest on a Linux server with Puppet Master to a Windows server with Puppet Agent?

Question:  How do I get a forward slash (“/”) to be passed from a Puppet manifest on a Linux server with Puppet Master to a Windows Server with Puppet Agent?

Answer # 1 (for creating Scheduled Tasks with Puppet manifests): For a Scheduled Task, the forward slash may be crucial.  A forward slash (that Puppet between Linux and Windows will automatically substitute for a back slash) with a shutdown.exe server is the only way for a reboot to work properly with a Scheduled Task.