grzegorznowak.nvm_node
Ansible NVM Node
Installe Node via NVM sur Debian et RedHat.
Installation
Soit
ansible-galaxy install grzegorznowak.nvm_node
- Cloner directement le dépôt
Avertissement
C'est une installation assez personnalisée de Node qui ne dépend d'aucun des outils apt/yum et qui ne suit pas la méthode recommandée (voir https://github.com/creationix/nvm/issues/1533) d'utilisation de NVM. De plus, la gestion des versions n'est possible que via Ansible lui-même. Veuillez vous assurer que la configuration donnée ici est celle dont vous avez réellement besoin. Je dirais que c'est 70% pour les besoins de DEV et 30% pour la production. Et 0% si vous prévoyez d'avoir de nombreux utilisateurs/ rôles utilisant cela sur un seul serveur - ça ne fonctionnera pas dans l'état actuel (bien que cela puisse fonctionner à un moment donné avec un peu d'amour supplémentaire).
Le principal problème est qu'il installe NVM dans un chemin global et crée des liens symboliques vers /usr/local/bin
pour un accès général, et modifie le bashrc global pour inclure les chemins de NVM pour chaque utilisateur sur le système.
Bien que ce soit mineur, cela casse le concept de NVM en tant qu'outil par utilisateur, ainsi que de ne pas fonctionner parfaitement quand des shells non interactifs spécifiques sont utilisés. Cela pourrait affecter l'utilisation des packages npm installés dans ces cas.
Cependant, nvm, en tant qu'outil, est vraiment celui que nous préférons, donc c'est la manière dont nous en avons besoin et peut-être que vous en aurez aussi besoin !
Exigences
Aucune dépendance, juste notez qu'il installera wget
pour récupérer le script d'installation de nvm.
Couverture
Actuellement construit et intégré sur ces distributions :
Ubuntu : 20.04, 18.04, 16.04, 14.04
Debian : buster, stretch
CentOS : 7
Variables
valeurs par défaut
nvm_install_script_version: "0.33.11" # le script d'installation de nvm à utiliser (dernière version stable au moment de l'écriture)
nvm_user_name: "root" # vous pouvez utiliser un autre utilisateur, et vous pourriez finalement obtenir une approche plus conforme à nvm
# mais je ne l'ai pas couvert dans les tests, etc.
nvm_dir: "/var/lib/nvm" # pour une installation globale (par défaut). Suivez la même règle que la variable nvm_user_name
nvm_node_version: "8.11.3" # la version de Node à installer via nvm
nvm_install_globally: [] # bibliothèques à installer globalement et créer des liens symboliques, voir plus bas pour plus de détails
Exemple de playbook
lorsqu'il est cloné depuis github
---
- hosts: all
vars:
nvm_node_version: "4.1.1"
roles:
- role: ansible-nvm-node
lorsqu'il provient de ansible-galaxy
---
- hosts: all
vars:
nvm_node_version: "votre.version.node"
roles:
- role: grzegorznowak.nvm_node
Mise à jour de Node
Remplacez simplement nvm_node_version
par la version que vous souhaitez utiliser globalement et relancez le playbook.
Installation de packages globaux
Pour la meilleure cohérence, il est fortement recommandé d'installer des packages globaux en utilisant ce rôle également, dans ce cas
il suffit de modifier la variable nvm_install_globally
, comme suit :
nvm_install_globally: ['gulp']
Vous pouvez également utiliser le ciblage de version pour des packages globaux :
nvm_install_globally:
- name: yarn
version: 1.9.4
ou mélanger les deux :
nvm_install_globally:
- gulp
- lighthouse
- name: yarn
version: 1.9.4
Cela installera les bibliothèques listées et créera un lien symbolique dans le $PATH global pour que des environnements spécifiques (comme cron) y accèdent.
Tests
Exigences
Vous pouvez utiliser un script d'aide qui installera un environnement virtuel avec tout le nécessaire
./bootstrap_test.sh
Puis activez simplement l'environnement virtuel avec source test_env/bin/activate
ou le faire manuellement à 100% pour un meilleur contrôle
sudo apt install virtualenv python3-pip
virtualenv test_env --python=python3
source test_env/bin/activate
pip install -r test-requirements.txt
Tests avec des conteneurs LXC
molecule test
Avantages supplémentaires de molecule
Vous pouvez faire toutes sortes de choses très pratiques comme molecule converge
pour simplement amener des instances à volonté
et ensuite les détruire avec molecule destroy
. Les possibilités sont infinies ici !
Sponsorisé par
Kwiziq.com - La plateforme d'éducation linguistique par IA
Spottmedia.com - Conception technologique, livraison et conseil
Informations sur l'auteur
apporté à vous avec amour par Grzegorz Nowak.
Installs node via nvm globally; includes molecule testing framework.
ansible-galaxy install grzegorznowak.nvm_node