82 lines
1.8 KiB
Markdown
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
|