PUPPET-CATALOG(8)
π PUPPET-CATALOG(8) π
okay bestie, welcome to the puppet-catalog page from the Puppet manual β this is the one where we do all the catalog things. compiling them, saving them, looking at them, converting them. the whole lil glow-up routine. let's go π¦
β¨ NAME β¨
puppet-catalog β Compile, save, view, and convert catalogs. periodt.
πΈ SYNOPSIS πΈ
puppet catalog action [--terminus _TERMINUS]
π DESCRIPTION π
so this subcommand is all about catalogs, which are these per-node artifacts that get compiled from a set of Puppet manifests. think of them as the lil custom-fit outfit each node gets π
by default it hangs out with the compiling subsystem and compiles a catalog using the default manifest and certname β but bestie, you can absolutely change where the catalog comes from with the --terminus option. and if you wanna print any catalog in dot format (which is iconic for easy graph viewing with OmniGraffle or Graphviz, iykyk), you just do --render-as dot. slay.
π₯ OPTIONS π₯
okay so real talk: any setting thatΒ΄s valid in the configuration file is also a valid long argument, even if it may or may not be relevant to whatever action you're doing rn. for example, server and run_mode are valid settings, so you can specify --server <servername>, or --run_mode <runmode> as an argument. no cap.
see the configuration file documentation at https://puppet.com/docs/puppet/latest/configuration.html for the full list of acceptable parameters. and a commented list of all configuration options can also be generated by running puppet with --genconfig. very demure, very mindful.
--render-as FORMATβ the format in which to render output. the most common formats arejson,s(string),yaml, andconsole, but other options such asdotare sometimes available. choose ur fighter β¨--verboseβ whether to log verbosely. she talks. a lot. π¬--debugβ whether to log debug information. even more talking. we love her for it π«Ά--terminus _TERMINUSβ okay this one needs a whole vibe check, so buckle up:
Indirector faces expose indirected subsystems of Puppet. These subsystems are each able to retrieve and alter a specific type of data (with the familiar actions of find, search, save, and destroy) from an arbitrary number of pluggable backends. In Puppet parlance, these backends are called terminuses. β¨
Almost all indirected subsystems have a rest terminus that interacts with the puppet masterΒ΄s data. Most of them have additional terminuses for various local data models, which are in turn used by the indirected subsystem on the puppet master whenever it receives a remote request.
The terminus for an action is often determined by context, but occasionally needs to be set explicitly. See the "Notes" section of this faceΒ΄s manpage for more details. π
π ACTIONS π
apply - Find and apply a catalog. π
SYNOPSIS
puppet catalog apply [--terminus _TERMINUS]
DESCRIPTION
Finds and applies a catalog. This action takes no arguments, but the source of the catalog can be managed with the --terminus option.
RETURNS
Nothing. When used from the Ruby API, returns a Puppet::Transaction::Report object.
compile - Compile a catalog. π
SYNOPSIS
puppet catalog compile [--terminus _TERMINUS]
DESCRIPTION
Compiles a catalog locally for a node, requiring access to modules, node classifier, etc.
RETURNS
A serialized catalog.
download - Download this nodeΒ΄s catalog from the puppet master server. β
SYNOPSIS
puppet catalog download [--terminus _TERMINUS]
DESCRIPTION
Retrieves a catalog from the puppet master and saves it to the local yaml cache. This action always contacts the puppet master and will ignore alternate termini. she does not take no for an answer, okay?
The saved catalog can be used in any subsequent catalog action by specifying --terminus yaml for that action.
RETURNS
Nothing.
NOTES
When used from the Ruby API, this action has a side effect of leaving Puppet::Resource::Catalog.indirection.terminus_class set to yaml. The terminus must be explicitly re-set for subsequent catalog actions. (messy of her but we move π)
find - Retrieve the catalog for the node from which the command is run. π
SYNOPSIS
puppet catalog find [--terminus _TERMINUS] [--facts_for_catalog] certname, facts
DESCRIPTION
Retrieve the catalog for the node from which the command is run.
OPTIONS --facts_for_catalog - Not implemented for the CLI; facts are collected internally.
RETURNS
A serialized catalog. When used from the Ruby API, returns a Puppet::Resource::Catalog object.
info - Print the default terminus class for this face. π
SYNOPSIS
puppet catalog info [--terminus _TERMINUS]
DESCRIPTION
Prints the default terminus class for this subcommand. Note that different run modes may have different default termini; when in doubt, specify the run mode with the --run_mode option.
save - API only: create or overwrite an object. π
SYNOPSIS
puppet catalog save [--terminus _TERMINUS] key
DESCRIPTION
API only: create or overwrite an object. As the Faces framework does not currently accept data from STDIN, save actions cannot currently be invoked from the command line. so close, yet so far π
select - Retrieve a catalog and filter it for resources of a given type. π
SYNOPSIS
puppet catalog select [--terminus _TERMINUS] host resource_type
DESCRIPTION
Retrieves a catalog for the specified host, then searches it for all resources of the requested type.
RETURNS
A list of resource references ("Type[title]"). When used from the API, returns an array of Puppet::Resource objects excised from a catalog.
NOTES
By default, this action will retrieve a catalog from PuppetΒ΄s compiler subsystem; you must call the action with --terminus rest if you wish to retrieve a catalog from the puppet master.
FORMATTING ISSUES: This action cannot currently render useful yaml; instead, it returns an entire catalog. Use json instead. (not the yaml erasure π use json bestie)
π¦ EXAMPLES π¦
apply
Apply the locally cached catalog:
$ puppet catalog apply --terminus yaml
Retrieve a catalog from the master and apply it, in one step:
$ puppet catalog apply --terminus rest
API example:
# ...
Puppet::Face[:catalog, Β΄0.0.1Β΄].download
# (Termini are singletons; catalog.download has a side effect of
# setting the catalog terminus to yaml)
report = Puppet::Face[:catalog, Β΄0.0.1Β΄].apply
# ...
compile
Compile catalog for node Β΄mynodeΒ΄:
$ puppet catalog compile mynode --codedir ...
download
Retrieve and store a catalog:
$ puppet catalog download
API example:
Puppet::Face[:plugin, Β΄0.0.1Β΄].download
Puppet::Face[:facts, Β΄0.0.1Β΄].upload
Puppet::Face[:catalog, Β΄0.0.1Β΄].download
# ...
select
Ask the puppet master for a list of managed file resources for a node:
$ puppet catalog select --terminus rest somenode.magpie.lan file
π« NOTES π«
This subcommand is an indirector face, which exposes find, search, save, and destroy actions for an indirected subsystem of Puppet. Valid termini for this face include:
compilerjsonmsgpackreststore_configsyaml
that's the whole roster bestie, pick ur fave πΈ
π COPYRIGHT AND LICENSE π
Copyright 2011 by Puppet Inc. Apache 2 license; see COPYING
and that's the whole page, bestie!! π brought to you by Puppet, Inc., dated September 2024, from the PUPPET-CATALOG(8) manual. go compile something iconic πβ¨π«Ά
π¦ where this page comes from
- arch rolling: puppet 8.10.0-6 Β· Apache-2.0
- fedora 43: puppet 8.10.0-2.fc43 Β· Apache-2.0
- fedora 43: puppet 8.10.0-3.fc43 Β· Apache-2.0
- fedora 44: puppet 8.10.0-4.fc44 Β· Apache-2.0
- fedora 44: puppet 8.10.0-5.fc44 Β· Apache-2.0
- nixos 26.05: puppet 8.10.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms