geerlingguy.nodejs
Rôle Ansible : Node.js
Installe Node.js sur RHEL/CentOS ou Debian/Ubuntu.
Exigences
Aucune.
Variables du Rôle
Les variables disponibles sont listées ci-dessous, avec des valeurs par défaut (voir defaults/main.yml
) :
nodejs_version: "16.x"
La version de Node.js à installer. "14.x" est la valeur par défaut et fonctionne sur la plupart des systèmes d'exploitation pris en charge. D'autres versions comme "10.x", "14.x", "18.x", etc. devraient fonctionner sur les dernières versions de Debian/Ubuntu et RHEL/CentOS.
nodejs_install_npm_user: "{{ ansible_ssh_user }}"
L'utilisateur pour lequel les packages npm seront installés peut être défini ici, la valeur par défaut est ansible_user
.
npm_config_prefix: "/usr/local/lib/npm"
Le répertoire d'installation global. Cela doit être accessible en écriture par nodejs_install_npm_user
.
npm_config_unsafe_perm: "false"
Définir sur vrai pour supprimer le changement d'UID/GID lors de l'exécution des scripts de package. S'il est explicitement défini sur faux, l'installation en tant qu'utilisateur non-root échouera.
nodejs_npm_global_packages: []
Une liste de packages npm avec un nom
et une version
(optionnelle) à installer globalement. Par exemple :
nodejs_npm_global_packages:
# Installer une version spécifique d'un package.
- name: jslint
version: 0.9.3
# Installer la dernière version stable d'un package.
- name: node-sass
# Cette syntaxe abrégée fonctionne aussi (identique à l'exemple précédent).
- node-sass
# Supprimer un package en définissant l'état sur 'absent'.
- name: node-sass
state: absent
nodejs_package_json_path: ""
Définir un chemin pointant vers un fichier package.json
particulier (par exemple "/var/www/app/package.json"
). Cela installera tous les packages définis globalement en utilisant le module npm
d'Ansible.
nodejs_generate_etc_profile: "true"
Par défaut, le rôle créera /etc/profile.d/npm.sh
avec des variables exportées (PATH
, NPM_CONFIG_PREFIX
, NODE_PATH
). Si vous préférez éviter de générer ce fichier (par exemple, si vous souhaitez définir les variables vous-même pour une installation non globale), définissez-le sur "false".
Dépendances
Aucune.
Exemple de Playbook
- hosts: utility
vars_files:
- vars/main.yml
roles:
- geerlingguy.nodejs
À l'intérieur de vars/main.yml
:
nodejs_npm_global_packages:
- name: jslint
- name: node-sass
Licence
MIT / BSD
Informations sur l'Auteur
Ce rôle a été créé en 2014 par Jeff Geerling, auteur de Ansible for DevOps.
Node.js installation for Linux
ansible-galaxy install geerlingguy.nodejs