【问题标题】:How do I run a standalone program in OpsWorks?如何在 OpsWorks 中运行独立程序?
【发布时间】:2014-06-06 01:03:24
【问题描述】:

我确信有一个简单的答案。我们的程序是一个可执行的 jar 文件,我们有一个 shell 脚本包装器。

  • OpsWorks 从 S3 抓取分发 zip 文件
  • 我们正在尝试解压缩并运行位于bin/run_server.sh 的脚本文件

我目前正在为其编写自定义部署配方,在“其他”类型的层上运行。

这是我的尝试:

include_recipe 'deploy'

node[:deploy].each do |application, deploy|

    # assume the zip file has been extracted at this point, 
    # and the CWD is the extracted contents
    execute "run the server" do
        command 'bash bin/run_server.sh'
        action :run
    end
end

声称找不到bin/run_server.sh 失败。

提前致谢。

【问题讨论】:

    标签: ruby chef-infra aws-opsworks


    【解决方案1】:

    您是否尝试过显式设置 cwd?

    execute "run the server" do
        command 'bash bin/run_server.sh'
        cwd "/path/to/your/stuff"
    end
    

    【讨论】:

    • 我不知道zip文件在哪里下载。我已经 ssh-ed 到实例中,但找不到它的任何痕迹,或者它的内容。
    • 它应该在 node[:deploy][application][:deploy_to] 中,但由于您使用的是自定义层,因此您可能缺少部署步骤。您能否分享有关您的自定义配方设置和应用配置的更多详细信息?
    • 我认为发生的事情是设置包括部署步骤,但尚未部署应用程序。我认为要达到预期的效果,我需要向我的应用程序本身添加一个部署挂钩,以便厨师在收到应用程序代码后立即运行它,而不是在设置时运行它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多