我可以使用外部食谱中的LWRP而不添加烹饪书名称吗?例如,如果mycookbook
包含mylwrp
资源,我该怎么做?
include_recipe 'mycookbook' # Contains "mylwrp"
mylwrp "frobulator" do
frobulations 42
end
我写了一个名为mycookbook_mylwrp
的LWRP,因为库菜谱使用了正常的资源/提供者布局,如下所示
mycookbook/
├── providers
│ └── mylwrp.rb
└── resources
└── mylwrp.rb
是否有可能
mycookbook
食谱mycookbook
名称前加mycookbook_mylwrp
)我意识到我可以创建一个全新的食谱并称之为" mylwrp"并使用默认提供程序,如下所示
mylwrp/
├── providers
│ └── default.rb
└── resources
└── default.rb
然后我必须为我想要以这种方式使用的每个LWRP制作专用的烹饪书。
答案 0 :(得分:1)
一种选择是使用HWRP。它们位于libraries
目录中,而不是resources
和providers
。如果您走这条路,我会查看poise
库,它允许您编写与LWRP具有相同技巧的HWRP。
现在,所有这一切,你正在做一些明显超出常规的事情。社区用于自定义提供者被命名空间以匹配声明它们的cookbook。如果你想与社区分享这本食谱,你会引起一些困惑。即使您只在内部使用它,它也会为您带入团队的新成员汲取学习曲线。因此,除非你有令人信服的理由这样做,否则我强烈建议你避免它。
另一方面,如果您确实有令人信服的理由,我建议您分享,以便我们都能从您的想法中受益。
答案 1 :(得分:0)
不,LWRP都是全局的,因此菜谱命名为防止冲突。您也不需要include_recipe,它只涉及运行配方代码。您确实需要metadata.rb中的depends
行。