grzegorznowak.nvm_node

Status budowy

Ansible NVM Node

Instaluje Node przez NVM na systemach Debian i Redhat.

Instalacja

Można:

  • ansible-galaxy install grzegorznowak.nvm_node
  • sklonować repozytorium bezpośrednio

Zastrzeżenie

To specyficzna instalacja Node, która nie korzysta z narzędzi apt/yum ani nie przestrzega zalecanych zasad użycia NVM. Dodatkowo wersjonowanie można osiągnąć tylko za pomocą Ansible. Proszę upewnić się, że ustawienia tutaj są tymi, których rzeczywiście potrzebujesz. Można powiedzieć, że to 70% dla celów deweloperskich i 30% dla produkcji. I 0% jeśli planujesz, że wielu użytkowników/rol będzie używać tego na jednym serwerze - w obecnym stanie to nie zadziała (chociaż może w przyszłości, przy minimalnych zmianach).

Kluczowe jest to, że instaluje NVM w globalnej ścieżce i tworzy dowiązanie do /usr/local/bin dla ogólnej dostępności, a także modyfikuje globalny bashrc, aby uwzględnić ścieżki NVM dla każdego użytkownika w systemie. Choć to drobny szczegół, narusza koncepcję NVM jako narzędzia per-user, a także może nie działać w 100% bezbłędnie w przypadku określonych powłok nieinteraktywnych. Może to wpłynąć na użycie zainstalowanych pakietów npm w tych przypadkach. Jednak mimo to, NVM jest naszym ulubionym narzędziem, więc właśnie tak to potrzebujemy, a może Ty także!

Wymagania

Brak zależności, należy jedynie pamiętać, że zainstaluje wget w celu pobrania skryptu instalacyjnego nvm.

Obsługa

Aktualnie działa na następujących dystrybucjach:

Ubuntu: 20.04, 18.04, 16.04, 14.04
Debian: buster, stretch
CentOS: 7

Zmienne

domyślne

    nvm_install_script_version: "0.33.11"   # wersja skryptu instalacyjnego nvm (najbardziej stabilna wersja w momencie pisania)
    nvm_user_name: "root"                    # można użyć innego użytkownika, co może pomóc w osiągnięciu lepszego podejścia do nvm
                                            # ale tego nie sprawdziłem w testach, itd.  
    nvm_dir: "/var/lib/nvm"                  # dla globalnej (domyślnej) instalacji. Stosuj tę samą zasadę co zmienna nvm_user_name
    nvm_node_version: "8.11.3"               # wersja Node do zainstalowania przez nvm
    nvm_install_globally: []                  # biblioteki do zainstalowania globalnie i dowiązania, patrz dalej po szczegóły

Przykładowy plik playbook

gdy klonowane z githuba
    ---
    - hosts: all
      vars:
        nvm_node_version: "4.1.1"
      roles:
        - role: ansible-nvm-node
gdy z ansible-galaxy
    ---
    - hosts: all
      vars:
        nvm_node_version: "twoja.wersja.node"
      roles:
        - role: grzegorznowak.nvm_node        

Aktualizacja node

Po prostu zamień nvm_node_version na wersję, której chcesz używać globalnie i uruchom ponownie playbook

Instalowanie globalnych pakietów

Aby zachować spójność, zdecydowanie zaleca się instalowanie globalnych pakietów przy użyciu tej roli, w takim przypadku po prostu edytuj zmienną nvm_install_globally, jak poniżej:

nvm_install_globally: ['gulp']

można również użyć wersjonowania dla globalnych pakietów:

nvm_install_globally:
  - name: yarn
    version: 1.9.4

lub połączyć oba:

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

to zainstaluje wymienione biblioteki i utworzy dowiązanie do globalnego $PATH dla określonych środowisk (jak cron)

Testowanie

Wymagania

możesz użyć skryptu pomocniczego, który zainstaluje wirtualne środowisko ze wszystkimi potrzebnymi rzeczami ./bootstrap_test.sh

następnie aktywuj wirtualne środowisko przez source test_env/bin/activate

lub zrób to całkowicie ręcznie dla lepszej kontroli

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

Testowanie za pomocą kontenerów lxc

molecule test

Dodatkowe zalety z molecule

Możesz robić różne użyteczne rzeczy, takie jak molecule converge, aby po prostu uruchomić instancje i następnie je usunąć za pomocą molecule destroy. Możliwości są naprawdę nieograniczone!

Sponsorowane przez

Kwiziq.com - platforma edukacji językowej oparta na AI

Spottmedia.com - projektowanie technologii, wdrażanie i konsulting

Informacje o autorze

To wszystko dzięki miłości od Grzegorz Nowak.

O projekcie

Installs node via nvm globally; includes molecule testing framework.

Zainstaluj
ansible-galaxy install grzegorznowak.nvm_node
Licencja
Unknown
Pobrania
70.5k
Właściciel
Let's solve some more problems, shall we ?