X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Farchive%2Fmanifests%2Finit.pp;fp=3rdparty%2Fmodules%2Farchive%2Fmanifests%2Finit.pp;h=ea7001c9c0ac01db11e19642943270787cfc89e6;hb=ce70d6baf887ae03a2a6a7f5e73eb2e2c3dea208;hp=0000000000000000000000000000000000000000;hpb=0ba93256399fbad7ed8fabfa39c24dd47169dde3;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/archive/manifests/init.pp b/3rdparty/modules/archive/manifests/init.pp new file mode 100644 index 000000000..ea7001c9c --- /dev/null +++ b/3rdparty/modules/archive/manifests/init.pp @@ -0,0 +1,66 @@ +# Class: archive +# ============== +# +# Manages archive modules dependencies. +# +# Parameters +# ---------- +# +# * seven_zip_name: 7zip package name. +# * seven_zip_provider: 7zip package provider (accepts windows/chocolatey). +# * seven_zip_source: alternative package source. +# * aws_cli_install: install aws cli command (default: false). +# +# Examples +# -------- +# +# class { 'archive': +# seven_zip_name => '7-Zip 9.20 (x64 edition)', +# seven_zip_source => 'C:/Windows/Temp/7z920-x64.msi', +# seven_zip_provider => 'windows', +# } +# +class archive ( + Optional[String] $seven_zip_name = $archive::params::seven_zip_name, + Optional[String] $seven_zip_provider = $archive::params::seven_zip_provider, + Optional[String] $seven_zip_source = undef, + Boolean $aws_cli_install = false, +) inherits archive::params { + + if $facts['os']['family'] == 'Windows' and !($seven_zip_provider in ['', undef]) { + package { '7zip': + ensure => present, + name => $seven_zip_name, + source => $seven_zip_source, + provider => $seven_zip_provider, + } + } + + if $aws_cli_install { + # TODO: Windows support. + if $facts['os']['family'] != 'Windows' { + # Using bundled install option: + # http://docs.aws.amazon.com/cli/latest/userguide/installing.html#install-bundle-other-os + + file { '/opt/awscli-bundle': + ensure => 'directory', + } + + archive { 'awscli-bundle.zip': + ensure => present, + path => '/opt/awscli-bundle/awscli-bundle.zip', + source => 'https://s3.amazonaws.com/aws-cli/awscli-bundle.zip', + extract => true, + extract_path => '/opt', + creates => '/opt/awscli-bundle/install', + cleanup => true, + } + + exec { 'install_aws_cli': + command => '/opt/awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws', + refreshonly => true, + subscribe => Archive['awscli-bundle.zip'], + } + } + } +}