Solución:
Aquí está el ejemplo de trabajo:
---
- hosts: all
gather_facts: yes
become: yes
vars:
NODEJS_VERSION: "8"
ansible_distribution_release: "xenial" #trusty
tasks:
- name: Install the gpg key for nodejs LTS
apt_key:
url: "https://deb.nodesource.com/gpgkey/nodesource.gpg.key"
state: present
- name: Install the nodejs LTS repos
apt_repository:
repo: "deb https://deb.nodesource.com/node_{{ NODEJS_VERSION }}.x {{ ansible_distribution_release }} main"
state: present
update_cache: yes
- name: Install the nodejs
apt:
name: nodejs
state: present
Espero que te ayude
No es que esté muy feliz de haber tenido que hacer esto, pero …
(env: Ubuntu 18.04, ansible 2.6.1, host: macOS )
de https://github.com/nodesource/distributions/blob/master/README.md#debinstall
- name: install node
shell: |
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - && sudo apt-get install -y nodejs
resultado:
> [email protected]:~$ node --version
v10.15.2
y npm
debe haber venido también:
[email protected]:~$ npm --version
6.4.1
En el momento en que ejecuté esto, se mostraba https://www.npmjs.com/package/npm 6.8.0 como último, con 6.4.1 siendo de 6 meses antes. Nodo estaba mostrando 10.15.2 como el último de la serie 10.x, que data de 5 días antes.
por cierto, también lo intenté apt-get
pero eso terminó con el nodo 8.x en lugar de 10.x
Y la razón por la que no usé un rol de galaxia ansible es que no vi ninguno de nodejs que pareciera provenir de autores conocidos y con muchas estrellas y descargas (soy cauteloso y sospechoso).
actualizando npm
Mi máquina de desarrollo tenía 6.8.0
así que agregué esto:
vars.yml:
versions:
npm: "6.8.0"
playbook.yml:
- name: npm self-update
command: npm install [email protected]{{ versions.npm }} -g
que me llevó todo el camino a:
[email protected]:~$ npm --version
6.8.0
La respuesta aceptada es buena, pero si lo desea, puede usar variables descubiertas para el nombre en clave de la distribución (a saber ansible_lsb.codename
). Además, asegurándose de que gcc g++ make
están instalados en la máquina host, lo que garantiza que los complementos nativos para nodejs funcionen correctamente.
Simplemente reemplace la versión del nodo 12
con lo que te gustaría.
---
- name: Install nodejs
hosts: all
become: true
tasks:
- name: install nodejs prerequisites
apt:
name:
- apt-transport-https
- gcc
- g++
- make
state: present
- name: add nodejs apt key
apt_key:
url: https://deb.nodesource.com/gpgkey/nodesource.gpg.key
state: present
- name: add nodejs repository
apt_repository:
repo: deb https://deb.nodesource.com/node_12.x {{ ansible_lsb.codename }} main
state: present
update_cache: yes
- name: install nodejs
apt:
name: nodejs
state: present