厨师配方'include_recipe'优先于其他代码和资源

问题描述 投票:0回答:1

我正在尝试创建一个厨师食谱,目前,该食谱基本上只是另一本食谱(audit cookbook)的包装食谱。我仍在学习Chef,但是从About Recipes documentationResources Reference documentation的经验中可以得出,Chef食谱应该按照定义的顺序执行(通过Ruby代码和/或Chef资源)。

在关于食谱文档中,它提到了

[包含食谱时,该食谱中找到的资源将是(以完全相同的顺序)插入到包含include_recipe关键字。

在参考资料中,他们有一个apt_update资源,由于它是在食谱的前面定义的,因此可能在include_recipe方法之前执行。

我的包装器食谱只有一个食谱default.rb,实际上是这两行:

package 'ruby-dev'
include_recipe 'audit'

但是,在运行厨师客户机或厨师-solo期间,我看到audit :: inspec

配方在security :: default配方之前运行,这导致事情中断,因为InSpec还具有其他一些依赖性需要事先安装。在使用package资源之前,我曾使用execute资源根据使用case语句的平台显式运行apt-get install ruby-devyum install ruby-dev,但是存在相同的问题(所有代码都被跳过, include_recipe首先调用的方法。

[如果有用,我正在使用Chef 12,我意识到这是EOL,但我还有其他依赖项,现在我需要坚持使用此版本的Chef。

我很可能只是误会了Chef是如何融合工作以及执行顺序的,但这引起了我很大的悲伤,所以我非常感谢一些指导! include_recipe

是否总是出现在配方中的其他代码之前?有没有办法解决?我想念什么吗?

我正在尝试创建一个厨师食谱,目前,该食谱基本上只是另一本食谱(审计食谱)的包装食谱。我仍在学习Chef,但从我可以从About ...

ruby chef chef-recipe
1个回答
0
投票

如果您要检查audit::inspec配方,则会发现它使用了编译时间installation of the inspec rubygem(请参阅最后一行)

© www.soinside.com 2019 - 2024. All rights reserved.