
The ensure-nodejs role defaults to install nodejs 6 which produces this error currently: Failed to update apt cache: W:The repository 'https://deb.nodesource.com/node_6.x noble Release' does not have a Release file., W:Data from such a repository can't be authenticated and is therefore potentially dangerous to use. We need to make a few changes to bring this ensure-nodejs role up to modern expectations for nodesource usage. First we drop the default nodejs version from ensure-nodejs. Everyone is already setting this value to make this role work or they are broken and will need to change something anyway. This gets us off of the nodejs update treadmill in this role. Then with nodejs 16 and newer there is a new gpg key and no deb-src packages so we need to change the apt configuration if using 16 and newer. We make these changes to match the corresponding setup_16.x etc scripts from nodesource. Change-Id: I0d5c93e4fbcee0be2cc477bf9f625e419a2b9bd1
65 lines
1.7 KiB
YAML
65 lines
1.7 KiB
YAML
- 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
|