【问题标题】:place python script in chef cookbook将python脚本放在厨师食谱中
【发布时间】:2016-08-04 15:26:43
【问题描述】:

我有一个在服务器上部署ear 文件的python 脚本,我如何使用chef 执行这个脚本来引导一个linux 节点?

尝试了如下所示的食谱,但它无法识别我的食谱中“mycookbook\files\default\deploy.py”文件夹中的 python 脚本。

execute 'executeFile' do
 command "python #{'deploy.py'}"
end

尝试提供完整的文件路径仍然无法识别该文件。如何使用厨师的执行资源在食谱中执行python脚本?

【问题讨论】:

    标签: python chef-infra chef-recipe


    【解决方案1】:

    使用 poise-python 食谱的 python_execute 资源:

    cookbook_file "/root/deploy.py" do
      source "deploy.py"
    end
    
    python_execute "/root/deploy.py"
    

    如果您调整命令行,您也可以使用普通的execute 资源。重要的是您需要使用cookbook_file 将文件从说明书复制到节点上的某个位置。

    【讨论】:

    • 谢谢,这有助于解决问题。我可以将厨师属性传递给python文件吗?就像厨师“cookbook_file node['py']['tmpDir'] do”会根据属性条目解析到正确的位置,我也可以在python文件中访问这些属性吗?
    • 不,您必须将所需的任何值作为命令行参数传递:python_execute "/deploy.py #{node['whatever']}"
    猜你喜欢
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多