“include_recipe”与 Vagrantfile“chef.add_recipe”。有什么不同?

2024-01-10

刚刚在我的流浪盒子上运行 nginx::source Recipe,并且我有非常不寻常的行为。

当我包含来自的食谱时流浪文件(如下),一切都像魅力一样,

Chef.add_recipe(“项目::nginx”)
Chef.add_recipe("nginx::source")

(项目::nginx食谱很简单。用它来覆盖 nginx 说明书的默认属性)

但如果我在最后添加一个食谱项目::nginx(上面提到过),一切都崩溃了:

node.default['nginx']['server_names_hash_bucket_size'] = 128
include_recipe "nginx::source"

直到现在我还不知道这两个调用之间的行为有什么区别。这里有人知道有什么区别吗?


被我耍到了!厨师 11 功能。问题仅存在于厨师独奏中:)

要快速制作简历,区别在于:

  • Chef.add_recipe() - 加载整个食谱上下文(所有文件,例如食谱、定义、属性...)
  • include_recipe "" - 不加载不在扩展运行列表中的文件(属性、定义等)。

至少有4种方法可以解决这个问题(将文件放入运行列表中):

  • include_attribute - 显式包含所需的属性文件。
  • metadata.rb->dependency - 如果您的食谱使用另一本食谱中的食谱,则将该食谱放入metadata.rb的依赖项部分,并且将加载其所有文件。
  • Chef.add_recipe() - 通过 Vagrantfile 加载食谱。 (这里提到的仅供参考)
  • Berkshelf - 您也可以使用此食谱管理器来解决问题。这是关于这个确切问题的 Stackoverflow 线程 https://stackoverflow.com/questions/20075061/chef-cookbook-fails-on-ohai-undefined-method-for-nilnilclass/20396483#20396483 and 一些文档 http://misheska.com/blog/2013/06/16/getting-started-writing-chef-cookbooks-the-berkshelf-way/

对于那些有兴趣进一步阅读的人,Chef 11 为非菜谱文件引入了基于依赖关系的说明书加载。新的加载逻辑意味着属于 Cookbook_path 中存在但不在扩展的 run_list 中的 Cookbook 的文件或扩展的 run_list 中的 Cookbook 的依赖项将不再被加载。参考:Opscode 重大变更文档 http://docs.opscode.com/breaking_changes_chef_11.html#non-recipe-file-evaluation-includes-dependencies,如果您需要我收到的错误的签名,here's https://tickets.opscode.com/browse/COOK-2342完全相同,甚至出于相同的原因。

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

