feat(ensure-nodejs-fork): skip installing Node if already installed

This should help speed up builds.

Change-Id: Ia1548d32b001e9bffda93f4cfc83086a044ab484
diff --git a/roles/ensure-nodejs-fork/tasks/install-nodejs.yaml b/roles/ensure-nodejs-fork/tasks/install-nodejs.yaml
new file mode 100644
index 0000000..c97152f
--- /dev/null
+++ b/roles/ensure-nodejs-fork/tasks/install-nodejs.yaml
@@ -0,0 +1,64 @@
+- 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