From 6367c3c9ce7dc627b2f1304342c75f473c5518b6 Mon Sep 17 00:00:00 2001 From: TechDufus Date: Tue, 2 Jan 2024 21:50:56 -0600 Subject: [PATCH 1/2] Adding node check and upgrade steps. --- roles/nvm/tasks/nvm-install.yml | 45 ++++++++++++++++++++++++++++++++- vars.yml | 2 +- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/roles/nvm/tasks/nvm-install.yml b/roles/nvm/tasks/nvm-install.yml index c3bed61..3389d91 100644 --- a/roles/nvm/tasks/nvm-install.yml +++ b/roles/nvm/tasks/nvm-install.yml @@ -1,5 +1,48 @@ --- -# Should we detect for an existing nvm / node is installed +- name: Check if NVM is installed + ansible.builtin.command: command -v nvm + changed_when: false + failed_when: false + register: nvm_installed + +- name: Check if Node is installed + ansible.builtin.command: command -v node + args: + executable: /bin/bash -i + changed_when: false + failed_when: false + register: node_installed + +- name: Get Installed Node Version + ansible.builtin.command: node --version | cut -c2- + args: + executable: /bin/bash -i + register: node_version + changed_when: false + failed_when: false + when: node_installed.stdout != "" + +- name: Check if Node Update is needed + ansible.builtin.assert: + that: + - node_version.stdout | version(nvm.node.version, '!=') + 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: diff --git a/vars.yml b/vars.yml index b08a6c7..68af005 100644 --- a/vars.yml +++ b/vars.yml @@ -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 From 412d50a7ed17e73455d2a23972eda9f1f700beee Mon Sep 17 00:00:00 2001 From: TechDufus Date: Tue, 2 Jan 2024 23:24:22 -0600 Subject: [PATCH 2/2] Finalizing purge / install steps for nvm upgrade. --- roles/nvm/tasks/nvm-install.yml | 67 +++++++++++++++++++++++++++++---- roles/nvm/tasks/nvm-purge.yml | 30 +++++++++++++++ roles/pm2/tasks/pm2-stop.yml | 1 + 3 files changed, 90 insertions(+), 8 deletions(-) diff --git a/roles/nvm/tasks/nvm-install.yml b/roles/nvm/tasks/nvm-install.yml index 3389d91..6f3b42d 100644 --- a/roles/nvm/tasks/nvm-install.yml +++ b/roles/nvm/tasks/nvm-install.yml @@ -1,31 +1,34 @@ --- - name: Check if NVM is installed - ansible.builtin.command: command -v nvm + ansible.builtin.shell: command -v nvm changed_when: false failed_when: false register: nvm_installed - name: Check if Node is installed - ansible.builtin.command: command -v node - args: - executable: /bin/bash -i + ansible.builtin.shell: command -v node changed_when: false failed_when: false register: node_installed - name: Get Installed Node Version - ansible.builtin.command: node --version | cut -c2- - args: - executable: /bin/bash -i + 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_version.stdout | version(nvm.node.version, '!=') + - 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 != "" @@ -87,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 diff --git a/roles/nvm/tasks/nvm-purge.yml b/roles/nvm/tasks/nvm-purge.yml index f9338ad..6871430 100644 --- a/roles/nvm/tasks/nvm-purge.yml +++ b/roles/nvm/tasks/nvm-purge.yml @@ -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 }}" diff --git a/roles/pm2/tasks/pm2-stop.yml b/roles/pm2/tasks/pm2-stop.yml index 3a6d506..5fd5278 100644 --- a/roles/pm2/tasks/pm2-stop.yml +++ b/roles/pm2/tasks/pm2-stop.yml @@ -6,6 +6,7 @@ source /home/{{ global.user }}/.nvm/nvm.sh {{ item }} changed_when: false + ignore_errors: true args: executable: /bin/bash loop: