This module allows to install Node.js and NPM. This module is published on the Puppet Forge as willdurand/nodejs.
This modules depends on puppetlabs/stdlib and maestrodev/puppet-wget. so all repositories have to be checked out:
git clone git://github.com/willdurand/puppet-nodejs.git modules/nodejs
git clone git://github.com/puppetlabs/puppetlabs-stdlib.git modules/stdlib
git clone git://github.com/maestrodev/puppet-wget.git modules/wget
puppet module install willdurand/nodejs
mod 'willdurand/nodejs', '1.6.0'
There are a few ways how to use this puppet module. The easiest one is just using the class definition
class { 'nodejs':
version => 'v0.10.25',
}
This will compile and install Node.js version v0.10.25
to your machine. node
and npm
will be available in your $PATH
via /usr/local/node/node-current/bin
so you can just start using node
.
Shortcuts are provided to easily install the latest
or stable
release by setting the version
parameter to latest
or stable
. It will automatically look for the last release available on http://nodejs.org.
class { 'nodejs':
version => 'stable',
}
To use the pre-built installer version provided via http://nodejs.org/download you have to set make_install
to false
class { 'nodejs':
version => 'stable',
make_install => false,
}
If you need mode than one installed version of Node.js on your machine, you can just do it using the nodejs::install
puppet define.
nodejs::install { 'v0.10.17':
version => 'v0.10.17',
}
nodejs::install { 'v0.10.25':
version => 'v0.10.25',
}
This snippet will install version v0.10.17
and v0.10.25
on your machine. Keep in mind that a Node.js version installed via nodejs::install
will provide only versioned binaries inside /usr/local/bin
!
/usr/local/bin/node-v0.10.17
/usr/local/bin/npm-v0.10.17
/usr/local/bin/node-v0.10.25
/usr/local/bin/npm-v0.10.25
By default, this module creates a symlink for the node binary (and npm) with Node.js version appended into /usr/local/bin
e.g. /usr/local/bin/node-v0.10.17
.
All parameters available in the class
definition are also available for nodejs::install
.
node
and npm
are linked to /usr/local/bin
to be available in your system $PATH
by default. To link those binaries to e.g /bin
, just set the parameter target_dir
.
class { 'nodejs':
version => 'stable',
target_dir => '/bin',
}
Also, this module installs NPM by default. Since versions v0.6.3
of Node.js npm
is included in every installation! For older versions, you can set parameter with_npm => false
to not install npm
.
This module adds a new provider: npm
. You can use it as usual:
package { 'express':
provider => npm
}
Note: When deploying a new machine without nodejs already installed, your npm package definition requires the nodejs class:
class { 'nodejs':
version => 'stable'
}
package { 'express':
provider => 'npm',
require => Class['nodejs']
}
Install the dependencies using Bundler:
BUNDLE_GEMFILE=.gemfile bundle install
Run the following command:
BUNDLE_GEMFILE=.gemfile bundle exec rake test
- William Durand william.durand1@gmail.com
- Johannes Graf (@grafjo)
puppet-nodejs is released under the MIT License. See the bundled LICENSE file for details.