【发布时间】:2015-12-06 15:50:34
【问题描述】:
我们有一个 Jenkins-Chef 设置,其中包含一个 QA 构建项目到一个客户的网站。构建从 Bitbucket 获取代码,脚本将厨师客户端的食谱上传到厨师服务器。
这些构建运行了很长时间。两天前,自动和手动构建开始失败并出现以下错误(取自 Jenkins 控制台输出):
更新的环境质量检查
上传示例部署 [0.1.314]
错误:请求实体太大
响应:JSON 不得超过 1000000 字节。
据我了解,JSON 文件应该与 nodejs 相关,这是开发人员在此网络服务器上使用的。
我们查看了 Jenkins、Chef-Server 和 QA 服务器的所有配置文件。我们找不到更改导致此错误的 1MB 限制的方法。
我们尝试更改 client_max_body_size,但没有成功。 我们检查了 JSON 文件的大小,没有一个达到这个限制。 知道我们可以在哪里找到解决方案吗?可以更改此限制吗?有什么我们可以做的(基础设施方面)还是应该从开发人员方面解决这个问题?
【问题讨论】:
-
该消息是由于您的cookbook 太大,上传它的请求超过了1MB 的限制,通常这意味着您在部署时还有其他速度问题,因为这么大的cookbook 是有问题的。
-
菜谱的大小似乎在 60MB 左右,除非我找错地方了? (我在 /home/ubuntu/chef-repo/cookbooks 中)。推动变更的开发人员如何将规模扩大这么多?
-
也许他在菜谱的文件中放了一个 apckage
example-deploymentdu -hs /home/ubuntu/chef-repo/cookbooks/example-deployment应该会给你这个菜谱每个部分的大小 -
似乎 /chef-repo/cookbooks/example-deployment/files/default/website/.git/ 包含 62MB 中的 56MB .. 不知道该怎么办?我应该要求开发人员调查一下吗?我应该删除这些并尝试构建它吗?
-
在cookbooks下添加一个名为
chefignore的文件,并在里面添加 git以避免将其上传到厨师服务器见docs.chef.io/chef_repo.html#chefignore-files但git应该已经被忽略了,所以看看剩下的大图像/二进制文件的食谱
标签: node.js nginx jenkins chef-infra