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 的原创工作。