2026-03-14 17:54:42 +01:00
2026-03-12 12:57:30 +01:00
2026-03-12 12:57:30 +01:00
2026-03-12 12:57:30 +01:00
2026-03-12 12:57:30 +01:00
2026-03-12 12:57:30 +01:00
2026-03-14 17:54:42 +01:00

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_nvm is enabled, nvm v0.40.4 is installed for the specified user
  • PM2 is always installed globally regardless of other settings
  • The become_flags: -i is 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.
Readme 27 KiB