Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nvm/update node version #77

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 95 additions & 1 deletion roles/nvm/tasks/nvm-install.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,51 @@
---
# Should we detect for an existing nvm / node is installed
- name: Check if NVM is installed
ansible.builtin.shell: command -v nvm
changed_when: false
failed_when: false
register: nvm_installed

- name: Check if Node is installed
ansible.builtin.shell: command -v node
changed_when: false
failed_when: false
register: node_installed

- name: Get Installed Node Version
ansible.builtin.shell: node --version | cut -c2-
register: node_version
changed_when: false
failed_when: false
when: node_installed.stdout != ""

- name: Set Node Version
ansible.builtin.set_fact:
node_installed_version: "{{ node_version.stdout }}"
when: node_installed.stdout != ""

- name: Check if Node Update is needed
ansible.builtin.assert:
that:
- node_installed_version is version_compare(nvm.node.version, '!=')
success_msg: "Node Version Needs to be Updated / Reinstalled."
fail_msg: "Node Version is already up to date."
register: node_update_needed
when: node_installed.stdout != ""

# To trick ansible into running the purge tasks here,
# we need to apply the 'install' tags to the purge tasks
- name: Purge NVM and Node
ansible.builtin.include_role:
name: nvm
tasks_from: nvm-purge.yml
apply:
tags:
- nvm-install
- nvm
- all
when:
- node_update_needed is defined
- node_update_needed

- name: Ensure NVM Directory exists
ansible.builtin.file:
Expand Down Expand Up @@ -44,3 +90,51 @@
creates: "/home/{{ global.user }}/.nvm/versions/node/v{{ nvm.node.version }}"
become: true
become_user: "{{ global.user }}"

- name: Install Logrotate
ansible.builtin.include_role:
name: logrotate
tasks_from: logrotate-install.yml
apply:
tags:
- nvm-install
- nvm
when:
- node_update_needed is defined
- node_update_needed

- name: Install PM2
ansible.builtin.include_role:
name: pm2
tasks_from: pm2-install.yml
apply:
tags:
- nvm-install
- nvm
when:
- node_update_needed is defined
- node_update_needed

- name: Install Watchdog
ansible.builtin.include_role:
name: watchdog
tasks_from: watchdog-install.yml
apply:
tags:
- nvm-install
- nvm
when:
- node_update_needed is defined
- node_update_needed

- name: Start PM2
ansible.builtin.include_role:
name: pm2
tasks_from: pm2-conf.yml
apply:
tags:
- nvm-install
- nvm
when:
- node_update_needed is defined
- node_update_needed
30 changes: 30 additions & 0 deletions roles/nvm/tasks/nvm-purge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,36 @@
name: daemon
tasks_from: daemon-stop.yml

- name: Purge Logrotate
ansible.builtin.include_role:
name: logrotate
tasks_from: logrotate-purge.yml
apply:
tags:
- nvm-purge
- purge
become: true

- name: Purge PM2
ansible.builtin.include_role:
name: pm2
tasks_from: pm2-purge.yml
apply:
tags:
- nvm-purge
- purge
become: true

- name: Purge Watchdog
ansible.builtin.include_role:
name: watchdog
tasks_from: watchdog-purge.yml
apply:
tags:
- nvm-purge
- purge
become: true

- name: Remove nvm and node files
ansible.builtin.file:
path: "{{ item }}"
Expand Down
1 change: 1 addition & 0 deletions roles/pm2/tasks/pm2-stop.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
---
- name: "PM2 | Stop"

Check warning on line 2 in roles/pm2/tasks/pm2-stop.yml

View workflow job for this annotation

GitHub Actions / lint

ignore-errors

Use failed_when and specify error conditions instead of using ignore_errors.
become: true
become_user: "{{ global.user }}"
ansible.builtin.shell: |
source /home/{{ global.user }}/.nvm/nvm.sh
{{ item }}
changed_when: false
ignore_errors: true
args:
executable: /bin/bash
loop:
Expand Down
2 changes: 1 addition & 1 deletion vars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ fluxbench:
nvm:
repo: https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh
node:
version: 16.19.1
version: 20.9.0

ip:
url1: https://api.ipify.org
Expand Down