Puppet Class: nodejs::install
- Defined in:
- manifests/install.pp
Overview
Class: nodejs::install
Install NodeJS for Darwin
Authors
Ryan Skoblenick <ryan@skoblenick.com>
Copyright
Copyright 2013 Ryan Skoblenick.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 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 |
# File 'manifests/install.pp', line 13
class nodejs::install {
$version = $nodejs::version
$arch = $::architecture ? {
/(x86_64|amd64)/ => 'x64',
'i386' => 'x86',
default => fail("Unrecognized architecture: ${::architecture}")
}
$kernel = downcase($::kernel)
$source = $kernel ? {
/(darwin|linux)/ => "http://nodejs.org/dist/v${version}/node-v${version}-${kernel}-${arch}.tar.gz",
default => fail("Unsupported Kernel: ${::kernel}, Operating System: ${::operatingsystem}")
}
Exec {
cwd => '/tmp',
path => '/usr/sbin:/usr/bin:/bin',
onlyif => "test ! -f /var/db/.puppet_binary_installed_nodejs-${version}",
}
exec {'nodejs-download':
command => "curl -o node-v${version}-${kernel}-${arch}.tar.gz -C - -k -L -s --url ${source}",
}
->
exec {'nodejs-extract':
command => "tar -xzvf node-v${version}-${kernel}-${arch}.tar.gz",
}
->
exec {'nodejs-install-bin':
command => 'cp -rf ./bin /usr/local',
cwd => "/tmp/node-v${version}-${kernel}-${arch}",
user => 'root',
}
->
exec {'nodejs-install-lib':
command => 'cp -rf ./lib /usr/local',
cwd => "/tmp/node-v${version}-${kernel}-${arch}",
user => 'root',
}
->
exec {'nodejs-install-share':
command => 'cp -rf ./share /usr/local',
cwd => "/tmp/node-v${version}-${kernel}-${arch}",
user => 'root',
}
->
file {"/tmp/node-v${version}-${kernel}-${arch}":
ensure => absent,
recurse => true,
force => true,
subscribe => [Exec['nodejs-install-bin'], Exec['nodejs-install-lib'], Exec['nodejs-install-share'] ]
}
->
file {"/tmp/node-v${version}-${kernel}-${arch}.tar.gz":
ensure => absent,
}
->
file {"/var/db/.puppet_binary_installed_nodejs-${version}":
ensure => file,
content => "name:'nodejs'\nsource:'${source}'",
owner => 'root',
group => 'wheel',
mode => '0644',
}
}
|