我有一个简单的厨师食谱,它所做的就是在CentOS机器上设置MOTD。它需要/tmp/mymotd.txt的内容并将其转换为MOTD。
我还有一个简单的ruby脚本(一个完整的ruby脚本),它只是从web服务器读取文本并放入/tmp/mymotd.txt。
我的问题是:
事先非常感谢。
答案 0 :(得分:1)
广告1。
您可以在脚本中使用libraries
目录将ruby脚本放在那里并在模块中声明它。例如:
# includes
module MODULE_NAME
# here some code using your script
# Example function
def example_function (text)
# some code
end
end
您可以使用
include MODULE_NAME
在您的食谱中导入这些功能,并像
一样使用它example_function(something)
什么是好的 - 你也可以在那里使用Chef功能和资源。
重要信息:请记住,Chef有2个编译阶段。首先是所有的Ruby代码,第二个是Chef的所有资源。这意味着,您必须记住代码的优先级。我在这里写了更多关于它的信息,因为你还没有要求这个,但如果你愿意,你可以找到它here。
广告2。
您可以通过多种方式执行此操作,但在我看来,最适合您的方法是使用environments
。您可以找到更多信息in here。基本上,您可以在脚本运行之前为脚本设置环境 - 这样您就可以定义稍后将使用的一些变量。
希望这有帮助。