首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用LWRP时菜谱名称前缀

调用LWRP时菜谱名称前缀
EN

Stack Overflow用户
提问于 2014-10-20 01:54:43
回答 2查看 500关注 0票数 2

摘要

我可以使用来自外部食谱的LWRP而不以食谱名称为前缀吗?例如,如果mycookbook包含mylwrp资源,我如何才能做到这一点?

代码语言:javascript
复制
include_recipe 'mycookbook' # Contains "mylwrp"
mylwrp "frobulator" do
   frobulations 42
end

详细信息

我编写了一个名为mycookbook_mylwrp的LWRP,因为库食谱使用了正常的资源/提供者布局,如下所示

代码语言:javascript
复制
mycookbook/
├── providers
│   └── mylwrp.rb
└── resources
    └── mylwrp.rb

是否有可能

  • 将LWRP保存在mycookbook食谱中
  • 使用LWRP而不以mycookbook名称(mycookbook_mylwrp)为前缀

我意识到我可以创建一本全新的食谱,并将其命名为"mylwrp“,并使用默认的提供者如下所示

代码语言:javascript
复制
mylwrp/
├── providers
│   └── default.rb
└── resources
    └── default.rb

但是,我必须为我想以这种方式使用的每一个LWRP制作专门的食谱。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-20 12:49:55

一种选择是使用HWRP。它们位于libraries目录中,而不是resourcesproviders中。如果您使用这条路线,我将查看poise库,它允许您使用与LWRP相同的技巧编写HWRP。

现在,所有这些都表明,你正在做的事情显然超出了常规。社区习惯于使用命名空间的自定义提供者来匹配声明它们的食谱。如果你想和社区分享这本食谱,你会引起一些混乱。即使您只在内部使用它,它也会使您为团队带来的任何新成员的学习曲线更加陡峭。所以,除非你有令人信服的理由去做,否则我强烈建议你避免这样做。

另一方面,如果你确实有一个强迫的理由,我建议你分享它,这样我们都能从你的想法中受益。

票数 1
EN

Stack Overflow用户

发布于 2014-10-20 02:28:22

不,LWRP都是全局的,因此名称空间被食谱命名,以避免碰撞。您也不需要include_recipe,这只涉及到运行配方代码。不过,您确实需要在depends中使用metadata.rb行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26457519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档