这是我的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'发布于 2015-01-10 15:06:09
我同意Tensibai和coderanger的观点,这不是你最好的方法,但如果你真的想这么做,那么我建议你伸出手来问一问。
node_name `hostname --fqdn`或
node_name `hostname`取决于你是否想要fqdn。当然,两者都假设主机上有一个有效的主机名集。
发布于 2015-01-09 11:41:54
节点属性是主厨配方,它们不存在配置(在通常无效的Ruby语法之上)。幸运的是,FQDN已经是默认的node_name,所以根本不指定一个!
发布于 2015-01-09 12:54:43
如评论所述:
如果你真的想要的话,用厨师生成knife.rb文件。
coderanger说,使用烹饪书中的模板资源,它将从一个knife.rb文件中生成.erb,您将在其中包括<%= node['fqdn'] %>。
但是我强烈建议不要这样做,因为您的供应系统应该已经处理了一个节点的破坏/重新创建,所以它更像是在主厨中管理节点和客户端的地方,而不是节点本身。
旧:
为什么要在所有节点上使用刀?
刀是一种管理工具,用于工作站管理节点、炊具等。
请解释您的用例,以便我们可以编辑和指导您的努力实现什么。这是一个XY问题(问题在工具上,而不是在问题上)
https://stackoverflow.com/questions/27859312
复制相似问题