NodeJS Ansible Role
Installs and configures Node.js on Debian systems. Supports installation via Nodesource repository or nvm (Node Version Manager). Also includes optional PM2, npm modules, and Composer installation.
Requirements
- Ansible 2.1+
- Debian 10, 11, or 12
Role Variables
| Variable | Default | Description |
|---|---|---|
nodejs_version |
20.x |
Node.js version to install (LTS recommended) |
nodejs_nvm |
false |
Install Node.js via nvm instead of system package |
nodejs_nvm_version |
20.0.0 |
Node.js version to install via nvm |
nodejs_user |
root |
User to install Node.js and npm packages for |
npm_modules |
[] |
List of additional npm modules to install |
composer |
false |
Install Composer (PHP dependency manager) |
Dependencies
None
Example Playbook
Basic Installation (System Node.js)
- hosts: servers
roles:
- lsa.nodejs
Install Node.js via nvm
- hosts: servers
roles:
- role: lsa.nodejs
nodejs_nvm: true
nodejs_nvm_version: 20.0.0
nodejs_user: deploy
Install with Additional npm Modules
- hosts: servers
roles:
- role: lsa.nodejs
nodejs_user: deploy
npm_modules:
- name: typescript
- name: nodemon
- name: pm2
enable: true
Install with Composer
- hosts: servers
roles:
- role: lsa.nodejs
composer: true
License
Apache-2.0
Author
Michael Hettwer - Linux-Server-Admin.com S.R.O.
Notes
- When
nodejs_nvmis enabled, nvm v0.40.4 is installed for the specified user - PM2 is always installed globally regardless of other settings
- The
become_flags: -iis used to ensure interactive shell execution for proper profile loading
Description
Installs and configures Node.js on Debian systems. Supports installation via Nodesource repository or nvm (Node Version Manager). Also includes optional PM2, npm modules, and Composer installation.