我是第一次设置Chef服务器。为了进行测试,我创建了Chef (https://hub.docker.com/r/cbuisson/chef-server/)的Docker实例,并成功运行。我可以登录,并且可以从我的浏览器访问服务器。
然而,我正在尝试在这个容器上使用一些“刀”命令,到目前为止还不能。
MacBook-Pro:chef user1$ knife node list --config ./.chef/config.rb
ERROR: CONFIGURATION ERROR:127.0.0.1 is an invalid chef_server_url. The URL must start with http://, https://, or chefzero://.
MacBook-Pro:chef user1$ cat ./.chef/config.rb
chef_server_url 'https://127.0.0.1/'
MacBook-Pro:chef user1$将配置文件中的URL更改为127.0.0.1以外的任何值仍然会产生此错误--据我所知,--config选项不能按照文档中的描述工作,除非我严重误解了某些内容。我无法找到它正在读取的配置文件,但很明显它不是我用--config标志指定的配置文件。
更多故障排除:
MacBook-Pro:cookbooks$ echo $KNIFE_HOME
/Users/PERSON/.chef/config.rb
MacBook-Pro:cookbooks$ cat $_
chef_server_url 'https://localhost/organizations/COMPANY'
cookbook_email 'person@company.com'
MacBook-Pro:cookbooks $ knife supermarket download hostsfile --config $KNIFE_HOME
ERROR: CONFIGURATION ERROR:127.0.0.1 is an invalid chef_server_url. The URL must start with http://, https://, or chefzero://.
MacBook-Pro:cookbooks$ knife -VV
ERROR: You need to pass a sub-command (e.g., knife SUB-COMMAND)
Usage: knife sub-command (options)
-s, --server-url URL Chef Infra Server URL.
[truncated]发布于 2019-07-07 18:44:06
您没有指定如何使用chef可执行文件-是通过chefdk还是通过chef rubygem。
我最喜欢的是使用chef rubygem,如果这个概念对你来说是新的,请查看this
回到你的问题,为了确保你的刀子配置文件(./.chef/config.rb)正在被chef可执行文件读取,你可以在配置文件中放置一个小的探测ruby代码,一旦文件被读取,它就会输出。将类似以下内容放入刀配置中:
# .chef/config.rb
puts 'my knife configuration'现在再次执行刀具命令,并检查my knife configuration输出。如果它不存在,请尝试在捆绑上下文中重复它,因为它可能会解决您的痛苦。
https://stackoverflow.com/questions/56905569
复制相似问题