nvm_node
Ansible NVM Node
Устанавливает Node.js через NVM на системах Debian и RedHat.
Установка
Можно сделать одним из способов:
ansible-galaxy install grzegorznowak.nvm_node
- Клонировать репозиторий напрямую
Отказ от ответственности
Это довольно специфическая установка Node.js, которая не опирается на возможности apt/yum и не следует рекомендованному (смотрите https://github.com/creationix/nvm/issues/1533) способу использования NVM. Кроме того, управление версиями осуществляется только через сам Ansible. Пожалуйста, убедитесь, что предложенная здесь настройка действительно подходит для ваших нужд. Я бы сказал, это 70% для разработки и 30% для рабочей среды. И 0%, если вы планируете использовать это для большого количества пользователей/ролей на одном сервере - это не сработает в текущем состоянии (хотя с добавлением незначительных улучшений в будущем может заработать).
Суть в том, что он устанавливает nvm в глобальный путь и создает символическую ссылку на /usr/local/bin
для общей доступности, а также изменяет глобальный bashrc, чтобы включить пути NVM для каждого пользователя в системе.
Хотя это незначительное изменение, оно нарушает концепцию NVM как инструмента на пользователя, а также может не работать безупречно в некоторых ситуациях с неинтерактивными оболочками. Это может повлиять на использование установленных npm пакетов в таких случаях.
Тем не менее, nvm - это действительно наш инструмент выбора, так что, возможно, вам тоже это нужно!
Требования
Нет зависимостей, просто обратите внимание, что будет установлен wget
для загрузки скрипта установки nvm.
Поддерживаемые версии
В данный момент работает на следующих дистрибутивах:
Ubuntu: 20.04, 18.04, 16.04, 14.04
Debian: buster, stretch
CentOS: 7
Переменные
По умолчанию
nvm_install_script_version: "0.33.11" # версия скрипта установки nvm (последняя стабильная на момент написания)
nvm_user_name: "root" # вы можете использовать другого пользователя, и, возможно, в конце концов это будет более правильный способ работы с nvm
# но я этого не проверял в тестах и т.д.
nvm_dir: "/var/lib/nvm" # для глобальной (по умолчанию) установки. Следуйте тем же правилам, что и для переменной nvm_user_name
nvm_node_version: "8.11.3" # версия Node.js, которую нужно установить через nvm
nvm_install_globally: [] # библиотеки для глобальной установки и создания символических ссылок, подробности ниже
Пример плейбука
при клонировании с github
---
- hosts: all
vars:
nvm_node_version: "4.1.1"
roles:
- role: ansible-nvm-node
при установке из ansible-galaxy
---
- hosts: all
vars:
nvm_node_version: "ваша.версия.node"
roles:
- role: grzegorznowak.nvm_node
Обновление Node.js
Просто замените nvm_node_version
на ту версию, которую вы хотите использовать глобально, и снова запустите плейбук.
Установка глобальных пакетов
Для лучшей согласованности настоятельно рекомендуется устанавливать глобальные пакеты с использованием этой роли, в этом случае
просто измените переменную nvm_install_globally
, как показано ниже:
nvm_install_globally: ['gulp']
Также можно указать версии для глобальных пакетов:
nvm_install_globally:
- name: yarn
version: 1.9.4
Или комбинировать оба подхода:
nvm_install_globally:
- gulp
- lighthouse
- name: yarn
version: 1.9.4
Это установит указанные библиотеки и создаст символическую ссылку в глобальном $PATH для доступа в определенных средах (таких как cron).
Тестирование
Требования
Вы можете использовать вспомогательный скрипт, который установит виртуальную среду со всем необходимым
./bootstrap_test.sh
Затем просто активируйте виртуальную среду с помощью source test_env/bin/activate
Либо выполните все вручную для лучшего контроля:
sudo apt install virtualenv python3-pip
virtualenv test_env --python=python3
source test_env/bin/activate
pip install -r test-requirements.txt
Тестирование с контейнерами lxc
molecule test
Дополнительные возможности от molecule
Вы можете выполнять различные удобные действия, такие как molecule converge
, чтобы просто запускать экземпляры
и затем их уничтожать с помощью molecule destroy
. Здесь sky is the limit!
Спонсоры
Kwiziq.com - Платформа обучения языкам с использованием ИИ
Spottmedia.com - Дизайн технологий, реализация и консалтинг
Авторская информация
Представлено с любовью от Grzegorz Nowak.
Installs node via nvm globally; includes molecule testing framework.
ansible-galaxy install grzegorznowak/ansible-nvm-node