This commit is contained in:
2026-03-12 12:57:30 +01:00
parent d74fab4faa
commit cfd3b222c5
5 changed files with 125 additions and 0 deletions

5
.gitignore vendored Normal file
View File

@@ -0,0 +1,5 @@
# Generated by MacOS
.DS_Store
# Generated by Windows
Thumbs.db

10
defaults/main.yml Normal file
View File

@@ -0,0 +1,10 @@
---
nodejs_version: 20.x # LTS: 20.x
nodejs_nvm: false
nodejs_nvm_version: 20.0.0
nodejs_user: "root"
npm_modules: []
composer: false

1
handlers/main.yml Normal file
View File

@@ -0,0 +1 @@
---

14
meta/main.yml Normal file
View File

@@ -0,0 +1,14 @@
galaxy_info:
author: Michael Hettwer
description: NodeJS
company: Linux-Server-Admin.com S.R.O.
license: Apache-2.0
min_ansible_version: 2.1
platforms:
- name: Debian
versions:
- 10
- 11
- 12
galaxy_tags: []
dependencies: []

95
tasks/main.yml Normal file
View File

@@ -0,0 +1,95 @@
---
- name: "Add nodejs {{ nodejs_version }} repositories"
ansible.builtin.shell: "curl -fsSL https://deb.nodesource.com/setup_{{ nodejs_version }} | sudo bash -"
become: yes
become_flags: -i # Execute config f
- name: "Install nodejs {{ nodejs_version }}"
apt:
pkg:
- nodejs
# Setup node+nvm , check latest release at https://github.com/nvm-sh/nvm
- name: Setup Node
become: yes
become_flags: -i # Execute config files such as .profile (Ansible uses non-interactive login shells)
become_user: "{{ nodejs_user }}"
block:
- name: Install nvm
become: yes
become_user: "{{ nodejs_user }}"
ansible.builtin.shell: >
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.40.4/install.sh | bash
args:
executable: /bin/bash
chdir: "$HOME"
creates: "$HOME/.nvm/nvm.sh"
- name: Install node
become: yes
become_user: "{{ nodejs_user }}"
shell: >
. $HOME/.nvm/nvm.sh && nvm install {{ item }}
args:
executable: /bin/bash
chdir: "$HOME"
creates: "$HOME/.nvm/versions/{{ item }}"
loop:
- "{{ nodejs_nvm_version }}"
when: nodejs_nvm
- name: Install PM2 globally
npm:
name: pm2
global: true
state: present
become: true
become_user: "{{ nodejs_user }}"
- name: Add extras
become: yes
become_flags: -i # Execute config files such as .profile (Ansible uses non-interactive login shells)
become_user: "{{ nodejs_user }}"
block:
- name: Install npm modules
become: yes
become_user: "{{ nodejs_user }}"
ansible.builtin.shell: >
npm install {{ item.name }}
args:
executable: /bin/bash
chdir: "$HOME"
with_items: "{{ npm_modules }}"
when: npm_modules is defined
- name: Enable npm modules
become: yes
become_user: "{{ nodejs_user }}"
ansible.builtin.shell: >
{{ item.enable }}
args:
executable: /bin/bash
chdir: "$HOME"
with_items: "{{ npm_modules }}"
when: npm_modules.item.enable is true
#sudo npm install --global --unsafe-perm puppeteer
- name: Download and install Composer
shell: curl -sS https://getcomposer.org/installer | php
args:
chdir: /usr/src/
creates: /usr/local/bin/composer
become: yes
when: composer
- name: Add Composer to global path
copy:
dest: /usr/local/bin/composer
group: root
mode: '0755'
owner: root
src: /usr/src/composer.phar
remote_src: yes
become: yes
when: composer