Provided by: puppet_5.4.0-2ubuntu3_all bug

NAME

       puppet-lookup - Interactive Hiera lookup

SYNOPSIS

       Does Hiera lookups from the command line.

       Since this command needs access to your Hiera data, make sure to run it on a node that has a copy of that
       data. This usually means logging into a Puppet Server node and running ´puppet lookup´ with sudo.

       The most common version of this command is:

       ´puppet lookup KEY --node NAME --environment ENV --explain´

USAGE

       puppet  lookup  [--help]  [--type  TYPESTRING]   [--merge   first|unique|hash|deep]   [--knock-out-prefix
       PREFIX-STRING]  [--sort-merged-arrays]  [--merge-hash-arrays]  [--explain] [--environment ENV] [--default
       VALUE] [--node NODE-NAME] [--facts FILE] [--compile] [--render-as s|json|yaml|binary|msgpack] keys

DESCRIPTION

       The lookup command is a CLI for Puppet´s ´lookup()´ function. It searches your Hiera data and  returns  a
       value for the requested lookup key, so you can test and explore your data. It is a modern replacement for
       the ´hiera´ command.

       Hiera usually relies on a node´s facts to locate the relevant data sources. By default,  ´puppet  lookup´
       uses facts from the node you run the command on, but you can get data for any other node with the ´--node
       NAME´ option. If possible, the lookup command will use  the  requested  node´s  real  stored  facts  from
       PuppetDB;  if  PuppetDB  isn´t  configured  or  you  want  to provide arbitrary fact values, you can pass
       alternate facts as a JSON or YAML file with ´--facts FILE´.

       If you´re debugging your Hiera data and want to see where values are coming  from,  use  the  ´--explain´
       option.

       If  ´--explain´  isn´t  specified,  lookup  exits  with  0  if  a  value  was found and 1 otherwise. With
       ´--explain´, lookup always exits with 0 unless there is a major error.

       You can provide multiple lookup keys to this command, but it only returns a value  for  the  first  found
       key, omitting the rest.

       For     more     details     about     how     Hiera     works,     see    the    Hiera    documentation:
       https://docs.puppet.com/puppet/latest/hiera_intro.html

OPTIONS

       •   --help: Print this help message.

       •   --explain Explain the details of how the lookup was performed and where the final value came from (or
           the reason no value was found).

       •   --node  NODE-NAME  Specify  which node to look up data for; defaults to the node where the command is
           run. Since Hiera´s purpose is to provide different values for different nodes (usually based on their
           facts), you´ll usually want to use some specific node´s facts to explore your data. If the node where
           you´re running this command is configured to talk to PuppetDB, the command  will  use  the  requested
           node´s most recent facts. Otherwise, you can override facts with the ´--facts´ option.

       •   --facts  FILE  Specify  a .json or .yaml file of key => value mappings to override the facts for this
           lookup. Any facts not specified in this file maintain their original value.

       •   --environment ENV Like with most Puppet commands, you can specify an environment on the command line.
           This is important for lookup because different environments can have different Hiera data.

       •   --merge  first|unique|hash|deep:  Specify  the merge behavior, overriding any merge behavior from the
           data´s lookup_options. ´first´ returns the first  value  found.  ´unique´  appends  everything  to  a
           merged,  deduplicated  array. ´hash´ performs a simple hash merge by overwriting keys of lower lookup
           priority. ´deep´ performs a deep merge on values of Array and Hash type. There are additional options
           that can be used with ´deep´.

       •   --knock-out-prefix  PREFIX-STRING  Can  be used with the ´deep´ merge strategy. Specifies a prefix to
           indicate a value should be removed from the final result.

       •   --sort-merged-arrays Can be used with the ´deep´ merge strategy. When this flag is used,  all  merged
           arrays are sorted.

       •   --merge-hash-arrays Can be used with the ´deep´ merge strategy. When this flag is used, hashes WITHIN
           arrays are deep-merged with their counterparts by position.

       •   --explain-options Explain whether a lookup_options hash affects this lookup, and how  that  hash  was
           assembled. (lookup_options is how Hiera configures merge behavior in data.)

       •   --default  VALUE  A  value  to return if Hiera can´t find a value in data. For emulating calls to the
           ´lookup()´ function that include a default.

       •   --type TYPESTRING: Assert that the  value  has  the  specified  type.  For  emulating  calls  to  the
           ´lookup()´ function that include a data type.

       •   --compile Perform a full catalog compilation prior to the lookup. If your hierarchy and data only use
           the $facts, $trusted, and $server_facts variables, you don´t need this option; however, if your Hiera
           configuration  uses  arbitrary  variables set by a Puppet manifest, you might need this option to get
           accurate data. No catalog compilation takes place unless this flag is given.

       •   --render-as s|json|yaml|binary|msgpack Specify the output format of  the  results;  "s"  means  plain
           text. The default when producing a value is yaml and the default when producing an explanation is s.

EXAMPLE

       To look up ´key_name´ using the Puppet Server node´s facts: $ puppet lookup key_name

       To look up ´key_name´ with agent.local´s facts: $ puppet lookup --node agent.local key_name

       To get the first value found for ´key_name_one´ and ´key_name_two´ with agent.local´s facts while merging
       values and knocking out the prefix ´foo´ while merging: $ puppet lookup --node agent.local  --merge  deep
       --knock-out-prefix foo key_name_one key_name_two

       To  lookup ´key_name´ with agent.local´s facts, and return a default value of ´bar´ if nothing was found:
       $ puppet lookup --node agent.local --default bar key_name

       To see an explanation of how the value for ´key_name´ would be found, using agent.local´s facts: $ puppet
       lookup --node agent.local --explain key_name

COPYRIGHT

       Copyright (c) 2015 Puppet Inc., LLC Licensed under the Apache 2.0 License