I do have a really strange issue with exec a tar command with puppet
2.6.0. If I run it with puppetmasterd I get the following error
message:

(//my.domain.net//Stage[main]/Workerzone/Build::Install[top]/
Exec[extract-top]/returns) change from notrun to 0 failed: /bin/bash -
c '/usr/sbin/tar -xzvf /usr/local/src/top-3.7.tar.gz' returned 1
instead of one of [0] at /etc/puppet/modules/build/manifests/init.pp:
58

If I run the code manually with 'puppetd -t --debug' there are no
errors. What am I doing wrong? Here is my code:

# build::install { 'top':
#   download => 'http://www.unixtop.org/dist/top-3.7.tar.gz',
#   creates  => '/url/local/bin/top',
# }

define build::install ($download, $creates, $pkg_folder='',
$pkg_format="tar", $pkg_extension="", $buildoptions="",
$rm_build_folder=true) {

  if defined( Package['build-essential'] ) {
    debug("build-essential already installed")
  } else {
    package { 'build-essential': ensure => installed }
  }

  $filename = basename($download)

  $extension = $pkg_format ? {
    zip     => ".zip",
    tar     => ".tar.gz",
    bzip    => ".tar.bz2",
    default => $pkg_extension,
  }

  $foldername = $pkg_folder ? {
    ''      => gsub($filename, $extension, ""),
    default => $pkg_folder,
  }

  $extractor = $pkg_format ? {
    zip     => "/usr/bin/unzip -q -d /usr/local/src",
    bzip    => "/usr/sbin/tar -xjf",
    default => "/usr/sbin/tar -xzf" ,
  }

  # download is fine
  exec { "download-$name":
    cwd     => "/usr/local/src",
    command => "/usr/bin/wget -q $download",
    timeout => 120,
    unless  => "test -f $creates",
  }

  # here I always get an error
  exec { "extract-$name":
    cwd     => "/usr/local/src",
    command => "$extractor /usr/local/src/$filename",
    timeout => 120,
    path    => "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/
sbin:/bin",
    require => Exec["download-$name"],
  }

  exec { "config-$name":
    cwd     => "/usr/local/src/$foldername",
    command => "./configure $buildoptions",
    timeout => 120,
    require => Exec["extract-$name"],
  }

  exec { "make-install-$name":
    cwd     => "/usr/local/src/$foldername",
    command => "/usr/bin/make && /usr/bin/make install",
    timeout => 600,
    require => Exec["config-$name"],
  }

  # remove build folder
  case $rm_build_folder {
    true: {
      notice("remove build folder")
      exec { "remove-$name-build-folder":
        command => "/usr/bin/rm -rf /usr/local/src/$foldername",
        require => Exec["make-install-$name"],
      } # exec
    } # true
  } # case

}

The code runs on a nexenta ncp 3.0 (SunOS) box. Any ideas?

Thanks

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to