ecgalaxy.nodejs

ECGALAXY nodejs

这是一个 Ansible 角色,用于全局安装 Node.js

要求

  • 在 Ubuntu 上,需要 gpg-agent 命令,可以通过 ecgalaxy.common_packages 提供。

角色变量

  • nodejs_version:设置要安装的 Node.js 版本(例如 "18.x", "20.x" 等),使用发行版软件包管理器。

默认版本为 20.x。

如果您想从可下载的归档文件中安装特定版本,可以设置以下变量:

  • nodejs_download_url:要下载的 Node.js 归档文件(请参见 https://nodejs.org/dist/)
  • nodejs_checksum:归档文件校验和
  • nodejs_install_path:Node.js 的安装路径

关于 Amazon Linux 2 上的 Node.js 18.x, 20.x 和 22.x

由于二进制不兼容(缺少 glibc 符号版本),官方的 Node.js 18.x、20.x 和 22.x 预构建二进制文件不能在 Amazon Linux 2 上使用。

AWS 推荐在使用 Amazon Linux 2(AL2)时,从源代码构建这些 Node.js 版本。

为 Amazon Linux 2 准备的 Node.js 18.x、20.x 和 22.x 预构建二进制文件可以在以下网址找到: https://code.europa.eu/ecgalaxy/amazonlinux2-nodejs/-/packages

它们将在 Ansible 角色执行时(在 AL2 上)被下载,并保存在 /opt/nodejs/<nodejs_version> 文件夹中。

然后在 /usr/local/bin 下创建 Node.js 可执行文件的符号链接。

您可能还想更新您的 $PATH,指向 /opt/nodejs/<nodejs_version>/bin 文件夹。

已成功测试与 nvm 一起使用;命令 nvm use system 将正确指向“全局” Node.js 版本(保存在 /opt/nodejs/<nodejs_version> 中)。

您还可以执行此角色来全局安装 18.x、20.x 和 22.x,然后覆盖每个版本的 ~/.nvm/versions/node/v<nodejs_version> 内容,这将允许使用 nvm use 在不同版本之间切换。

依赖关系

  • 可选:ecgalaxy.bootstrap
  • 可选:ecgalaxy.common_packages

示例 Playbook

- hosts: all
  roles:
    - ecgalaxy.bootstrap
    - ecgalaxy.common_packages
    - ecgalaxy.nodejs

一行命令

全局安装默认的 Node.js 版本:

bash <(curl -s https://code.europa.eu/-/snippets/1/raw/main/ansible-role.sh) ecgalaxy.nodejs

全局安装 Node.js 18.x:

bash <(curl -s https://code.europa.eu/-/snippets/1/raw/main/ansible-role.sh) ecgalaxy.nodejs --extra-vars '{"nodejs_version":"18.x"}'

请参阅 ansible-role 获取说明。

请先验证脚本的完整性。

许可证

版权归欧盟所有 2022。

根据 EUPL-1.2 或更高版本授权。

作者信息

ECGALAXY 团队。

注意:此角色基于 Jeff Geerling 的原创工作

关于项目

Ansible role that installs Node.js

安装
ansible-galaxy install ecgalaxy.nodejs
许可证
eupl-1.2
下载
6.5k
拥有者
The European Commission ECGALAXY project provides a set of reusable Infrastructure as Code (IaC) tools and components