Opsworks日志显示bash块已成功运行,但事实并非如此

时间:2018-03-07 10:34:47

标签: python ruby chef chef-recipe aws-opsworks

我在其他配方中包含的其中一个配方中有这个块。

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

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

这是日志的相关部分

[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 个答案:

答案 0 :(得分:3)

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