“include_recipe”与 Vagrantfile“chef.add_recipe”。有什么不同? 的相关文章

  • ./manage.py 使用 https 运行服务器

    manage py 运行服务器 0 0 0 0 8000 我使用上面的行作为我从 github 借用的代码的一部分 https github com ribeiroit boh puppet https github com ribeiro
  • nginx 将虚拟目录重写为文件

    这应该很容易做到 但我的头撞在墙上了 如果我收到对 www mysite com mypath 的请求 我想提供 www mysite com myotherpath thisfile html 的内容 我如何使用 nginx 配置来做到这
  • `uwsgi_modifier1 30` 指令没有按照记录从 PATH_INFO 中删除 SCRIPT_NAME

    这是我的 nginx 虚拟主机配置 debian cat etc nginx sites enabled mybox server listen 8080 root www index index html index htm server
  • Nginx - 自定义 404 页面

    Nginx PHP 在 fastCGI 上 对我来说非常有用 当我输入不存在的 PHP 文件的路径时 我不会得到默认的 404 错误页面 任何无效的 html 文件都会出现该错误页面 而只会得到 未指定输入文件 如何自定义此 404 错误页
  • nginx docker 容器:502 错误网关响应

    我有一个服务监听 8080 端口 这不是一个容器 然后 我使用官方镜像创建了一个 nginx 容器 docker run name nginx d v root nginx conf etc nginx conf d p 443 443 p
  • Nginx反向代理返回404

    我的 Nginx 安装并运行 下面是配置 etc nginx nginx conf 我要全部转发 api 到我的 tomcat 服务器 该服务器在同一服务器上的端口 9100 上运行 类型http myhost 9100 api apps有
  • nginx 匹配位置中的特定单词

    我在匹配 nginx request body 变量中的特定单词时遇到问题 如果正文请求中有特殊单词 我想代理传递 所以我的方法是这样的 location php if request body proxy pass http test p
  • 我可以在 Nginx Conf 中添加多少个服务器块

    知道我可以在 Nginx 配置中添加多少个服务器块吗 我需要将它用于具有多个子域的反向代理 每个客户端一个子域 它能成功支持 10 000 个服务器块吗 有没有相关的基准研究 这实际上并不是一个你有多少人的问题can但你有多少 能够妥善处理
  • 找不到 NGINX brew 安装命令

    I do brew install nginx and get gt Downloading http nginx org download nginx 1 2 2 tar gz Already downloaded Library Cac
  • NGINX hashbang 重写

    我想知道 hashbang url 的位置或重写 nginx 指令会是什么样子 基本上像前端控制器一样通过 hashbang 路由所有非 hashbanged url 所以 http example com about staff 将路由至
  • 将应用程序级别用户名/用户 ID 注入 nginx/Apache 日志

    有没有办法将应用程序级别的用户名或 id 在本例中为 django 用户名或 id 注入 Apache 或 ngnix 日志中 请注意 我不是询问 HTTP 身份验证用户名 我目前正在使用一个简短的自定义中间件将此数据添加到响应标头 如下所
  • Nginx 是否也缓冲来自客户端的 http 请求?

    我知道 Nginx 可以缓冲来自上游服务器的响应 我的问题是 Nginx 是否也缓冲来自客户端的 http 请求 我的意思是 如果 Nginx 从客户端收到 http 请求 它是否立即与上游服务器建立连接 或者它会在收到整个http请求后创
  • 仅在配置时才在 Vagrantfile 中运行代码

    我想在运行时在屏幕上显示一些文本vagrant up or vagrant provision etc 当且仅当正在配置 为了vagrant up它仅在第一次运行 或者如果特别强制 provision 如何才能做到这一点 添加 shell
  • Django + nginx + uwsgi 无法登录

    我有非常简单的登录逻辑 类似于官方 Django 解决方案 class Login FormView template name login html form class AuthenticationForm def get self a
  • 在哪里可以找到config.vm.boot_timeout?

    您好 我想编辑 vagrant 中的 config vm boot timeout 因为我在启动 vagrant 时遇到问题 我在哪里可以找到 config vm boot timeout 我应该输入什么值 我在windows8 1 x86
  • Logrotate - nginx 日志不在 docker 容器内旋转

    我有一个运行 nginx 的 docker 容器 它正在将日志写入 var log nginxLogrotate 安装在 docker 容器中 并且 nginx 的 logrotate 配置文件已正确设置 尽管如此 logrotate 仍不
  • Rails Windows Vagrant 响应时间非常慢

    我在跑 Vagrant 1 7 1 Rails 4 1 4 Thin 1 6 1 Windows 7 每个静态文件的发送时间都超过一秒 在我的 PC 上加载一个页面可能需要大约 20 秒 而在同事的 Linux 机器上则只需瞬间 有一些帖子
  • 将 Vagrant VM 存储在自定义文件夹中

    我想指定 Vagrant 将存储我的虚拟机的文件夹 我只需要一台虚拟机 所以我不想修改 VirtualBox xmldefaultMachineFolder或改变VBOX USER HOME环境变量 在 Vagrantfile 中正确的做法
  • 上游太大 - nginx + codeigniter

    我从 Nginx 收到此错误 但似乎无法弄清楚 我正在使用 codeigniter 并使用数据库进行会话 所以我想知道标题怎么会太大 有没有办法检查标题是什么 或者看看我能做些什么来修复这个错误 如果您需要我提供任何conf文件或其他文件
  • PHP cURL 在本地工作,在 AWS 服务器上出现错误 77

    最新更新 脚本作为管理员用户通过 SSH shell 作为 php script php 成功运行 当由 nginx 用户运行时 curl 命令无法执行 https 请求 所以我猜测这是nginx用户无法正确使用curl的问题 我已经检查了

