好的,这开始了,因为我试图让自动缩放的节点向Chef自动注册。我的client.rb
文件中包含以下内容:
node_name "some_prefix-#{`hostname`}"
这个想法是,每个节点都将具有相同的前缀,但具有基于主机名的后缀。可悲的是,
hostname
返回一个在其末尾带有\n
的字符串。 Chef很高兴让我创建此客户端,但是它实际上无法以任何方式访问它。knife client show some_prefix-myHostname
knife client show "some_prefix-myHostname\n"
knife client show "some_prefix-myHostname%0A"
这三个都导致404
knife client list
确实显示了客户端,并在其后显示了一个空白的换行符。
我已经修复了client.rb模板,但是无法摆脱使用换行符创建的节点的名称。我试过使用刀子,webui,甚至使用irb中的Chef::REST库手动进行尝试,但所有操作都导致404。
有任何想法吗?
编辑:
我也尝试过
knife client bulk delete
,但是也失败了。看起来REST库会在尝试发送请求之前清理URL并删除换行符。 最佳答案
您可以尝试使用knife raw,它可以将请求直接发送到Chef Server API
knife raw /nodes/<node-name>
knife raw delete -m /nodes/<node-name>
这对我解决了类似的角色名称无效问题。