Defined Type: download_uncompress
- Defined in:
- manifests/init.pp
Overview
Downloads and possibly uncompress a file from a given url to a specified destination folder.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'manifests/init.pp', line 45
define download_uncompress (
String $distribution_name,
String $dest_folder,
String $creates,
Enum['none', 'zip', 'tar.gz', 'jar'] $uncompress = 'none',
String $user = root,
String $group = root,
Boolean $install_unzip = true,
String $wget_options = '',
String $download_base_url = hiera('distributions_base_url', undef),) {
if $install_unzip {
$enhancers = ['unzip']
ensure_packages($enhancers)
}
if $download_base_url == undef and !('http://' in $distribution_name) {
fail("No download_base_url specified and distribution name does not begin with 'http://'")
}
if 'http://' in $distribution_name {
$download_url = $distribution_name
} else {
$download_url = "${download_base_url}/${distribution_name}"
}
$dist_path_name = split($distribution_name, '/')
$file_name = $dist_path_name[-1]
$cmd = $uncompress ? {
/(zip|jar)/ => "wget ${wget_options} -P /tmp/ ${download_url} -O /tmp/${file_name} && mkdir -p ${dest_folder} && unzip -o /tmp/${file_name} -d ${dest_folder}",
'tar.gz' => "wget ${wget_options} -P /tmp/ ${download_url} -O /tmp/${file_name} && mkdir -p ${dest_folder} && tar xzf /tmp/${file_name} -C ${dest_folder}",
default => "wget ${wget_options} -P ${dest_folder} ${download_url}",
}
exec { "download_uncompress_${download_url}-${dest_folder}":
command => $cmd,
creates => $creates,
user => $user,
group => $group,
logoutput => 'on_failure',
path => '/usr/local/bin/:/usr/bin:/bin/',
}
}
|