为什么“刀”不兑现我的--config选项?

时间:2019-07-05 15:09:05

标签: chef knife

我是第一次设置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]

1 个答案:

答案 0 :(得分:1)

您没有指定如何使用Chef可执行文件-是​​通过chefdk还是通过chef rubygem

我最喜欢的是使用主厨rubygem,如果这个概念对您来说不新鲜,请参阅this

回到您的问题,以确保厨师配置文件正在读取您的刀配置文件(./.chef/config.rb),您可以在配置文件中放置一个小的探针红宝石代码,该文件在读取文件后将输出。将以下内容放入刀配置中:

# .chef/config.rb
puts 'my knife configuration'

现在再次执行knife命令,并检查my knife configuration的输出。如果不存在,请尝试在捆绑程序上下文中重复它,因为它可能会解决您的痛苦。