Opsworks 日志显示 bash 块运行成功,但没有成功

Posted

技术标签:

【中文标题】Opsworks 日志显示 bash 块运行成功,但没有成功【英文标题】:Opsworks log shows a bash block ran successfully but it did not 【发布时间】:2018-08-15 10:15:33 【问题描述】:

我在其中一个食谱中有这个块,它正在包含在其他食谱中。

bash 'setup' do
    cwd "#node[:'python-virtualenv'][:home]"
    user 'ubuntu'
    environment "HOME" => "#node[:'python-virtualenv'][:home]"
    code <<-EOH
    sudo add-apt-repository -y ppa:fkrull/deadsnakes
    sudo apt-get update
    sudo apt-get -yq install python3.5
    curl -s https://bootstrap.pypa.io/get-pip.py | sudo python3.5
    sudo pip3.5 install virtualenv virtualenvwrapper
    echo "export WORKON_HOME=#node[:'python-virtualenv'][:home].virtualenvs/" > #node[:'python-virtualenv'][:home].bash_profile
    echo "export VIRTUALENVWRAPPER_PYTHON=$(which python3.5)" > #node[:'python-virtualenv'][:home].bash_profile
    echo "source /usr/local/bin/virtualenvwrapper.sh" >> #node[:'python-virtualenv'][:home].bash_profile
    EOH
end

日志说这个块被执行了,但是当我 ssh 进入实例时,它没有被安装。

这是日志的相关部分

[2018-03-07T09:59:33+00:00] INFO: Processing bash[setup] action run (app::default line 12)
[2018-03-07T09:59:40+00:00] INFO: bash[setup] ran successfully

【问题讨论】:

【参考方案1】:

set -e 添加到您的shell 脚本的顶部,您可能会看到它在其中一个中间命令上失败。为什么您以非 root 用户身份运行,然后尝试使用 sudo?总的来说,这似乎是一个非常奇怪的 shell 脚本。可能还想添加set -x 来帮助调试。

【讨论】:

非常感谢!这是问题 sudo apt-get update W:GPG 错误:ppa.launchpad.nettrusty InRelease:无法验证以下签名,因为公钥不可用:NO_PUBKEY 5BB92C09DB82666C + sudo apt-get -yq install python3.5 E : 有问题,没有使用-y --force-yes 您可以使用 apt_repository 资源来设置 repo,它了解如何导入 repo 密钥。

以上是关于Opsworks 日志显示 bash 块运行成功,但没有成功的主要内容,如果未能解决你的问题,请参考以下文章

Node.js OpsWorks 层控制台日志

尽管在 Opsworks 中成功部署了 php 应用程序,但仍出现“未找到”错误。其他 php 应用程序运行良好

Opsworks - 如何从 GitHub 源安装 gem?

AWS OpsWorks:成功的 Ruby on Rails 默认层部署在浏览器中显示 404 错误

实例的 AWS OpsWorks setup_failed - 无法部署_branch

OpsWorks 在部署时运行挂钩