53 lines
1.3 KiB
YAML
53 lines
1.3 KiB
YAML
---
|
|
- name: Add NodeSource apt repository
|
|
ansible.builtin.deb822_repository:
|
|
name: nodesource
|
|
types: deb
|
|
uris: "https://deb.nodesource.com/node_{{ node_major }}.x"
|
|
suites: nodistro
|
|
components: main
|
|
signed_by: "https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key"
|
|
state: present
|
|
register: _nodesource_repo
|
|
|
|
- name: Force NodeSource over the distro nodejs/npm
|
|
ansible.builtin.copy:
|
|
dest: /etc/apt/preferences.d/nodesource.pref
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
content: |
|
|
Package: *
|
|
Pin: origin "deb.nodesource.com"
|
|
Pin-Priority: 1001
|
|
register: _nodesource_pin
|
|
|
|
- name: Refresh apt cache after NodeSource changes
|
|
ansible.builtin.apt:
|
|
update_cache: true
|
|
when: _nodesource_repo is changed or _nodesource_pin is changed
|
|
|
|
- name: Remove distro nodejs/npm (NodeSource nodejs bundles its own npm + npx)
|
|
ansible.builtin.apt:
|
|
name:
|
|
- npm
|
|
- nodejs
|
|
state: absent
|
|
purge: true
|
|
|
|
- name: Install Node.js from NodeSource (includes npm + npx)
|
|
ansible.builtin.apt:
|
|
name: nodejs
|
|
state: latest
|
|
allow_downgrade: true
|
|
update_cache: true
|
|
|
|
- name: Verify node / npm / npx available
|
|
ansible.builtin.command:
|
|
cmd: "{{ item }} --version"
|
|
loop:
|
|
- node
|
|
- npm
|
|
- npx
|
|
changed_when: false
|