grzegorznowak.nvm_node

État de construction

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.

À propos du projet

Installs node via nvm globally; includes molecule testing framework.

Installer
ansible-galaxy install grzegorznowak.nvm_node
Licence
Unknown
Téléchargements
70.5k
Propriétaire
Let's solve some more problems, shall we ?