为什么“刀”不尊重我的 --config 选项?

问题描述 投票:0回答:2

我是第一次设置 Chef 服务器。为了进行测试,我创建了一个 Chef 的 Docker 实例 (https://hub.docker.com/r/cbuisson/chef-server/),并且成功运行。我可以登录,我可以从我的浏览器访问服务器。

但是,我正在尝试在这个容器上使用一些“刀”命令,但到目前为止还不能。

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 '[email protected]'

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-infra knife
2个回答
1
投票

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

我最喜欢的是使用 chef rubygem,如果这个概念对你来说是新的,请参阅this

回到你的问题,为了确保你的 knife 配置文件 (

./.chef/config.rb
) 正在被 chef 可执行文件读取,你可以在配置文件中放置一个小的探测 ruby 代码,一旦文件被读取就会输出。将如下内容放入您的刀具配置中:

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

现在再次执行 knife 命令并检查

my knife configuration
输出。如果不存在,请尝试在捆绑器上下文中重复它,因为它可能会解决您的痛苦。


0
投票

我按照下面的说明来确定正在使用哪个配置。

knife -VV

上面的命令告诉我正在使用 C:/opscode/chef-workstation/bin/knife

我去了那个特定的位置并添加了看跌期权来检查它。 我通过执行 knife cookbook upload 验证了它

现在进一步深入了解这个错误来自哪里

C:\opscode\chef-workstation\embedded\lib\ruby\gems\3.0.0\gems\chef-config-17.9.26\lib\chef-config\config.rb

搜索方法

def self.is_valid_url?(uri)

并修改了行 来自

  url = uri.to_s.strip

  url = 'https://api.chef.io/organizations/org1'.to_s.strip

哪个神奇。

我认为问题出在“”和'' 保留 "" 不是评估,您可以通过打印 url

来验证

现在更改此刀具命令后工作正常。

© www.soinside.com 2019 - 2024. All rights reserved.