如何在 knife.rb 中设置本地机器的 fqdn
How to set fqdn of the local machine in knife.rb
这是我的 knife.rb 文件。在此我想将 node_name 设置为该本地计算机的 fqdn。我不想手动输入它。
因为我必须在 n 台机器上使用它。我只是写默认属性获取机器的fqdn。
它给出 ruby 语法错误.
log_level :info
log_location STDOUT
client_key '/etc/chef/client.pem'
node_name '#node['fqdn']'
chef_server_url 'myserverurl'
SyntaxError: /root/.chef/knife.rb:5: syntax error,
unexpected tIDENTIFIER, expecting end-of-input
node_name '#node['fqdn']'
^
相关文件内容:
4: client_key '/etc/chef/client.pem'
5: node_name '#node['fqdn']'
6: chef_server_url 'myserverurl'
节点属性是 Chef 配方的东西,它们不存在于配置中(在通常无效的 Ruby 语法之上)。对您来说幸运的是,FQDN 已经是默认值 node_name 所以根本不要指定一个!
根据评论:
如果确实需要,请使用 chef 生成 knife.rb 文件。
使用食谱中的模板资源,它将从 .erb 文件中生成 knife.rb,如 coderanger 所说,您将在其中包含 <%= node['fqdn'] %>
。
但我强烈建议不要这样做,因为您的供应系统应该已经处理了节点的 destruction/recreation,因此它更像是在 Chef 中管理节点和客户端的地方,而不是节点本身。
旧:
为什么要在所有节点上使用 Knife?
Knife 是一种管理工具,应该在工作站上用于管理节点、cookbboks 等
请解释您的用例,以便我们编辑和指导您尝试实现的目标。这是一个 XY 问题(关于工具的问题而不是关于问题的问题)
我同意 Tensibai 和 coderanger 的观点,这不是你最好的方法,但如果你真的想这样做,那么我建议你伸出机器询问。
node_name `hostname --fqdn`
或
node_name `hostname`
取决于您是否需要 fqdn。当然,两者都假设您在主机上设置了有效的主机名。
这是我的 knife.rb 文件。在此我想将 node_name 设置为该本地计算机的 fqdn。我不想手动输入它。
因为我必须在 n 台机器上使用它。我只是写默认属性获取机器的fqdn。
它给出 ruby 语法错误.
log_level :info
log_location STDOUT
client_key '/etc/chef/client.pem'
node_name '#node['fqdn']'
chef_server_url 'myserverurl'
SyntaxError: /root/.chef/knife.rb:5: syntax error,
unexpected tIDENTIFIER, expecting end-of-input
node_name '#node['fqdn']'
^
相关文件内容:
4: client_key '/etc/chef/client.pem'
5: node_name '#node['fqdn']'
6: chef_server_url 'myserverurl'
节点属性是 Chef 配方的东西,它们不存在于配置中(在通常无效的 Ruby 语法之上)。对您来说幸运的是,FQDN 已经是默认值 node_name 所以根本不要指定一个!
根据评论:
如果确实需要,请使用 chef 生成 knife.rb 文件。
使用食谱中的模板资源,它将从 .erb 文件中生成 knife.rb,如 coderanger 所说,您将在其中包含 <%= node['fqdn'] %>
。
但我强烈建议不要这样做,因为您的供应系统应该已经处理了节点的 destruction/recreation,因此它更像是在 Chef 中管理节点和客户端的地方,而不是节点本身。
旧:
为什么要在所有节点上使用 Knife?
Knife 是一种管理工具,应该在工作站上用于管理节点、cookbboks 等
请解释您的用例,以便我们编辑和指导您尝试实现的目标。这是一个 XY 问题(关于工具的问题而不是关于问题的问题)
我同意 Tensibai 和 coderanger 的观点,这不是你最好的方法,但如果你真的想这样做,那么我建议你伸出机器询问。
node_name `hostname --fqdn`
或
node_name `hostname`
取决于您是否需要 fqdn。当然,两者都假设您在主机上设置了有效的主机名。