| - name: Ensure we know what version of node to install |
| assert: |
| that: node_version is defined |
| |
| - name: Update apt cache |
| apt: |
| update_cache: yes |
| become: yes |
| |
| - name: Install prereqs |
| package: |
| name: apt-transport-https |
| state: present |
| become: yes |
| |
| - name: Pin nodejs installs to nodesource |
| copy: |
| src: 00-nodesource.pref |
| dest: /etc/apt/preferences.d/00-nodesource.pref |
| mode: 0644 |
| become: yes |
| |
| - name: Add all repositories |
| include_role: |
| name: ensure-package-repositories |
| vars: |
| repositories_keys: |
| - url: https://deb.nodesource.com/gpgkey/nodesource.gpg.key |
| repositories_list: |
| - repo: deb-src https://deb.nodesource.com/node_{{ node_version }}.x {{ ansible_distribution_release }} main |
| - repo: deb https://deb.nodesource.com/node_{{ node_version }}.x {{ ansible_distribution_release }} main |
| when: node_version | int < 16 |
| |
| - name: Add all repositories |
| include_role: |
| name: ensure-package-repositories |
| vars: |
| repositories_keys: |
| - url: https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key |
| repositories_list: |
| - repo: deb https://deb.nodesource.com/node_{{ node_version }}.x nodistro main |
| when: node_version | int >= 16 |
| |
| # Use template so that we can easily update this in the future to be able to |
| # use a mirror location. |
| - name: Pin NodeJS to nodesource apt repository |
| become: yes |
| template: |
| dest: /etc/apt/preferences.d/nodejs.pref |
| group: root |
| mode: 0644 |
| owner: root |
| src: nodejs.pref.j2 |
| |
| - name: Install NodeJS from nodesource |
| package: |
| name: nodejs |
| state: latest |
| become: yes |
| tags: |
| # Ignore ANSIBLE0010: We really want latest version |
| - skip_ansible_lint |
| |
| - name: Output node version |
| command: node --version |
| |
| - name: Output npm version |
| command: npm --version |