Files
server-infra/roles/nodejs/tasks/main.yml
T
2026-07-08 05:59:11 -05:00

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