如何在 AWS OpsWorks 上运行 Node.JS 0.12.0

如何在 AWS OpsWorks 上运行 Node.JS 0.12.0

我想使用 AWS OpsWorks,作为应用程序层,我想使用 Node.JS v0.12.0。但是,我注意到最新支持的 Node 版本是 0.10.33。

我还注意到 OpsWorks 使用自定义 Node 包 - opsworks-node

所以我的问题是,我可以:

  • 复制 OpsWorks 手册
  • opsworks-node使用来自该仓库的包替换该包 -https://deb.nodesource.com/node_0.12
  • 其余配方不变

或者这会破坏某些东西(比如某些特定于该opsworks-node包但在常规中找不到的东西node)?

如果上述方法不可行,那么我应该如何使用 OpsWorks 安装 Node 0.12.0?

答案1

解决方案非常简单,只有 1 个小问题。

我用的是nodejs食谱来自 Chef Supermarket,它与 AWS Ubuntu 14.04 AMI 兼容。我使用这个来获得“常规”安装 - 来自公共包/源存储库,而不是来自 AWS 维护的存储库。但是,该食谱节点的版本与 AWS 上的版本相同 - 0.10.x。

为了解决这个问题,我在主线周围创建了一个简单的包装器食谱nodejs,它覆盖了以下属性:

default['nodejs']['version'] = '0.12.0'
default['nodejs']['repo'] = 'https://deb.nodesource.com/node_0.12'

默认食谱仅包含nodejs菜谱默认食谱。

我需要解决的唯一 OpsWorks 特定更改(小问题)是node二进制文件位置 - OpsWorks 在 中查找节点二进制文件/usr/local/bin/node,而nodejscookbook 安装的软件包将该二进制文件放在 中/usr/bin/nodejs。为了解决这个问题,我创建了第二个配方 - create-symlink,它只是在 中创建已安装二进制文件的符号链接/usr/local/bin/

包装器使用手册可在此处找到(附带安装说明)-https://github.com/zupper/nodejs-wrapper-opsworks

相关内容