2012-07-04 13 views
9

Chciałbym zainstalować apache maven przy użyciu marionetkowego przepisu, ale nie mogę znaleźć nigdzie przykładu, jak to zrobić. Czy ktoś może w tym pomóc? Apache maven jest spakowany jako plik tar.gz. Używam samodzielnej konfiguracji lalek.receptura marionetkowa instalowanie tarballa

Odpowiedz

11

Używam tego urywek z example42:

define netinstall (
    $url, 
    $extracted_dir, 
    $destination_dir, 
    $owner = "root", 
    $group = "root", 
    $work_dir = "/var/tmp", 
    $extract_command = "tar -zxvf", 
    $preextract_command = "", 
    $postextract_command = "" 
) { 
    $source_filename = urlfilename($url) 

    if $preextract_command { 
     exec { 
      "PreExtract $source_filename": 
       command => $preextract_command, 
       before => Exec["Extract $source_filename"], 
       refreshonly => true, 
     } 
    } 

    exec { 
     "Retrieve $url": 
      cwd  => "$work_dir", 
      command => "wget $url", 
      creates => "$work_dir/$source_filename", 
      timeout => 3600, 
    } 

    exec { 
     "Extract $source_filename": 
      command => "mkdir -p $destination_dir && cd $destination_dir && $extract_command $work_dir/$source_filename", 
      unless => "find $destination_dir | grep $extracted_dir", 
      creates => "${destination_dir}/${extracted_dir}", 
      require => Exec["Retrieve $url"], 
    } 

    if $postextract_command { 
     exec { 
      "PostExtract $source_filename": 
       command => $postextract_command, 
       cwd => "$destination_dir/$extracted_dir", 
       subscribe => Exec["Extract $source_filename"], 
       refreshonly => true, 
       timeout => 3600, 
       require => Exec["Retrieve $url"],  
     } 
    } 
} 

przykład użycia:

#Install prerequisites 
exec { "VPSMonPrerequisites": 
    command  => "yum install -y ${vpsmonitor::params::prerequisites}", 
    unless  => "rpm -qi ${vpsmonitor::params::prerequisites}", 
    timeout  => 3600, 
} 
#Install tgz from source url 
netinstall { vpsmonitor: 
    url     => "${vpsmonitor::params::source_url}", 
    extracted_dir  => "${vpsmonitor::params::extracted_dir}", 
    destination_dir  => "${vpsmonitor::params::destination_dir}", 
    postextract_command => "chown -R user. ${vpsmonitor::params::destination_dir}/${vpsmonitor::params::extracted_dir}", 
    require    => [ Exec["VPSMonPrerequisites"], User["user"] ], 
} 
+0

Ten przykład łamie dla mnie "urlfilename". – Jared

+0

Udało mi się uruchomić go po prostu robiąc "puppet module install example42-puppi" i używając drugiego przykładu jako "puppi :: netinstall" – Jared

0

Jest to moduł Lalek, że robi to dla ciebie zadanie: dsestero/download_uncompress

Przykład:

$phpstorm_version = '2017.2.1' 

download_uncompress { 'PhpStorm': 
    download_base_url => 'https://download.jetbrains.com/webide', 
    distribution_name => "PhpStorm-${phpstorm_version}.tar.gz", 
    dest_folder  => '/opt', 
    creates   => "/opt/phpstorm-${phpstorm_version}", 
    uncompress  => 'tar.gz', 
}