ansible-role-mastodon/tasks/bare/nodejs.yml

48 lines
1.5 KiB
YAML

#Ansible is not able to work with "dnf module" outside of installing them.
#Shell has to be used to check if a specific app stream is enabled, and then disable and enable
#the appropriate app streams to get the correct nodejs version for Yarn.
- name: Check if NodeJS 10 module is enabled
become: true
shell: "dnf module list nodejs | grep -q 'nodejs 10 \\[d\\]\\[e\\]' && echo true || echo false"
register: is_node10_enabled
ignore_errors: true
when:
- ansible_os_family == "RedHat"
- ansible_facts['distribution_major_version'] == "8"
- name: Disable NodeJS 10 module
become: true
shell: "dnf module disable nodejs:10 -y"
ignore_errors: true
when:
- ansible_os_family == "RedHat"
- ansible_facts['distribution_major_version'] == "8"
- is_node10_enabled.stdout | bool
- name: Enable NodeJS 16 module
become: true
shell: "dnf module enable nodejs:16 -y"
ignore_errors: true
when:
- ansible_os_family == "RedHat"
- ansible_facts['distribution_major_version'] == "8"
- is_node10_enabled.stdout | bool
- name: Install NodeJS 16 via DNF
become: true
dnf:
name: "@nodejs:16"
state: present
when:
- ansible_os_family == "RedHat"
- ansible_facts['distribution_major_version'] == "8"
#RHEL9 already installs NodeJS 16 by default
- name: Install NodeJS via DNF
become: true
dnf:
name: "nodejs"
state: present
when:
- ansible_os_family == "RedHat"
- ansible_facts['distribution_major_version'] == "9"