gpt4 book ai didi

node.js - 使用 chef 在 aws 上安装 node.js 的正确方法

转载 作者:行者123 更新时间:2023-12-04 19:14:04 25 4
gpt4 key购买 nike

我做了一些研究,但找不到任何令人满意的东西。我们正在使用 Chef 11。

这就是我现在所拥有的。仅供引用:我对 Chef 很陌生。所以我有一种直觉,我做错了。

execute "Update apt-get" do
command 'curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -'
end

package 'nodejs' do
action :upgrade
end

它大部分时间都有效。但它有时会失败。
Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'

This issue on ubuntu似乎是罪魁祸首。

问题是,有没有比运行这个 curl 更好的方法?更新命令 apt-get所以我可以安装更高版本的node.js?

最佳答案

我使用以下说明书使用 chef 管理一些 Node.js 应用程序:application , application_git , application_javascript

配方如下:

include_recipe 'chef-vault'

# provisions system user to run application
user node['project']['application']['user'] do
system true
shell '/bin/false'
manage_home true
end

application node['project']['application']['deploy_path'] do
# Provision specific Node.js version
javascript '4.2.4'

owner node['project']['application']['user']
group node['project']['application']['user']

# Download application source from git private repository
git node['project']['application']['repository'] do
deploy_key chef_vault_item('project', 'deploy_key')['file-content']
end

# install dependencies
npm_install do
production false
user node['project']['application']['user']
group node['project']['application']['user']
end

# Provision service
javascript_service 'server.js'
end
project在我的 Recipe 中是已部署的特定项目的名称。

这个 Recipe 有一些优点:
  • 它在特定用户帐户下运行您的项目
  • 允许指定特定的 Node.js 版本(在示例中是 4.2.4 Node.js 版本)。
  • 该说明书允许多种安装方法( native 包、二进制文件、源代码)。从而使其可跨不同的操作系统移植。
  • 处理项目依赖的安装
  • 以特定于操作系统的方式提供服务注册(某些操作系统上的经典 init,其他操作系统上的 Systemd 等)
  • 关于node.js - 使用 chef 在 aws 上安装 node.js 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45042572/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com