Skip to content

Commit

Permalink
fix: migrate to NodeSource's new repository
Browse files Browse the repository at this point in the history
The old repository is no longer updated. The new "nodistro" suite should
now be used instead[0].

NodeSource's repository server currently restricts User-Agents,
downloading the signing key was necessary in an extra step[1].

The Debian setup was tested successfully with Node.js version "18.x" and
"20.x". The RedHat setup, however, was not tested as I do not have any
RedHat-based systems laying around.

[0] https://github.com/nodesource/distributions/wiki/How-to-migrate-to-the-new-repository
[1] nodesource/distributions#1723
  • Loading branch information
oxzi committed Nov 29, 2023
1 parent d639923 commit f9cea88
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 11 deletions.
26 changes: 17 additions & 9 deletions tasks/setup-Debian.yml
Original file line number Diff line number Diff line change
@@ -1,31 +1,39 @@
---
- name: Ensure dependencies are present.
apt:
ansible.builtin.apt:
name:
- apt-transport-https
- gnupg2
state: present

- name: Download NodeSource's signing key.
# NodeSource's web server discriminates the User-Agent used by the deb822_repository module.
# https://github.com/nodesource/distributions/issues/1723
ansible.builtin.get_url:
url: https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key
dest: /etc/apt/signing-key-nodesource-repo.asc
owner: root
group: root
mode: '0444'
register: node_signing_key

- name: Add NodeSource repositories for Node.js.
deb822_repository:
ansible.builtin.deb822_repository:
name: nodesource_{{ nodejs_version }}
uris: "https://deb.nodesource.com/node_{{ nodejs_version }}"
types:
- deb
- deb-src
suites: "{{ ansible_distribution_release }}"
types: deb
suites: nodistro
components: main
signed_by: https://keyserver.ubuntu.com/pks/lookup?op=get&fingerprint=on&search=0x1655A0AB68576280
signed_by: "{{ node_signing_key.dest }}"
state: present
register: node_repo

- name: Update apt cache if repo was added.
apt: update_cache=yes
ansible.builtin.apt: update_cache=yes
when: node_repo is changed
tags: ['skip_ansible_lint']

- name: Ensure Node.js and npm are installed.
apt:
ansible.builtin.apt:
name: "nodejs={{ nodejs_version | regex_replace('x', '') }}*"
state: present
4 changes: 2 additions & 2 deletions tasks/setup-RedHat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@

- name: Add Nodesource repositories for Node.js (CentOS < 7).
yum:
name: "http://rpm.nodesource.com/{{ nodejs_rhel_rpm_dir }}/el/{{ ansible_distribution_major_version }}/{{ ansible_architecture }}/nodesource-release-el{{ ansible_distribution_major_version }}-1.noarch.rpm"
name: "http://rpm.nodesource.com/pub_{{ nodejs_rhel_rpm_dir }}/nodistro/repo/nodesource-release-nodistro-1.noarch.rpm"
state: present
when: ansible_distribution_major_version | int < 7
register: node_repo

- name: Add Nodesource repositories for Node.js (CentOS 7+).
yum:
name: "https://rpm.nodesource.com/{{ nodejs_rhel_rpm_dir }}/el/{{ ansible_distribution_major_version }}/{{ ansible_architecture }}/nodesource-release-el{{ ansible_distribution_major_version }}-1.noarch.rpm"
name: "https://rpm.nodesource.com/pub_{{ nodejs_rhel_rpm_dir }}/nodistro/repo/nodesource-release-nodistro-1.noarch.rpm"
state: present
when: ansible_distribution_major_version | int >= 7
register: node_repo
Expand Down

0 comments on commit f9cea88

Please sign in to comment.