我正在使用Chef Automate的Workflow部分向我的Chef服务器提供cookbook。我已经通过管道在Chef Server上成功上传了2本烹饪书。
在Chef服务器上:
apache
版本为0.2.3
another_test
版本为0.1.1
我想对apache
进行更改以依赖another_test,因此我更新了apache
的元数据,并将版本提升为0.2.4
。
apache
的元数据文件有depends 'another_test'
并且another_test
没有依赖关系。
apache
的Berksfile是
source :chef_server
source 'https://supermarket.chef.io'
metadata
当我进行交付审核时,管道启动,但我在验证阶段的单元测试阶段出现故障。
execute[unit_rspec_apache] action run
=============================================== =================================
在资源'execute [unit_rspec_apache]'上执行动作`run`时出错 ================================================== ==============================
Mixlib :: ShellOut :: ShellCommandFailed
------------------------------------
预期进程以[0]退出,但收到'1' ----开始输出rspec --format documentation --color ----
STDOUT:[2017-11-21T14:06:57 + 00:00]错误:连接被拒绝连接到https://localhost/universe,重试1/5
[2017-11-21T14:07:02 + 00:00]错误:连接被拒绝连接到https://localhost/universe,重试2/5
[2017-11-21T14:07:07 + 00:00]错误:连接拒绝连接到https://localhost/universe,重试3/5
[2017-11-21T14:07:12 + 00:00]错误:连接被拒绝连接到https://localhost/universe,重试4/5
[2017-11-21T14:07:17 + 00:00]错误:连接拒绝连接到https://localhost/universe,重试5/5`before(:suite)`钩子发生错误。 失败/错误:提出NoSolutionError.new(要求,e)
Berkshelf :: NoSolutionError: 由于解决方案约束(apache = 0.2.4),无法满足不存在的包another_test的约束。可能导致对another_test的约束的解决方案约束:[(apache = 0.2.4) - > (another_test> = 0.0.0)]
遗失的文物:another_test
无法满足的需求:(apache = 0.2.4)
无法找到满足需求的解决方案:apache(0.2.4)
由于此失败,新版本的apache 0.2.4永远不会上传到Chef服务器。
编辑:
我已经使用超市的依赖关系进行了测试,并通过了验证阶段。所以我在apache中有depends 'java'
并且上传得很好。当我依赖来自厨师服务器的食谱时,问题就开始了。
编辑2:
我可以登录跑步者并做knife cookbook list
。这证明了跑步者可以访问厨师服务器并查看那里存在的烹饪书。我也尝试更改apache
的Berksfile
source 'https://<full-url-to-chef-server/organizations/myorg'
取代source :chef_server
答案 0 :(得分:0)
我必须编辑转轮节点上的/var/opt/delivery/workspace/.chef/knife.rb
文件。我在文件底部添加了这一行:chef_server_url 'https://chef-server/organizations/myorg'
。
此刀配置文件由转轮节点上的dbuild用户使用。它读取此文件以确定Chef服务器的URL。