How Do You Find What Version of Chef That You Are Using on a Linux Server?

Question:  How Do You Find What Version of Chef That You Are Using On A Linux Server?  If you are not sure if Chef is installed or not on your Linux server, see this article.

Answers (one for Chef client and one for Chef server)
To find the version of Chef client that is installed, run this:

chef-client -v

If the response is “command not found” chef-client is not installed.  If chef-client is installed, the above command will result in a display of the version of chef-client.

[Sassy_Social_Share]

How Do You Get the Puppet Master Service to Run for The First Time?

Problem scenario
Your newly installed Puppet Master is not working.  The main service will not start.  You try this command:  service puppetserver restart

You see this as the results of the above command:
“Job for puppetserver.service failed because the control process exited with error code. See “systemctl status puppetserver.service” and “journalctl -xe” for details.”

You then try this command to see what is wrong (per the error message above):
systemctl status puppetserver.service

It results in this:

? …

How Do You Solve The Problem When Puppet Agent Returns an Error About “require_relative for main:Object”?

Problem scenario:  On a Linux server you run “puppet agent -t” to apply a manifest on a Puppet Agent.  You receive this error:

“Error: Could not retrieve local facts: undefined method ‘require_relative’ for main:Object”

What do you do to fix this?

Solution:  Install a compatible version of Puppet agent on the server.  One way to do this is to run this command:

curl -k https://continualintegration:8140/packages/current/install.bash | sudo bash`

#where “continualintegration” is the hostname (or FQDN) of the Puppet Master server.

How Can Puppet’s Logging Stay With a Manifest That Has a Long Duration On A Windows Server?

Problem scenario:  Some manifests kick off a non-Puppet script that has a long duration.  By default the manifest will time out after 300 seconds.  That means the manifest will not run properly if it cannot complete in five minutes.  How do you run long-duration manifests?

Solution (Part 1 of 2):  Use the timeout => directive.  For example in the Puppet manifest, have a stanza like this:

Puppet Needs To Use a Windows Network File Share: How Is This Done Consistently?

Problem Scenario:  You are using Puppet Master on Linux and Puppet Agent on Windows servers.  The manifest attempts to copy to or from a Windows network file share, but you are getting an error about the network path not existing.  The network file share has permissions that are open to Everyone.  What do you do?

Solution:  Puppet Agent will run PowerShell commands under the security context of the user who runs the “puppet agent -t -d” command. 

How Do You Control The Order Of When Puppet Manifests Are Applied to a Puppet Agent?

Problem scenario:  One Puppet manifest relies on another manifest to work.  Trying to apply them at the same time is not working.  The “require” and “before” keywords only seem to work for packages, exec, and file resources.  What do you do to order the manifests to satisfy dependency requirements of other manifests?

Solution:  The relationship dependency can be solved by the order in which they are applied.  

Puppet IIS Module Troubleshooting

Update on 3/30/17:  The Puppet IIS module has been updated, and the problem below has been eliminated.

Problem scenario:  You want Puppet to install IIS.  You install the IIS module and find the README.md file has this Puppet DSL (as of 12/13/16):

class mywebsite {
  iis::manage_app_pool {‘my_application_pool’:
    enable_32_bit           =true,
    managed_runtime_version =’v4.0′,
  }
   iis::manage_site {‘www.mysite.com’:
    site_path     =’C:\inetpub\wwwroot\mysite’,

How Do You Install Ansible on an AWS Instance of Linux SUSE?

Problem scenario
You want to use Ansible with Linux SUSE.  How do you install Ansible (the control node) on an AWS Instance of Linux SUSE?

Solution
Prerequisite
You must have 2.5 GB of memory (either in RAM or with a combination of RAM and swap space). For directions on how to configure swap space in the amount of 2 GB,

How To Install and Configure Salt Stack on RedHat Linux (AWS Instances)

Problem scenario
You want to install SaltStack on RHEL instances for the first time on an AWS server.

Solution in Three Parts
(If you want instructions on how to do this with Debian/Ubuntu and/or Linux SUSE, see this posting.)

Part 1  Create a Salt Master Server
1.  Create a RHEL instance and put it in a Security Group that has access to the Internet for this initial setup,