geerlingguy.nodejs
Ansible Rol: Node.js
Instala Node.js en RHEL/CentOS o Debian/Ubuntu.
Requisitos
Ninguno.
Variables del Rol
Las variables disponibles se enumeran a continuación, junto con sus valores predeterminados (ver defaults/main.yml
):
nodejs_version: "16.x"
La versión de Node.js a instalar. "14.x" es la predeterminada y funciona en la mayoría de los sistemas operativos soportados. Otras versiones como "10.x", "14.x", "18.x", etc., deberían funcionar en las últimas versiones de Debian/Ubuntu y RHEL/CentOS.
nodejs_install_npm_user: "{{ ansible_ssh_user }}"
El usuario para quien se instalarán los paquetes de npm se puede establecer aquí, de forma predeterminada es ansible_user
.
npm_config_prefix: "/usr/local/lib/npm"
El directorio de instalación global. Este debe ser escribible por el nodejs_install_npm_user
.
npm_config_unsafe_perm: "false"
Establecer en true para suprimir el cambio de UID/GID al ejecutar scripts de paquete. Si se establece explícitamente en false, la instalación como usuario no root fallará.
nodejs_npm_global_packages: []
Una lista de paquetes de npm con un name
y (opcional) version
que se instalarán globalmente. Por ejemplo:
nodejs_npm_global_packages:
# Instalar una versión específica de un paquete.
- name: jslint
version: 0.9.3
# Instalar la última versión estable de un paquete.
- name: node-sass
# Esta sintaxis abreviada también funciona (igual que el ejemplo anterior).
- node-sass
# Eliminar un paquete estableciendo el estado a 'absent'.
- name: node-sass
state: absent
nodejs_package_json_path: ""
Establecer una ruta apuntando a un package.json
particular (por ejemplo, "/var/www/app/package.json"
). Esto instalará todos los paquetes definidos globalmente usando el módulo npm
de Ansible.
nodejs_generate_etc_profile: "true"
Por defecto, el rol creará /etc/profile.d/npm.sh
con variables exportadas (PATH
, NPM_CONFIG_PREFIX
, NODE_PATH
). Si prefieres evitar generar ese archivo (por ejemplo, quieres establecer las variables tú mismo para una instalación no global), establece en "false".
Dependencias
Ninguna.
Ejemplo de Playbook
- hosts: utility
vars_files:
- vars/main.yml
roles:
- geerlingguy.nodejs
Dentro de vars/main.yml
:
nodejs_npm_global_packages:
- name: jslint
- name: node-sass
Licencia
MIT / BSD
Información del Autor
Este rol fue creado en 2014 por Jeff Geerling, autor de Ansible for DevOps.
Node.js installation for Linux
ansible-galaxy install geerlingguy.nodejs