Find file
Fetching contributors…
Cannot retrieve contributors at this time
69 lines (43 sloc) 2.01 KB

puppet-nodejs module


Install nodejs package and npm package provider for Debian, Ubuntu, Fedora, and RedHat.


class nodejs

Installs nodejs and npm per nodejs documentation.

  • dev_package: whether to install optional dev packages. dev packages not available on all platforms, default: false.


include nodejs

You may want to use apt::pin to pin package installation priority on sqeeze. See puppet-apt for more information.

apt::pin { 'sid': priority => 100 }

npm package

Two types of npm packages are supported.

  • npm global packages are supported via ruby provider for puppet package type.
  • npm local packages are supported via puppet define type nodejs::npm.

For more information regarding global vs. local installation see nodejs blog


npm package provider is an extension of puppet package type which supports versionable and upgradeable. The package provider only handles global installation:


package { 'express':
  ensure   => latest,
  provider => 'npm',

package { 'mime':
  ensure   => '1.2.4',
  provider => 'npm',


nodejs::npm is suitalbe for local installation of npm packages:

nodejs::npm { '/opt/razor:express':
  ensure  => present,
  version => '2.5.9',

nodejs::npm title consists of filepath and package name seperate via ':', and support the following attributes:

  • ensure: present, absent.
  • version: package version (optional).
  • source: package source (optional).
  • install_opt: option flags invoked during installation such as --link (optional).
  • remove_opt: option flags invoked during removal (optional).

Supported Platforms

The module have been tested on the following operating systems. Testing and patches for other platforms are welcomed.

  • Debian Wheezy.
  • RedHat EL5.