我应该使用 include_recipe 还是将配方添加到 run_list 中?

2024-01-03

试图找出大型项目的最佳方法。何时适合使用以下方法在菜谱中添加菜谱include_recipe而不是将食谱添加到run_list?有没有好的经验法则?


在我看来,任何配方都应该能够在空机器上独立运行。因此,如果某个配方 A 依赖于在其之前运行的配方 B,我总是使用 include_recipe。

例如:2 本食谱、tomcat 和 java。 Tomcat 需要 java。

  1. 当某些用户想要安装 tomcat 时,他可能不知道他实际上需要其他一些说明书来安装它。他运行 tomcat 配方,要么失败,并出现一些完全无用的错误消息,例如“未找到 java”,或者更糟糕 - 它成功了,但用户当然无法启动 tomcat,因为他没有安装 java。

  2. 但是当有一个include_recipe 'java'tomcat 食谱中的行,这也需要depends 'java'在元数据中,用户在尝试安装 tomcat 时,将看到可以理解的错误消息:“未找到 Cookbook java”。这样,实际上用户可以自己下载依赖项(甚至使用某些自动工具),而无需实际运行配方,而是读取元数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该使用 include_recipe 还是将配方添加到 run_list 中? 的相关文章

  • 从 ruby​​ 内部加密数据包,无需依赖 Knife

    目前要加密数据包 我必须这样做 system knife data bag from file TemporaryEncrypting enc file path secret file Secret Key Path 这不起作用 因为 K
  • Bitbake 配方未按预期应用补丁

    我有一个 tarball src tar gz 其内容被解压到 src 中 并使用此命令生成了该源的补丁 diff Nurp src src mod gt my patch 补丁头以这三行开头 diff Nurp src path to f
  • 使用 Chef 在 Windows 节点上挂载 Windows 共享

    我正在尝试将文件从 Windows 共享复制到我的节点的缓存 显然没有办法从remote file 做到这一点 所以我的替代想法是尝试将Windows 共享安装到本地驱动器并通过文件资源访问我需要的文件 然而 即使 Chef 告诉我挂载成功
  • 如何确定目录中的任何文件是否已更改

    Chef 有没有办法确定它是否更改了给定目录中的任何文件 如果conf d 目录中的任何设置被更新 我想重新启动服务器进程 我确信可以在每次厨师客户端运行时将 md5sum 列表写入文件 并将当前迭代与之前的迭代进行比较 但这是解决常见场景
  • Chef apt_repository 开始失败并出现 SSL 验证错误

    从过去 2 天开始 我们开始看到与 apt repository 资源相关的 Chef 执行失败 厨师 客户执行也遇到了类似的失败 主厨独奏版本 12 19 36 操作系统 Ubuntu 14 中的 Ubuntu v18 请参阅 Chef
  • 有没有办法将资源的属性解析延迟到“执行”阶段?

    我有两个 LWRP 第一个涉及创建磁盘卷 对其进行格式化并将其安装在虚拟机上 我们将此称为资源cloud volume 第二个资源 它的作用并不重要 需要新格式化卷的 UUID 这是必需的属性 我们将调用此资源foobar 资源cloud
  • Chef 中的引导问题

    我已经使用 Chef 设置了基本的基础设施 这包括本地厨师服务器 基于 ubuntu 工作站和基于 ubuntu 的服务器 用作节点 请注意 整个基础设施都位于我办公室网络的防火墙后面 我已经为服务器访问互联网做了必要的代理设置 所以这就是
  • 如何配置 yocto 使用最新的 git 提交?

    我是一个很懒的人 在处理硬件 软件项目时 软件会永久更改 在这个开发阶段 更改配方中的提交 恢复标签是非常令人讨厌的 我希望 Yocto 获取最新的 git 提交 这可能 如何做到这一点 我的示例食谱 SUMMARY my test SEC
  • 访问 ruby​​ 块内的厨师资源

    我一直试图在厨师文档和谷歌中找到这个问题的答案 但我一无所获 我还不是一个红宝石爱好者 所以这个问题的答案可能源于我用 为 Chef 准备足够的红宝石 来解决这个问题 这就是我想做的 在我的deploy资源 在before migrate属
  • 在列表理解或生成器表达式中使用 while

    我可以用if and for在列表推导式 生成器表达式中为 list i for i in range 100 if i i lt 30 我知道这不是最有效的 但请耐心等待 因为情况可能要复杂得多 这只是一个例子 然而 这仍然会经历数百次迭
  • Chef服务器密码重置

    我在我的 Linux 机器上安装并运行了我自己的 Chef 服务器 当我访问厨师服务器用户界面时 它询问我用户名和密码 不幸的是我忘记了密码 我知道我的用户名是admin 我怎样才能恢复我的密码 用户界面中也没有忘记密码选项 我更改了默认密
  • 在 docker 容器中安装 Chef-server

    我一直在尝试在 Docker 容器中安装 Chef Server 但遇到了一些麻烦 我正在运行一个带有最新版本的 Ubuntu 12 04 和最新安装的 Docker 的虚拟机 我运行一个基础 Docker Ubuntu 12 04 容器并
  • Chef 客户和验证者

    我试图理解 Chef 客户端和验证器的概念 以及它们与引导过程的关系 根据本文 http docs opscode com server manage clients html 厨师 客户将使用 etc chef validation pe
  • 使用 Chef 时主管打开文件限制不会改变

    我正在机器上修改 etc security limits conf 然后在 Chef 配方中安装 Supervisor 菜谱运行完成后 如果我运行cat proc
  • 如何使用 ChefSpec 测试我的 LWRP?

    我创建了自定义 LWRP 但是当我运行ChefSpec https github com sethvargo chefspec单元测试 它不知道我的 LWRP 操作 这是我的resource actions install uninstal
  • 如何安装knife-ec2插件?

    OSX 10 9 2 ruby v ruby 2 0 0p247 2013 06 27 revision 41674 universal x86 64 darwin13 knife v Chef 11 10 4 当我跑步时 knife ec
  • 如何获取 RightScale 厨师食谱中正在运行的食谱的完整路径?

    从我当前正在执行的食谱食谱中 我想访问它在我的执行机器上的 当前 位置 我需要它来访问它的缓存目录结构 我有一种感觉它位于 node 内部的某个地方 但我根本找不到有关其结构的任何文档 有什么建议吗 Thanks 刚刚通过检查 run co
  • 调用 LWRP 时的 Cookbook 名称前缀

    Summary 我可以使用外部说明书中的 LWRP 而不添加说明书名称前缀吗 例如 如果mycookbook包含mylwrp资源 我该怎么做 include recipe mycookbook Contains mylwrp mylwrp
  • 人们如何测试 opsworks 食谱?

    我在 nginx 上使用我目前使用 Capistrano 的乘客对铁路应用程序的动态配置实例进行了相当复杂的部署 我正在尝试自动化 Opsworks 上从创建堆栈 层 实例和动态应用程序部署的整个过程 现有的 Opsworks 食谱都无法满
  • 将 sensu-client 连接到服务器时 AMQP 连接的 bad_header

    我已经安装了 sensu 和厨师社区食谱 但是 sensu客户端无法连接到服务器 导致rabbitmq连接错误 尝试连接时消息超时 这是详细的客户端日志 来自 sensu client log 的日志 timestamp 2014 07 0

随机推荐