grzegorznowak.nvm_node
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.
Installs node via nvm globally; includes molecule testing framework.
ansible-galaxy install grzegorznowak.nvm_node