【发布时间】:2021-02-25 03:26:36
【问题描述】:
我有一个使用一些 ES6 功能的 nodejs express 应用程序,所以它需要 nodejs 高于 0.12.18。但 AWS Opsworks Chef 11 堆栈仅提供最高 0.12.18 的 NodeJ。
我尝试使用自己的自定义食谱/食谱并创建了“opsworks_nodejs/attributes/customize.rb”:
normal[:opsworks_nodejs][:version] = '14.2.0'
normal[:opsworks_nodejs][:prefix_url][:node] = 'https://rpm.nodesource.com/pub_14.x/el/7/x86_64/'
normal[:opsworks_nodejs][:rpm] = "nodejs-14.2.0-1nodesource.x86_64.rpm"
normal[:opsworks_nodejs][:rpm_url] = "https://rpm.nodesource.com/pub_14.x/el/7/x86_64/nodejs-14.2.0-1nodesource.x86_64.rpm"
但设置失败,日志显示它试图下载一个不存在的文件。它忽略了我的更改(版本部分除外):
https://opsworks-instance-assets-eu-west-1.s3.amazonaws.com/packages/amazon/2018.03/opsworks-nodejs-14.2.0-1.x86_64.rpm
我想知道是否有办法像现在一样使用 Chef 11 堆栈,只需将 nodejs 版本更改为 14.2.0,因为我已经习惯了那里使用的所有其他配方,尤其是部署机制。我想要的只是 node.js 版本。
如果不是,我是否正确假设我必须使用没有预先设置这些食谱的 Chef 12 堆栈?什么是安装 nodejs 14.2.0 并且仍然能够使用 Chef 11 堆栈提供的方便的“部署”功能的最简单方法?
【问题讨论】:
-
chef-client的版本是多少?您是否拥有 Chef 服务器的权限? -
我正在使用 Amazon Web Services opsworks。我不确定在哪里看或厨师客户端版本。但我很确定它的 Chef 11.10 (docs.aws.amazon.com/opsworks/latest/userguide/…)
-
chef-client --version应该显示版本。只是试图探索围绕 OpsWorks 系统工作的可能性。 -
我可以 ssh 到那个实例。在'sudo su'和'sudo su deploy'之后,找不到'chef-client'命令。
-
我记得在使用
chef-clientv14.10.9 时看到了 recommendation。
标签: node.js aws-opsworks cookbook