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
Лицензия
Unknown
Загрузки
65213
Владелец
Let's solve some more problems, shall we ?