- name: Install Node for Arch block: - name: Install Node deps for Arch become: true community.general.pacman: name: - curl - base-devel state: present - name: Install Node for Arch become: true community.general.pacman: name: - nodejs - npm state: present when: ansible_facts.distribution == 'Archlinux' - name: Install Node for Debian based systems block: - name: Ensure node deps are installed for Debian based systems become: true ansible.builtin.apt: name: - curl - build-essential state: present - name: Check if Node source exists ansible.builtin.stat: path: /etc/apt/sources.list.d/nodesource.list register: node_source_installed changed_when: false - name: Install Node source for Debian based systems become: true # noqa command-instead-of-module ansible.builtin.shell: | curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash - changed_when: false when: not node_source_installed.stat.exists - name: Install Node become: true ansible.builtin.apt: name: - nodejs state: present when: ansible_facts.os_family == 'Debian' - name: Install Node for RedHat based systems block: - name: Ensure node deps are installed for RedHat based systems become: true ansible.builtin.dnf: name: - curl - "@Development Tools" state: present - name: Check if Node source is installed ansible.builtin.shell: | dnf repolist | grep nodesource register: node_source_installed changed_when: false failed_when: node_source_installed.rc > 1 - name: Install Node source for RedHat based systems # noqa command-instead-of-module ansible.builtin.shell: | curl -fsSL https://rpm.nodesource.com/setup_current.x | sudo bash - changed_when: false when: node_source_installed.rc != 0 - name: Install Node for RedHat based systems become: true ansible.builtin.dnf: name: nodejs state: present when: ansible_facts.os_family == 'RedHat' - name: Install Node for MacOS community.general.homebrew: name: - node state: present when: ansible_facts.distribution == 'MacOSX'