grzegorznowak.nvm_node

构建状态

Ansible NVM Node

在 Debian 和 Redhat 系统上通过 NVM 安装 Node.js。

安装

您可以选择:

  • ansible-galaxy install grzegorznowak.nvm_node
  • 直接克隆代码库

免责声明

这是一个非常定制的 Node.js 安装,不依赖于 apt/yum 的功能,也没有遵循 推荐的 使用 NVM 的方式(参见 https://github.com/creationix/nvm/issues/1533)。此外,版本控制仅能通过 Ansible 实现。请确保您在此处提供的设置确实是您所需的。我认为这套方案适合 70% 的开发用途和 30% 的生产环境。如果您计划在单台服务器上有许多用户/角色使用它,那就 0% 可用——在这种状态下是无法正常工作的(尽管随着较少的额外调整,未来可能会有效)。

关键在于,它将 NVM 安装到全局路径,并将其符号链接回 /usr/local/bin 以便于访问,同时占用了全局 bashrc,以包含系统中每个用户的 NVM 路径。虽然这只是一个小问题,但打破了 NVM 作为每个用户工具的概念,并且在使用特定的非交互式 shell 时,可能无法完美运行。这可能会影响那些情况下 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"              # 通过 NVM 安装的 Node.js 版本
    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: "your.node.version"
      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 来销毁它们。这里真的是没有限制!

赞助

Kwiziq.com - 人工智能语言教育平台

Spottmedia.com - 技术设计、交付和咨询

作者信息

Grzegorz Nowak 带来,满怀爱意。

关于项目

Installs node via nvm globally; includes molecule testing framework.

安装
ansible-galaxy install grzegorznowak.nvm_node
许可证
Unknown
下载
70.5k
拥有者
Let's solve some more problems, shall we ?