---
name: "puppet-file"
section: "8"
platform: "linux"
package: "puppet"
version: "4.8.2-5"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/puppet-file"
---

# puppet-file(8)

Retrieve and store files in a filebucket

## NAME

**puppet-file** - Retrieve and store files in a filebucket

## SYNOPSIS

puppet file *action* \[--terminus TERMINUS\] \[--extra HASH\]

## DESCRIPTION

This subcommand interacts with objects stored in a local or remote filebucket. File objects are accessed by their MD5 sum; see the examples for the relevant syntax.

## OPTIONS

Note that any setting that´s valid in the configuration file is also a valid long argument, although it may or may not be relevant to the present action. For example, **server** and **run\_mode** are valid settings, so you can specify **--server \<servername\>**, or **--run\_mode \<runmode\>** as an argument.

See the configuration file documentation at *https://docs.puppetlabs.com/references/stable/configuration.html* for the full list of acceptable parameters. A commented list of all configuration options can also be generated by running puppet with **--genconfig**.

- \--render-as FORMAT

  The format in which to render output. The most common formats are **json**, **s** (string), **yaml**, and **console**, but other options such as **dot** are sometimes available.

- \--verbose

  Whether to log verbosely.

- \--debug

  Whether to log debug information.

- \--extra HASH

  A terminus can take additional arguments to refine the operation, which are passed as an arbitrary hash to the back-end. Anything passed as the extra value is just send direct to the back-end.

- \--terminus TERMINUS

  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

- **download** - Download a file into the local filebucket.

  **SYNOPSIS**

-

  puppet file download \[--terminus TERMINUS\] \[--extra HASH\] ( {md5}*checksum* \| *puppet\_url* )

-

  **DESCRIPTION**

-

  Downloads a file from the puppet master´s filebucket and duplicates it in the local filebucket. This action´s checksum syntax differs from **find**´s, and it can accept a \<puppet:///\> URL.

-

  **RETURNS**

-

  Nothing.

- **find** - Retrieve a file from the filebucket.

  **SYNOPSIS**

-

  puppet file find \[--terminus TERMINUS\] \[--extra HASH\] md5/*md5sum*

-

  **DESCRIPTION**

-

  Retrieve a file from the filebucket.

-

  **RETURNS**

-

  The file object with the specified checksum.

-

  RENDERING ISSUES: Rendering as a string returns the contents of the file object; rendering as yaml returns a hash of metadata about said file, including but not limited to its contents. Rendering as json is currently broken, and returns a hash containing only the contents of the file.

- **info** - Print the default terminus class for this face.

  **SYNOPSIS**

-

  puppet file info \[--terminus TERMINUS\] \[--extra HASH\]

-

  **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 file save \[--terminus TERMINUS\] \[--extra HASH\] *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.

- **store** - Store a file in the local filebucket.

  **SYNOPSIS**

-

  puppet file store \[--terminus TERMINUS\] \[--extra HASH\] *file*

-

  **DESCRIPTION**

-

  Store a file in the local filebucket.

-

  **RETURNS**

-

  Nothing.

## EXAMPLES

**download**

Download a file by URL:

$ puppet file download puppet:///modules/editors/vim/.vimrc

Download a file by MD5 sum:

$ puppet file download {md5}8f798d4e754db0ac89186bbaeaf0af18

**find**

Retrieve the contents of a file:

$ puppet file find md5/9aedba7f413c97dc65895b1cd9421f2c --render-as s

**store**

Store a file:

$ puppet file store /root/.bashrc

## NOTES

To retrieve the unmunged contents of a file, you must call find with --render-as s. Rendering as yaml will return a hash of metadata about the file, including its contents.

This subcommand does not interact with the **clientbucketdir** (the default local filebucket for puppet agent); it interacts with the primary "master"-type filebucket located in the **bucketdir**. If you wish to interact with puppet agent´s default filebucket, you´ll need to set the *--bucketdir* option appropriately when invoking actions.

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:

- •

  **file**

- •

  **rest**

- •

  **selector**

-

  ## COPYRIGHT AND LICENSE

Copyright 2011 by Puppet Labs Apache 2 license; see COPYING