随机推荐

  • 如何为所有unittest.TestCase类执行tearDown和setUp方法

    我有一个类 BaseTest 所有测试都是从它扩展的 测试位于不同的模块和包中 setUpClass 和tearDownClass 方法在每个unittest TestCase 类之前执行 我怎样才能只执行一次setUp和tearDown
  • Angular 2 Material 中的粘性页脚

    我现在已经搜索了大约3个小时 因为我不想问 但是我怎样才能在底部保留一个 页脚 变量 而不是像固定在底部一样 所以如果我的内容是非常小 它不会只位于页面的中间 但如果我有很多信息 它不会锁定在页面底部并在滚动时坐在数据上 我尝试了多种方法
  • 使用 PCRE 支持重建 uwsgi

    运行 uwsgi 时 我收到以下消息 no internal routing support rebuild with pcre support 我已经使用以下命令安装了 PCRE 我认为 sudo apt get install libp
  • C -- 打印到屏幕而不使用 #include ? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 有没有办法有一个C源文件打印到屏幕上
  • data.table merge() 与 NA 按列

    我正在尝试连接两个表 其中连接的列具有一些 NA 值 这样当遇到 NA 时 记录就会用 NA 填充 即 Given gt x data table c 1 2 3 NA 5 c a b c d e gt x V1 V2 1 1 a 2 2
  • WP8录制视频时如何更改相机分辨率

    我正在使用微软提供的视频录制示例 我想更改应用程序中录制的视频的分辨率 目前默认以最高分辨率录制 怎么办呢 videoCaptureDevice DesiredFormat new VideoFormat PixelFormatType U
  • 使用 pycurl 自定义标头

    我可以发送一个自定义标头就像 yaddayadda 到服务器pycurl http pycurl sourceforge net 要求 我会编写如下代码 pycurl connect pycurl Curl pycurl connect s
  • Flutter:通过 Google Firebase 授权时出错

    我是 Flutter 的初学者 遇到了这样的问题 我需要做到这一点 以便在登录我的应用程序时 我的邮件显示在 firebase 中 我进行了授权 但是当我单击按钮 使用谷歌登录 时出现错误 这是我的 pubspec yaml depende
  • 购物车持久性:$_SESSION 还是浏览器 cookie?

    在没有用户名 登录名来保存购物车数据的电子商务网站上 使用 PHP SESSION 变量或浏览器 cookie 来保存购物车中的商品会更好吗 我倾向于 SESSION 因为 cookies 可以被禁用 但想听听你的想法 预先感谢您的考虑 N
  • 为什么Python的os.walk会默默地失败?

    我有以下内容 def crawl rootdir for dir subdir files in os walk rootdir for file in files print file found s file 根据我的理解 如果我在不存
  • 运行使用 FSharp.Data 的单元测试时出现 MissingMethodException

    我有一个 NUnit 单元测试 它是在普通 F 库中编写的 但目标是可移植类库中的 F 代码 当我运行此测试 在 Visual Studio 2013 中 时 出现以下异常 Result Message System MissingMeth
  • 同时缓存/播放AVPlayer视频

    我的代码大量借鉴了这个问题 使用资源加载器委托 AVPlayer 在大型视频文件上停滞 https stackoverflow com questions 29683567 avplayer stalling on large video
  • 批量处理文件一个一个

    我有一个批处理文件来压缩 PNG 文件 当我批量拖放一些文件时 它开始同时处理所有文件 当我尝试使用数百个文件时 它变得毫无用处 当然 主要部分是这样的 简化 START W truepng exe out n1 out1 png 1 ST
  • React 组件构造函数中的 ipcRenderer

    我有一个使用 Electron React 和 React Router 的应用程序 我在用着ipcRenderer在组件构造函数中将事件从我的组件发送到主 Electron 进程 将 React Router 添加到组合中后 我注意到每次
  • 如何使用 c# 为 Twitter API 1.1 生成 OAuth 签名?

    我正在开发一个应用程序 其中一部分是获取该应用程序的提及次数 我在 Twitter 上创建了一个应用程序 并为 REST API v1 1 GET statuses mentions timeline 生成了 OAuth 签名 并访问提及时
  • 从 Surface 编码时,Adreno GPU 上的编码器崩溃

    我已经为这个问题苦苦挣扎了一个多星期了 很可能这是一个错误高通 GPU 硬件视频编码器 由于我们被迫发布该应用程序 并且他们的开发者论坛没有提供任何反馈 因此我也将其发布在这里 希望有人能够提供一些线索 甚至更好的解决方法 以便编码器中的错
  • 具有 Eager 模式的 TF.data.dataset.map(map_func)

    我正在使用启用了 eager 模式的 TF 1 8 我无法打印 mapfunc 内的示例 当我从 mapfunc 中运行 tf executing eagerly 时 我得到 False import os import tensorflo
  • 抽象和多态有什么区别

    我似乎不太理解两个OOP概念 你能解释一下什么吗抽象 and 多态性是 最好有真实的例子和代码 谢谢 抽象 想象一个分数类 class fraction int denominator int numerator 现在有两个对象 fract
  • 如何从 setcap 可执行文件获取核心转储?

    为了防止特权数据逃逸 Linux 上的 setcap 可执行文件不会转储核心 ijw build cat gt test c main abort ijw build gcc test c test c In function main t
  • “include_recipe”与 Vagrantfile“chef.add_recipe”。有什么不同?

    刚刚在我的流浪盒子上运行 nginx source Recipe 并且我有非常不寻常的行为 当我包含来自的食谱时流浪文件 如下 一切都像魅力一样 Chef add recipe 项目 nginx Chef add recipe nginx