Forge Home


Puppet module to deploy tar files


1,712,429 latest version

4.0 quality score

Version information

  • 0.0.3 (latest)
  • 0.0.2
  • 0.0.1
released Aug 31st 2014

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'mkrakowitzer-deploy', '0.0.3'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add mkrakowitzer-deploy
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install mkrakowitzer-deploy --version 0.0.3

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



mkrakowitzer/deploy — version 0.0.3 Aug 31st 2014

#puppet-deploy Build
Status ##Overview

This module downloads and extracts compressed files to a specific directory.

The following archives are supported:

  • .tar.gz
  • .tgz
  • .tar.bz2
  • .tar.xz

###Setup Requirements


    # Set the default temp directory to use
    class { 'deploy':
      tempdir => '/opt/deploy'

    # Deploy Java tar file
    deploy::file { 'jdk-7u21-linux-x64.tar.gz':
      target  => '/opt/development-tools/java/jdk1.7.0_21',
      url     => '',
      strip   => true,
    # Deploy another tar file
    deploy::file { 'jdk-8-ea-bin-b90-linux-x64-16_may_2013.tar.gz':
      target  => '/opt/development-tools/java/jdk1.8.0_b90',
      url     => '',
      strip   => true,

    deploy::file { 'apache-maven-3.0.5-bin.tar.gz':
      target  => '/opt/development-tools/apache-maven',
      url     => 'http://server/pub/apache-maven/',
      strip   => true
      version => '1',
      package => 'maven'


  • deploy - set the default working directory.


  • deploy::file - Deploy a compressed file to a target directory.

Common Parameters


  • The target directory to decompress the archive file too.
  • This parameter is required


  • The URL where the file can be downloaded from.
  • This parameter is required. Do no specify the file name in the URL.
  • For testing purpose, the module can handle URLs in from file:///... and puppet:///... style. You must not specify the file name with this URLs either.


  • Define which user will owner deployed files. You need to declare this user.


  • Define which group will owner deployed files. You need to declare this group.
  • Defaults to undefined


  • Strip root directory from archive file
  • Defaults to 'false'


  • Levels to strip from root directory from archive file
  • Defaults to '1'


  • Define an arbitrary version number for the tar file. Must be an integer.
  • WARNING: Incrementing this version number removes target directory and and redeploys tar file. Both version and package must be defined.
  • Defaults to undefined


  • define an arbitrary package name for the tar file.
  • creates a static fact [package]_version in /etc/facter/facts.d/ with file name [package].yaml. Both version and package must be defined.
  • Defaults to undefined
  • requires facter 1.7.x
  • requires the /etc/facter/facts.d/ directory structure to be in place.

If you decide to use the version and package parameters you get to keep both pieces if it breaks. I certainly don't recommend managing packages this way.


  • I'm sure there are many

###Supported Operating Systems:

  • Ubuntu (12.04 LTS tested)
  • Red Hat family (RHEL 5 and 6 tested)

##Testing Using puppetlabs_spec_helper. Simply run:

bundle install && bundle exec rake spec

to get results.

/usr/bin/ruby1.9.1 -S rspec spec/defines/deploy_files_spec.rb --color
ldapname is deprecated and will be removed in a future version

Finished in 0.16558 seconds
1 example, 0 failures


  • Copyright (C) 2013 Merritt Krakowitzer -
  • Distributed under the terms of the Apache License, Version 2.0.
  • Please submit a pull request or issue on GitHub


  • Jonathan Johnson
  • Andreyev Dias de Melo