Version information
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x
- Puppet >= 7.0.0 < 9.0.0
- , , , , , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'puppet-nodejs', '11.0.0'
Learn more about managing modules with a PuppetfileDocumentation
Node.js module for Puppet
Table of Contents
- Overview
- Setup - The basics of getting started with nodejs
- Usage
- Npm packages
- Limitations - OS compatibility, etc.
- Development
Overview
The nodejs module installs the Node.js package, (global) npm package provider and configures global npm configuration settings. A defined type nodejs::npm is used for the local installation of npm packages.
By default this module installs packages from the NodeSource repository on Debian and RedHat platforms. The NodeSource Node.js package includes the npm binary, which makes a separate npm package unnecessary.
On SUSE, ArchLinux, FreeBSD, OpenBSD and Gentoo, native packages are used. On Darwin, the MacPorts package is used. On Windows the packages are installed via Chocolatey.
Setup
What nodejs affects
- the Node.js package
- the npm package (if it exists as a separate package)
- the global npmrc file ($PREFIX/etc/npmrc)
- globally installed npm packages
- local npm packages installed in user-specified directories
Beginning with nodejs
To install Node.js and npm (using the NodeSource repository if possible):
class { 'nodejs': }
The default version installed is currently 20.x
.
If you wish to install a Node.js 21.x release from the NodeSource repository rather than 20.x on Debian/RHEL platforms:
class { 'nodejs':
repo_version => '21',
}
See the repo_version
parameter entry below for possible values.
Usage
When a separate npm package exists (natively or via EPEL) the Node.js development package also needs to be installed as it is a dependency for npm.
Install Node.js and npm using the native packages provided by the distribution:
class { 'nodejs':
manage_package_repo => false,
nodejs_dev_package_ensure => installed,
npm_package_ensure => installed,
}
Install Node.js and npm using the packages from EPEL:
class { 'nodejs':
nodejs_dev_package_ensure => installed,
npm_package_ensure => installed,
repo_class => 'epel',
}
Upgrades
The parameter nodejs_package_ensure
defaults to installed
. Changing the
repo_version
will not result in a new version being installed. Changing
the nodejs_package_ensure
parameter should provide the desired effect.
For example:
# Upgrade from nodejs 5.x to 6.x
class { 'nodejs':
repo_version => '6',
nodejs_package_ensure => '6.12.2',
}
Forcing the installation of NodeSource packages over native packages
When the native package version and NodeSource version are the same, you may
need to use repo_pin
or repo_priority
(depending on your operating system).
This ensures that the version in the NodeSource repository takes precedence
when Puppet invokes Apt/Yum.
npm packages
Two types of npm packages are supported:
- npm global packages are supported via the
npm
provider for the puppet package type. - npm local packages are supported via the Puppet defined type nodejs::npm.
For more information regarding global vs local installation see the nodejs blog
npm global packages
The npm package provider is an extension of the Puppet package type which supports versionable and upgradeable. The package provider only handles global installation:
For example:
package { 'express':
ensure => installed,
provider => 'npm',
}
package { 'mime':
ensure => '1.2.4',
provider => 'npm',
}
npm local packages
nodejs::npm is used for the local installation of npm packages. It attempts to
support all of the npm install <package>
combinations shown in the
npm install docs
except version ranges. The title simply must be a unique, arbitrary value.
- If using packages directly off the npm registry, the package parameter is the name of the package as published on the npm registry.
- If using scopes, the package parameter needs to be specified as '@scope_name/package_name'.
- If using a local tarball path, remote tarball URL, local folder, git remote URL or GitHubUser/GitRepo as the source of the package, this location needs to be specified as the source parameter and the package parameter just needs to be a unique, descriptive name for the package that is being installed.
- If using tags, the tag can be specified with the ensure parameter, and the package parameter needs to be match the name of the package in the npm registry.
- Package versions are specified with the ensure parameter, which defaults to
installed
. - Install options and uninstall options are also supported, and need to be specified as an array.
- The user parameter is provided should you wish to run npm install or npm rm as a specific user.
- If you want to use a package.json supplied by a module to install dependencies (e.g. if you have a NodeJS server app), set the parameter use_package_json to true. The package name is then only used for the resource name. source parameter is ignored.
Examples:
Install the express package published on the npm registry to /opt/packages:
nodejs::npm { 'express from the npm registry':
ensure => 'present',
package => 'express',
target => '/opt/packages',
}
or the lazy way:
nodejs::npm { 'express':
target => '/opt/packages',
}
Install the express package as user foo:
nodejs::npm { 'express install as user foo':
ensure => 'present',
package => 'express',
target => '/opt/packages',
user => 'foo',
}
Install a specific version of express to /opt/packages:
nodejs::npm { 'express version 2.5.9 from the npm registry':
ensure => '2.5.9',
package => 'express',
target => '/opt/packages',
}
Install the latest version of express to /opt/packages:
nodejs::npm { 'express latest from the npm registry':
ensure => 'latest',
package => 'express',
target => '/opt/packages',
}
Install express from GitHub to /opt/packages:
nodejs::npm { 'express from GitHub':
ensure => 'present',
package => 'express',
source => 'strongloop/express',
target => '/opt/packages',
}
Install express from a remote git repository to /opt/packages:
nodejs::npm { 'express from a git repository':
ensure => 'present',
package => 'express',
source => 'git+https://git@github.com/strongloop/expressjs.git',
target => '/opt/packages',
}
Install express from a remote tarball to /opt/packages:
nodejs::npm { 'express from a remote tarball':
ensure => 'present',
package => 'express',
source => 'https://server.domain/express.tgz',
target => '/opt/packages',
}
Install tagged packages:
nodejs::npm { 'my beta tagged package':
ensure => 'beta',
package => 'mypackage',
target => '/opt/packages',
}
Install a package from the registry associated with a specific scope:
nodejs::npm { 'package_name from @scope_name':
ensure => 'present',
package => '@scope_name/package_name',
target => '/opt/packages',
}
Install express from a local tarball to /opt/packages:
nodejs::npm { 'express from a local tarball':
ensure => 'present',
package => 'express',
source => '/local/repository/npm_packages/express.tgz',
target => '/opt/packages',
}
Install express with --save-dev --no-bin-links passed to npm install
:
nodejs::npm { 'express with options':
ensure => 'present',
package => 'express',
install_options => ['--save-dev', '--no-bin-links'],
target => '/opt/packages',
}
Install dependencies from package.json:
nodejs::npm { 'serverapp':
ensure => 'present',
target => '/opt/serverapp',
use_package_json => true,
}
Uninstall any versions of express in /opt/packages regardless of source:
nodejs::npm { 'remove all express packages':
ensure => 'absent',
package => 'express',
target => '/opt/packages',
}
Uninstall dependencies from package.json:
nodejs::npm { 'serverapp':
ensure => 'absent',
target => '/opt/serverapp',
use_package_json => true,
}
nodejs::npm::global_config_entry
nodejs::npm::global_config_entry can be used to set/remove global npm configuration settings.
Note that when specifying a URL, such as registry, NPM will add a trailing slash when it stores the config. You must specify a trailing slash in your URL or the code will not be idempotent.
Examples:
nodejs::npm::global_config_entry { 'proxy':
ensure => 'present',
value => 'http://proxy.company.com:8080/',
}
nodejs::npm::global_config_entry { 'dev':
ensure => 'present',
value => 'true',
}
Delete the key from all configuration files:
nodejs::npm::global_config_entry { 'color':
ensure => 'absent',
}
If a global_config_entry of proxy
or https-proxy
is specified, this will be
applied before the local installation of npm packages using nodejs::npm
.
Limitations
See metadata.json
for supported operating systems.
Module dependencies
This modules uses puppetlabs-apt
for the management of the NodeSource
repository. If using an operating system of the Debian-based family, you will
need to ensure that puppetlabs-apt
version 4.4.0 or above is installed.
If using CentOS/RHEL and you wish to install Node.js from EPEL rather
than from the NodeSource repository, you will need to ensure puppet-epel
is
installed and is applied before this module.
If using Gentoo, you will need to ensure gentoo-portage
is installed.
If using Windows, you will need to ensure that puppetlabs-chocolatey
is
installed.
nodejs::npm has the ability to fetch npm packages from Git sources. If you
wish to use this functionality, Git needs to be installed and be in the
PATH
.
Development
See CONTRIBUTING
Changelog
All notable changes to this project will be documented in this file. Each new release typically also includes the latest modulesync defaults. These should not affect the functionality of the module.
v11.0.0 (2024-05-14)
Breaking changes:
- replace repo_url_suffix with repo_version #487 (evgeni)
- switch to using the nodistro nodesource repos, removing source support, dropping support for NodeJS16 on EL9 #485 (evgeni)
- Drop support for Debian 10, it's EOL #484 (evgeni)
- Update default release to 20.x #482 (evgeni)
- Update default release to 18.x, EL7 to 16.x #481 (evgeni)
Implemented enhancements:
- Remove legacy top-scope syntax in README #491 (smortex)
- test different NodeJS versions using beaker_facter #490 (evgeni)
- Add Rocky and AlmaLinux support #489 (evgeni)
- add dnfmodule repo implementation #488 (evgeni)
- only ensure real npm packages #486 (evgeni)
- Add support for Ubuntu 22.04 #483 (evgeni)
- Add support for Debian 12 #480 (evgeni)
v10.0.0 (2023-09-25)
Breaking changes:
- Drop support for Debian 9, Ubuntu 16.04 and 18.04, FreeBSD 11, add support for Puppet 8, add support for RHEL 9 #453 (bastelfreak)
v9.1.0 (2023-09-16)
Breaking changes:
- Drop Puppet 6 support #467 (bastelfreak)
Implemented enhancements:
Fixed bugs:
v9.0.1 (2021-08-25)
Merged pull requests:
v9.0.0 (2021-03-23)
Breaking changes:
- Drop Puppet 5 support; Enable Puppet 7 support #443 (bastelfreak)
- Drop EL6 support #438 (ekohl)
- Drop EOL Debian 8 #425 (bastelfreak)
Implemented enhancements:
- puppetlabs/stdlib: Allow 7.x #442 (bastelfreak)
- add parameter $manage_nodejs_package #432 (kenyon)
- Debian and Ubuntu versioning and package name fixes #431 (kenyon)
Fixed bugs:
- Missing dependency on package resource that installs NPM when using the nodesource repository #404
- Add FreeBSD support #435 (igalic)
Closed issues:
- Evaluation Error: Operator '[]' is not applicable to an Undef Value - Ubuntu 20.04 #440
- nodejs::npm::global_config_entry cannot work on a platform that puts npm into a different path #434
- Installation on CentOS 7 fails, can't remove npm package #287
Merged pull requests:
v8.1.0 (2020-09-18)
Last release with Debian 8 support! After this 8.1.0 release we will do a 9.0.0 one without Debian 8 support.
Implemented enhancements:
- Error "Package 'nodejs-dev' has no installation candidate" on Ubuntu 20.04 #421
Fixed bugs:
Closed issues:
- Release bump #415
Merged pull requests:
- Drop duplicate class declaration #426 (bastelfreak)
- modulesync 3.0.0 & puppet-lint updates #424 (bastelfreak)
- Fix nodejs dev package name for Ubuntu 20.04 . #421 #422 (cliffano)
- Require puppet-epel over stahnma-epel #419 (dhoppe)
v8.0.0 (2020-03-10)
Breaking changes:
- update list of tested OSes accordingly with metadata.json #414 (mmoll)
- drop Ubuntu 14.04 support #408 (bastelfreak)
Implemented enhancements:
Fixed bugs:
- Issues with puppet agent 6.8.0 #401
- Fix syntax error #407 (ghoneycutt)
Merged pull requests:
- delete legacy travis directory #411 (bastelfreak)
- Remove duplicate CONTRIBUTING.md file #409 (dhoppe)
- Add Debian 10 support #406 (wiebe)
- Fix global_config_entry dependency on NPM when using nodesource repo #405 (wiebe)
- Clean up acceptance spec helper #403 (ekohl)
v7.0.1 (2019-06-04)
Fixed bugs:
v7.0.0 (2019-02-02)
Breaking changes:
- modulesync 2.5.1 and drop Puppet 4 #387 (bastelfreak)
Fixed bugs:
- Poor idempotency for NPM "secret" keys #326
- Ensure NPM secret keys are idempotent in global_config_entry #386 (jplindquist)
Closed issues:
- test error when running locally #312
Merged pull requests:
- Fix broken unit tests #389 (jplindquist)
- modulesync 2.2.0 and allow puppet 6.x #380 (bastelfreak)
v6.0.0 (2018-09-07)
Breaking changes:
- Default to a newer Nodejs version (8.x) #356
- Allow puppetlabs/stdlib 5.x, replace chocolatey-chocolatey with puppetlabs-chocolatey #378 (bastelfreak)
- Set default version to 8.x #357 (juniorsysadmin)
Implemented enhancements:
Fixed bugs:
- Wrong repository entry created in Debian stretch #355
- fix 'nodejs::repo_ensure: absent' for yum #373 (bugfood)
- block creation of File['root_npmrc'] when running on Windows #364 (jhicks-camgian)
Closed issues:
- Fedora support #371
- Ubutnu 16.04 second provisioning fails & puts node.js in invalid state #360
- Installing Angular-CLI happens on every run #314
Merged pull requests:
- drop EOL OSs; fix puppet version range #370 (bastelfreak)
- rename default_module_facts.{yaml,yml} #368 (bastelfreak)
- Rely on beaker-hostgenerator for docker nodesets #367 (ekohl)
v5.0.0 (2018-01-04)
Breaking changes:
- Use puppetlabs-apt to handle apt-transport-https #348 (juniorsysadmin)
- Remove legacy_debian_symlinks parameter #347 (juniorsysadmin)
- Remove EOL operating systems, Legacy facts. #343 (juniorsysadmin)
Implemented enhancements:
- Rely on puppetlabs-apt 4.4.0 for apt-transport-https installation #345
- Refresh params.pp #336
- Provide option to install node using Brew #236
- Add repo_release parameter #349 (juniorsysadmin)
- Allow for the macports provider to be overridden on macos #321 (kizzie)
Fixed bugs:
- Circular symlinks when legacy_debian_symlinks = true #335
Closed issues:
- Handling os and family facts issue #344
- Docs: Add info important for upgrades, repository priorities #322
- /usr/bin/npm doesn't exist when setting a nodejs::npm::global_config_entry #214
Merged pull requests:
- Add info for upgrades, repository priorities #352 (juniorsysadmin)
- Remove epel from fixtures #346 (juniorsysadmin)
- Remove EOL operatingsystems #341 (ekohl)
v4.0.1 (2017-11-15)
Fixed bugs:
- apt pin error #333
Closed issues:
- Docs: Update repo_url_suffix to list current versions available #331
Merged pull requests:
- v4.0.1 #338 (TraGicCode)
- Update known valid $repo_url_suffix values #337 (juniorsysadmin)
- Set default value for $repo_pin to undef #334 (juniorsysadmin)
- Use the simpler calls for acceptance tests #330 (wyardley)
v4.0.0 (2017-10-17)
Implemented enhancements:
- Don't restrict which Fedora versions can use the NodeSource repository #324
- Running
npm install
in a package dir with no arguments #154 - Allow all Fedora versions to use NodeSource #325 (juniorsysadmin)
- Add an option to install npm deps from package.json #300 (poikilotherm)
Fixed bugs:
- Does not install on Ubuntu 16.04. #246
- installing nodejs 4 leads to npm being installed as well, which fails the nodejs install #165
Closed issues:
- Add support for NodeJS 8.x #323
- Unable to update Node version #285
- Unable to install older version if EPEL present #258
Merged pull requests:
- Deprecate EOL Fedora versions #327 (ghoneycutt)
v3.1.0 (2017-09-18)
Breaking changes:
Implemented enhancements:
- Create some Beaker acceptance tests #139
Fixed bugs:
Closed issues:
- EPEL now has dependency on http-parser #307
Merged pull requests:
- Adjust supported Puppet version back to 4.7.1 #316 (wyardley)
- Add the 'an idempotent resource' shared example #313 (ekohl)
- Update puppet version, deprecate some older versions of OSes #311 (wyardley)
- Replace anchors with 'contain' #310 (wyardley)
- Update acceptance tests, add EPEL test case for RedHat acceptance tests #308 (wyardley)
v3.0.0 (2017-06-15)
Implemented enhancements:
Fixed bugs:
Closed issues:
- CentOS 6 3.8 is broken #289
- Centos 6.6 and 7 - Cannot retrieve repository metadata #288
- repo created by puppet #284
- r #279
- Explicitly put parameters for Debian Jessie #272
Merged pull requests:
- replace validate_* with datatypes #302 (bastelfreak)
- Fix github license detection #299 (alexjfisher)
- Revert "DO NOT MERGE: Prevent provider blowing up on ruby 1.8 agents" #296 (roidelapluie)
- Update README for npmrc_config #295 (Poil)
- Fix puppetlint #293 (Poil)
- Prevent provider blowing up on ruby 1.8 agents #282 (alexjfisher)
- Modulesync 0.19.0 #276 (bastelfreak)
v2.3.0 (2017-01-13)
Implemented enhancements:
- Provide NodeJS 7.x #270
Fixed bugs:
- incorrect repo validation for Ubuntu 15.04/15.10 #238
Closed issues:
- Unable to install nodejs 5x #273
Merged pull requests:
- Don't validate repo_url_suffix #271 (juniorsysadmin)
- Bump min version_requirement for Puppet + dep #268 (juniorsysadmin)
- update README to reflect nodejs versions 6.x and version 7.x #264 (brahman81)
- Fix repo validation regexps for Ubuntu 15.04/15.10 (#238) #239 (drkp)
v2.2.0 (2016-12-08)
Implemented enhancements:
- Vox Pupuli Elections #245
Merged pull requests:
- [FIX] Nodesource 6.x nodejs package replaces nodejs-dev & npm packages #261 (mxcoder)
- provider: add support for install_options #260 (ghost)
- Add missing badges #256 (dhoppe)
- Metric/BlockLength -> Metrics/BlockLength #255 (bastelfreak)
- Actually remove gpg_key dependency. #253 (MG2R)
v2.1.0 (2016-10-05)
Closed issues:
- Puppet Forge still has 0.8.0 as latest release #237
- npm provider fail (module not working) on CentOS6 #235
- Add apt module to dependency list in metadata.json #232
Merged pull requests:
- Fixes debian legacy links on Ubuntu 16.04 #251 (petems)
- release 2.1.0 #250 (bastelfreak)
- Modulesync 0.12.9 #249 (juniorsysadmin)
- Ignore npm cache lines when calling 'npm view' for latest version #244 (domcleal)
- npm is required on 16.04 #242 (gabriel403)
- add fedora 22 and 23 #231 (javierwilson)
v2.0.1 (2016-06-02)
Closed issues:
- No support for Xenial with NodeJS6 #228
- Module v2.0.0 error on CentOS 6.6 #227
- Puppet Forge outdated #226
- new release to fix Nodesource 4.x on CentOS 6.7 #222
- Question: uninstall nodejs entirely #210
Merged pull requests:
- Release 2.0.1 #230 (bastelfreak)
- Add support for new versions of Ubuntu/NodeJS #229 (ColinHebert)
v2.0.0 (2016-05-22)
Fixed bugs:
- Use npm to install a specific npm version #160
- Can't ensure latest if package is not instatlled #158
Closed issues:
- provider broken on Puppet v3.8.6 w/ Ruby 1.8.7 #217
- Always installs node '0.10.42', but need '5.x', and npm #208
- Caveat section in the README should be removed after feature check implemented #206
- Feature check is not being re-evaluated during the run #204
- Provider should confine to feature, which should check if npm is actually installed #202
- Upgrade from 4.x to 5.x, Downgrade from 5.x to 4.x #197
- Expand rspec tests that were modified for Rubocop #193
- undefined method `ref' for nil:NilClass #185
- $repo_url_suffix ignores 5.x and 4.x (or others) #184
- puppetforge reports old version #179
Merged pull requests:
- Node 6 is now available on EL6 & EL7 #225 (tapsboy)
- Prepare for release 2.0.0 #224 (bastelfreak)
- Fix ordering bug when using global_config_entry and managing npm #221 (ghoneycutt)
- Document NPM's behavior of adding a trailing slash to URL's #220 (ghoneycutt)
- Do not hardcode the 'root' group name, use the 'gid' for that. #219 (buzzdeee)
- Manage /root/.npmrc #216 (ghoneycutt)
- Update validation for EL 6. #213 (loopiv)
- Fixes #206 - Remove the caveat section from the readme #207 (imriz)
- Fixes #204 - Workaround PUP-5985 #205 (imriz)
- Fixes #202 - Implement a feature check for npm #203 (imriz)
- ensure apt-get update is executed before installing packages #201 (saz)
- Modulesync #200 (juniorsysadmin)
- Use npm view package version, fix ensure=>latest bug #199 (joelgarboden)
- Making it possible to provide concrete nodejs versions to force upgrade/downgrade (#197) #198 (fstr)
- Reverse Rubocop ugliness #196 (juniorsysadmin)
- Change npm_package_name from "undef" to "false" for better comparison. #195 (x3dfxjunkie)
- Correct badge location #194 (rnelson0)
v1.3.0 (2016-01-07)
Implemented enhancements:
- Support non-default (i.e. 0.12) versions on RedHat #159
- Make repo_url_suffix to be usable for RH/CentOS #174 (tsde)
Closed issues:
- Puppetforge nodejs is not the same version as on github #182
- What needs to be done to make this puppet 4 ready? #175
- Possibly missing dependency on puppetlabs-apt #172
- Nodejs package is installed before apt is updated #171
- install dependencies from package.json #167
- undefined method `ref' for nil:NilClass on v1.1.0 #149
Merged pull requests:
- prep release for 1.3.0 #192 (igalic)
- fix(rubocop) clean up rubocop errors #191 (igalic)
- WIP: Attempt to fix failng Rubocop lint checks #190 (juniorsysadmin)
- fix(examples) puppet lint complains about relative names #189 (igalic)
- Update from voxpupuli modulesync_config #188 (igalic)
- move secure line into .sync (in prep for msync) #186 (igalic)
- Updates README with spaceship collector advice #183 (petems)
- Fix notes about repo_url_suffix usage in README #181 (tsde)
- Add note oninstalling node 5.x #180 (tarjei)
- Bump minimum Puppet version to 3.7.0 #178 (juniorsysadmin)
- Update the puppet version requirement since tests and implementations… #177 (ghost)
- Fix repo_url_suffix regex validation #176 (tsde)
- Fixed typographical error, changed arbitary to arbitrary in README. #170 (orthographic-pedant)
- Remove soft dependency on treydock/gpg_key #152 (juniorsysadmin)
1.2.0 (2015-08-20)
Closed issues:
- Add a dependency for treydock/gpg #143
- release 1.0.0 #142
- Fix deprecated use of should syntax in provider RSpec test #140
- Fix RSpec tests so that they run successfully under docker containers #137
Merged pull requests:
- "Gpg module is gpg_key not gpg" #164 (nibalizer)
- "Add dependency on treydock/gpg_key" #163 (nibalizer)
- "Prep 1.2.0 Release" #162 (nibalizer)
- Allowed home environment variable to be set #161 (mootpt)
- Fix failing provider RSpec test when running on docker #156 (juniorsysadmin)
- fixing amazon default settings #155 (webratz)
- Fix missing trailing comma and os version check #153 (juniorsysadmin)
- RSpec tests: Convert should to expect using transpec #151 (juniorsysadmin)
- Update .travis.yml #150 (juniorsysadmin)
1.1.0 (2015-06-24)
Merged pull requests:
- Prep for Travis push releases #148 (juniorsysadmin)
- Amend CHANGELOG in preparation for 1.1.0 #147 (juniorsysadmin)
- Make repo::nodesource::apt compatible with puppetlabs-apt 2.x only #133 (juniorsysadmin)
1.0.0 (2015-06-12)
Closed issues:
- Support nodejs-legacy package for Debian #67
- Release new version to the forge #60
- Unmet dependencies installing node and npm on Debian 7 (Wheezy) #58
- NPN Packages Global install on centos #57
- Enforce that npm is installed with collectors before using it #54
- Proxy config fails on ubuntu when using the managed repo #51
- Please note node version in readme #50
- EL packages are ancient and from unofficial repo #49
- Nodejs version under ubuntu #48
- Add support for Windows 7 #44
- "Could not update: Got nil value for ensure" on "ensure => latest" #43
- nodejs/manifests/params.pp installs /etc/yum.repos.d/nodejs-stable.repo which doesn't work with Scientific Linux 6.4 #38
- node.js manifests/params.pp & manifests/init.pp should support Scientific Linux #37
- EPEL nodejs conflicting with nodejs-compat-symlinks #33
Merged pull requests:
- Added npm package dependency for Archlinux #146 (justin8)
- Update README #141 (juniorsysadmin)
- Fix metadata.json #136 (mcanevet)
- Fix stdlib and Puppet version requirements in metadata.json #130 (juniorsysadmin)
0.8.0 (2015-05-11)
Breaking changes:
- (MODULES-1637) Major refactor #103 (juniorsysadmin)
Merged pull requests:
- release prep 0.8.0 #134 (tphoney)
- Don't use deprecated chocolatey module #132 (juniorsysadmin)
- pin apt for acceptance tests #131 (tphoney)
- Use ~> 3.0 not ~> 3.5.0 #127 (underscorgan)
- Document that puppetlabs-apt versions less than 2.x are required #126 (juniorsysadmin)
- Handle NodeSource Debian URL suffixes #125 (juniorsysadmin)
- Fix yumrepo parameter typo #124 (juniorsysadmin)
- Update rspec-puppet tests for 2.0 #123 (juniorsysadmin)
- Fix class containment #121 (juniorsysadmin)
- Fix gpg key checking warings after f588f26 in puppetlabs-apt #119 (paroga)
- Make it obvious NodeSource doesn't have a npm package #116 (juniorsysadmin)
- Change ruby provider to NPM provider #114 (hunner)
- nodejs::npm::target is required #113 (hunner)
- Make sure nodejs::install is private #112 (hunner)
- README.md #111 (malnick)
0.7.1 (2015-01-21)
Merged pull requests:
- 0.7.1 prep #107 (underscorgan)
- Correct broken application of PR #70 #106 (theothertom)
0.7.0 (2015-01-21)
Merged pull requests:
- 0.7.0 prep #105 (underscorgan)
- Add max_nesting parameter to npm list json parse #101 (rangoy)
- Replace Chris Lea's PPA with the Nodesource repo #100 (atrepca)
- Fix typo in README.md #98 (zorbash)
- Parameterize package names #97 (skpy)
- FM-1523: Added module summary to metadata.json #95 (jbondpdx)
- Add Archlinux support #90 (Filirom1)
- updated travis to current versions of puppet #79 (jlambert121)
- fix requires for proxy config when on ubuntu #51 #70 (sfc-gh-eraigosa)
0.6.1 (2014-07-15)
Merged pull requests:
- Prepare 0.6.1 release. #83 (apenney)
- Prepare 0.6.0 release. #81 (underscorgan)
0.6.0 (2014-06-18)
Merged pull requests:
- Fix the specs. #76 (apenney)
- Remove metadata, since it's not correct #74 (hunner)
- install nodejs and npm on gentoo #71 (hairmare)
0.5.0 (2014-03-20)
Merged pull requests:
- Prepare a 0.5.0 release. #73 (apenney)
- Ubuntu uses uppercase for the operatingsystem fact #68 (barthoda)
- add support for Scientific Linux operatingsystem #65 (faxm0dem)
- Fix ubuntu development package being installed when dev flag is set to false #64 (vpassapera)
- Changed Amazon package name #61 (davideme)
- Set $HOME for npm execs (pkgs like node-gym require) #59 (patcon)
- Ignore exit codes from "npm list --json" as they can be misleading #56 (domcleal)
- FM-103: Add metadata.json to all modules. #52 (apenney)
- Add Gemfile and update travis to test against modern versions of Puppet. #47 (apenney)
- Update README.md #32 (antoniojrod)
0.4.0 (2013-08-29)
Closed issues:
- Release to the Forge #39
Merged pull requests:
0.3.0 (2013-08-01)
Closed issues:
- Ubuntu support? Or npm install failure #30
Merged pull requests:
- Prepare a 0.3.0 release. #40 (apenney)
- refactor to address issues 27 and 33 #36 (wolfspyre)
- Fix to install failure's on Ubuntu #34 (siwilkins)
0.2.1 (2012-12-28)
Merged pull requests:
- Bugfix/yumrepo: nodejs.tchol.org #26 (razorsedge)
- Fix typo in README.md #19 (jjbohn)
- Fix puppetlabs-apt link in README #17 (alefteris)
- Fix Dynamic lookup of $lsbdistcodename #13 (stephenrjohnson)
- Add support for npm proxy configuration. #12 (nanliu)
- Update for the new puppetlabs_spec_helper gem #11 (branan)
0.2.0 (2012-05-22)
Merged pull requests:
- Add new module release file. #10 (nanliu)
- Nodejs npm provider and ppa changes. #9 (nanliu)
- fix .travis.yml for the apt module repo rename #8 (branan)
- Fix spec test bug on Puppet 2.6. #7 (nanliu)
- Add files for Travis CI #6 (branan)
- Add RedHat family support for Nodejs. #5 (nanliu)
0.1.1 (2012-05-07)
Merged pull requests:
- Release new module version. #4 (nanliu)
- Include apt class instead of parametrized class. #3 (nanliu)
- Update nodejs module for initial forge release. #1 (nanliu)
0.1.0 (2012-05-01)
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/stdlib (>= 4.25.0 < 10.0.0)
Copyright (C) 2012 Puppet Labs Inc Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS