Chef infra 为什么不是';";“刀”;尊重我的--config选项?

Chef infra 为什么不是';";“刀”;尊重我的--config选项?,chef-infra,knife,Chef Infra,Knife,我第一次设置了厨师服务器。为了测试,我创建了一个Chef()的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 sta

我第一次设置了厨师服务器。为了测试,我创建了一个Chef()的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]

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

我最喜欢的是使用厨师rubygem,看看这个概念对你来说是否新鲜

回到您的问题,为了确保chef可执行文件正在读取刀配置文件(
/.chef/config.rb
),您可以在配置文件中放置一个小的probe ruby代码,该代码将在读取文件后输出。将类似以下内容放入刀配置中:

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

现在再次执行刀命令并检查
my knife configuration
输出。如果没有,请尝试在bundler上下文下重复,因为这可能会解决您的问题。

堆栈溢出是专门针对编写软件的问题。关于使用专业系统管理工具的问题更适合我们的姐妹网站(显然存在重叠——如果您正在编写厨师食谱,这是Ruby代码,所以在这里讨论这个主题;但这是一个纯粹的使用问题).使用
-VV
运行刀子,查看正在使用哪个文件作为警告:当使用gem install中的chef时,您需要自己操作。此外,由于chef15不再包含二进制文件,您将遇到一些问题。使用
knife-VV
将给出哪个文件被读取为源配置,并且比尝试读取每个可能的文件更直接。显然,我的配置文件没有被加载,所以我不需要进一步证明这一点。。!我一辈子都搞不清楚它是从哪个文件读取的——以及为什么它忽略了文档中搜索配置文件的所有规则,事实上,甚至是
--config
标志。我记得我安装了
brew
。。。感谢您提供有关安装类型的提示。我检查了通常的位置-
~/.chef/config.rb
$REPO/.chef/config.rb
。。。