grzegorznowak.nvm_node

Build-Status

Ansible NVM Node

Installiert Node über NVM auf Debian- und RedHat-Systemen.

Installation

Entweder

  • ansible-galaxy install grzegorznowak.nvm_node
  • Das Repository direkt klonen

Haftungsausschluss

Es handelt sich um eine ziemlich maßgeschneiderte Installation von Node, die nicht auf die nützlichen Funktionen von apt/yum angewiesen ist und auch nicht der empfohlenen Methode folgt (siehe @ https://github.com/creationix/nvm/issues/1533). Darüber hinaus ist die Versionierung nur über Ansible selbst erreichbar. Bitte stelle sicher, dass die hier angegebene Einrichtung die ist, die du tatsächlich benötigst. Ich würde sagen, es ist 70% für DEV-Zwecke und 30% für den Live-Betrieb. Und 0%, wenn du viele Benutzer/Rollen hast, die es auf einem einzigen Server verwenden – das wird im jetzigen Zustand nicht funktionieren (obwohl es irgendwann mit relativ minimalen Anpassungen klappen könnte).

Der Knackpunkt ist, dass es NVM in einen globalen Pfad installiert und es mit einem Symlink nach /usr/local/bin verlinkt, um allgemeinen Zugriff zu ermöglichen. Außerdem wird die globale bashrc geändert, um die NVM-Pfade für jeden Benutzer im System einzuschließen. Auch wenn dies nur geringfügig ist, bricht es das Konzept von NVM als Benutzertool und funktioniert nicht zu 100% einwandfrei, wenn spezifische nicht-interaktive Shells verwendet werden. Dies könnte die Nutzung von npm-installierten Paketen in diesen Fällen beeinflussen. Dennoch ist NVM, so cool wie es ist, wirklich das Tool unserer Wahl, also brauchen wir es so und vielleicht brauchst du es auch!

Anforderungen

Keine Abhängigkeiten, beachte jedoch, dass wget installiert wird, um das NVM-Installationsskript abzurufen.

Unterstützte Distributionen

Aktuell wird auf folgenden Distributionen gebaut und integriert:

Ubuntu: 20.04, 18.04, 16.04, 14.04
Debian: Buster, Stretch
CentOS: 7

Variablen

Defaults

    nvm_install_script_version: "0.33.11"   # das zu verwendende NVM-Installationsskript (aktuell stabile Version zum Zeitpunkt des Schreibens)
    nvm_user_name: "root"                   # du kannst einen anderen Benutzer verwenden, vielleicht erreichst du dann den mehr nvm-typischen Ansatz
                                            # aber ich habe das nicht in Tests usw. abgedeckt.  
    nvm_dir: "/var/lib/nvm"                 # für die globale (Standard-)Installation. Befolge die gleiche Regel wie die nvm_user_name-Variable
    nvm_node_version: "8.11.3"              # die Node-Version, die über NVM installiert werden soll
    nvm_install_globally: []                # Bibliotheken, die global installiert und verlinkt werden sollen, sieh weiter unten nach weiteren Details

Beispiel-Playbook

wenn von GitHub geklont
    ---
    - hosts: all
      vars:
        nvm_node_version: "4.1.1"
      roles:
        - role: ansible-nvm-node
wenn von Ansible Galaxy
    ---
    - hosts: all
      vars:
        nvm_node_version: "your.node.version"
      roles:
        - role: grzegorznowak.nvm_node        

Node aktualisieren

Ersetze einfach nvm_node_version durch die Version, die du global verwenden möchtest, und führe das Playbook erneut aus.

Globale Pakete installieren

Für die beste Konsistenz wird dringend empfohlen, globale Pakete ebenfalls mit dieser Rolle zu installieren, in diesem Fall ändere einfach die Variable nvm_install_globally wie folgt:

nvm_install_globally: ['gulp']

Du kannst auch Versionsangaben für globale Pakete verwenden:

nvm_install_globally:
  - name: yarn
    version: 1.9.4

oder beides mischen:

nvm_install_globally:
  - gulp
  - lighthouse
  - name: yarn
    version: 1.9.4

Das installiert die aufgeführten Bibliotheken und fügt einen Symlink zum globalen $PATH hinzu, damit spezifische Umgebungen (wie Cron) darauf zugreifen können.

Tests

Anforderungen

Du kannst ein Hilfsskript verwenden, das eine virtuelle Umgebung mit allem Nostwendigen installiert: ./bootstrap_test.sh

Aktiviere einfach die virtuelle Umgebung mit source test_env/bin/activate

oder du machst es manuell für bessere Kontrolle:

sudo apt install virtualenv python3-pip
virtualenv test_env --python=python3
source test_env/bin/activate
pip install -r test-requirements.txt

Testen mit LXC-Containern

molecule test

Zusätzliche Vorteile von Molecule

Du kannst all diese praktischen Dinge tun wie molecule converge, um Instanzen ganz nach Bedarf zu erstellen und sie dann mit molecule destroy wieder abzureißen. Hier sind wirklich keine Grenzen gesetzt!

Gesponsert von

Kwiziq.com - Die KI-Sprachbildungsplattform

Spottmedia.com - Technologie-, Design-, Entwicklungs- und Beratungsdienste

Autorinformationen

Präsentiert mit Liebe von Grzegorz Nowak.

Über das Projekt

Installs node via nvm globally; includes molecule testing framework.

Installieren
ansible-galaxy install grzegorznowak.nvm_node
Lizenz
Unknown
Downloads
70.5k
Besitzer
Let's solve some more problems, shall we ?