Puppet
Visualize Visualize Puppet infrastructure, including servers, nodes, catalog, environment, factsets, and resources, and monitor changes through queries and alerts.
- Installation guide
- Puppet data model
- Puppet types
Installation Guide
Info
Puppet consists of Puppet Server, which manages configurations, Puppet Agents, which applies them on nodes, and PuppetDB, which stores configuration, state, and report data. In this integration, Puppet Server will store data in PuppetDB, and the integration will fetch data from PuppetDB.
Requirements
- Ensure network connectivity between Puppet Server and PuppetDB.
- Install and Configure PuppetDB Puppet Doc
- Connect Puppet DB and Puppet Server Puppet Doc
Integration Configuration
To configure the integration, ensure you have the following:
- PuppetDB URL: The URL where PuppetDB is configured.
- PuppetDb Port: The port configured to respond to API calls over SSL.
- CA Certificate: The Certificate Authority (CA) certificate.
Configuration in Puppet
Authentication
Puppet supports TLS authentication for secure communication between systems.
For this integration, you will need to set up client certificates signed by Puppet's Certificate Authority (CA) to enable TLS authentication.
Get CA Certificate from PuppetDB
Check the location of the CA certificate:
sudo cat /etc/puppetlabs/puppetdb/conf.d/jetty.ini
Check the Certificate Authority path.
Retrieve the following file:
ca.pem
(PuppetDB CA certificate)
Securely transfer this CA certificate file to your integration application.
Configuration in JupiterOne
From the top navigation bar of the J1 Search homepage, go to Integrations.
Search for Puppet and select it.
Click the Add Instance button and configure the following settings:
- PuppetDB URL: Provide Puppet DB Server URL (e.g., https://127.0.0.1).
- PuppetDB Port: PuppetDB port number for HTTPS traffic over SSL.
- CA certificate: Certificate Authority Certificate.
- Account Name: Provide a name to identify this Puppet instance in JupiterOne. When the Tag with Account Name option is checked, ingested entities will store this value in
tag.AccountName
. - Description: Add a description to assist your team in identifying this integration instance.
- Polling Interval (optional): Select a polling interval that fits your monitoring needs. If unsure, leave this as
DISABLED
and manually execute the integration.
Click Create Configuration to save your settings.
Next steps
Now that your integration instance has been configured, it will begin running on the polling interval you provided, populating data within JupiterOne. Continue on to our Instance management guide to learn more about working with and editing integration instances.
Data Model
Entities
The following entities are created:
Resources | Entity _type | Entity _class |
---|---|---|
Catalog | puppet_catalog | DataObject |
Environment | puppet_environment | Group |
FactSet | puppet_factset | Group |
Node | puppet_node | Device |
Resource | puppet_resource | Configuration |
Server | puppet_server | Control |
Relationships
The following relationships are created:
Source Entity _type | Relationship _class | Target Entity _type |
---|---|---|
puppet_catalog | CONTAINS | puppet_resource |
puppet_environment | HAS | puppet_node |
puppet_node | USES | puppet_factset |
puppet_server | GENERATED | puppet_catalog |
puppet_server | MANAGES | puppet_node |
Puppet Server
puppet_server
inherits from Control
Puppet Node
puppet_node
inherits from Device
Puppet Environment
puppet_environment
inherits from Group
Puppet Factset
puppet_factset
inherits from Group
Property | Type | Description | Specifications |
---|---|---|---|
nodeEnvironment * | string | ||
submissionTimestamp | number | ||
producerTimestamp | number | ||
puppetServer * | string |
Puppet Resource
puppet_resource
inherits from Configuration
Property | Type | Description | Specifications |
---|---|---|---|
type * | string | ||
title * | string | ||
exported * | boolean | ||
filePath * | string | null | ||
lines * | number | null | ||
environment * | string |
Puppet Catalog
puppet_catalog
inherits from DataObject
Property | Type | Description | Specifications |
---|---|---|---|
node * | string | ||
version * | string | ||
environment * | string | ||
producerTimestamp | number | ||
hash | string | ||
transactionUuid | string | ||
codeId * | string | null |