Skip to main content

Puppet

You can use this integration to:

  • Enable automation triggers for Puppet from Moogsoft Enterprise through the Puppet Orchestrator API.

  • Send alerts or Situations to Puppet with a payload to execute a task or plan in Puppet.

Templates define the Puppet tasks to carry out when an alert or Situation triggers, and also the mapping rules which generate the request payload. You define these as name:rule pairs in the Workflow Template Mapping Rules section. This integration also provides a sample Puppet module which contains a single plan and sample tasks.

A Template provides default rules. You can configure these to meet the requirements for your Puppet request. Contact your Puppet administrator for details.

After you configure an automation integration, Moogsoft Enterprise automatically creates the 'Puppet Alert' and 'Puppet Situation' workflow engines. You must define separate workflows to forward alerts or Situations to these workflow engines and process them using the following functions:

  • setPuppetAutomation: Sets the Puppet instance and job template rule set to use for an automation request.

  • sendToPuppet: Sends an automation request to Puppet.

See the Puppet documentation for details on Puppet components.

Before You Begin

The Puppet integration has been validated with the Puppet Enterprise Orchestrator API and Puppet Enterprise 2019.2 onwards. Before you start to set up your integration, ensure you have met the following requirements:

  • You know the following values:

    • Request payload of your Puppet implementation.

    • Authtoken for the Puppet instance you want to connect to.

    • API URL of your Puppet instance.

    • Proxy Settings: Configuration required to access Puppet.

  • You have installed the Puppet integration module (aiops) on the Puppet master. This is so you can use the sample plan and tasks Moogsoft Enterprise supplies.

Configure the Puppet Integration

To configure the integration:

  1. Navigate to the Integrations tab.

  2. Click Puppet in the Notification and Collaboration section.

  3. Provide a unique integration name. You can use the default name or customize the name according to your needs.

  4. Configure the Puppet automations for alerts or Situations to initiate and identify the payload you need.

  5. Define at least one instance. If you are running multiple instances of Puppet automation, identify any differences between them so you can configure these in the integration.

See the Puppet Reference for descriptions of all properties.

See Configure Payload Mapping Rules and Macros Reference for more information on mapping rules and macros.

Configure Puppet

To use the sample plan and tasks Moogsoft Enterprise supplies, copy the Puppet module to your Puppet (and optionally Bolt) installation directories on your Puppet master server. Edit sendtoaips.sh and set the Moogsoft Enterprise host, graze user and password to use for the request.

If you do not use the sample module, you must configure a Moolet Informs module to enable Puppet to send results back to Moogsoft Enterprise. In your Puppet task, you must also include additional arguments for event type, event id, automation tool, and automation tool instance. The following example demonstrates this.

Example

Define the following Moolet Informs module in the sendtoaiops.sh task:

curl -X POST -k -u ${grazeuser}:${grazepw} -H "Content-Type: application/json" -d 
'{
    "target":"PuppetAutomationResponse",
    "subject":"responseFromAutomation",
    "details":	
    {
        "ceventType":"'"${ceventtype}"'",
	"ceventId":'"${ceventid}"',
	"instance":"'"$	{instance}"'",
	"tool":"'"${tool}"'",
	"status":"'"${status}"'",
	"summary":"'"$	{formattedResults}"'"
    }
}' 
${aiopshost}/graze/v1/mooletInforms?rejectUnauthorized=false

For Situations, you must specify "ceventType":"situation" in your template rule.

After you complete the configuration, you can make Puppet automation requests in your workflows. See setPuppetAutomation for more information.

Note that the Puppet Alert workflow engine processes the output of 'Alert Workflows'. If you are using Cookbook or Tempus, you must configure these to process the output of Puppet Alert workflows.

For Cookbook, in Settings > Cookbook, set Process Output Of to Other Moolet(s) and enter "Puppet Alert Workflows", in addition to any other automation alert workflows you are using. See Configure a Cookbook for more information.Configure a Cookbook

For Tempus, use the Graze API to change the value. See addTempus and updateTempus for more information.