Files
lsa.nodejs/readme.md
2026-03-14 17:54:42 +01:00

82 lines
1.8 KiB
Markdown

# 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)
```yaml
- hosts: servers
roles:
- lsa.nodejs
```
### Install Node.js via nvm
```yaml
- hosts: servers
roles:
- role: lsa.nodejs
nodejs_nvm: true
nodejs_nvm_version: 20.0.0
nodejs_user: deploy
```
### Install with Additional npm Modules
```yaml
- hosts: servers
roles:
- role: lsa.nodejs
nodejs_user: deploy
npm_modules:
- name: typescript
- name: nodemon
- name: pm2
enable: true
```
### Install with Composer
```yaml
- 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