Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Chef infra 如何在knife.rb中设置本地机器的fqdn_Chef Infra - Fatal编程技术网

Chef infra 如何在knife.rb中设置本地机器的fqdn

Chef infra 如何在knife.rb中设置本地机器的fqdn,chef-infra,Chef Infra,这是我的刀.rb文件。在本例中,我想将节点名称设置为该本地计算机的fqdn。我不想手动键入它。因为我必须对n台机器使用这个。我只是编写默认属性来获取机器的fqdn。 它给出了ruby语法错误 相关文件内容: 4: client_key '/etc/chef/client.pem' 5: node_name '#node['fqdn']' 6: chef_server_url 'myserverurl'

这是我的刀.rb文件。在本例中,我想将节点名称设置为该本地计算机的fqdn。我不想手动键入它。因为我必须对n台机器使用这个。我只是编写默认属性来获取机器的fqdn。 它给出了ruby语法错误

相关文件内容:

  4: client_key               '/etc/chef/client.pem'

  5: node_name                '#node['fqdn']'

  6: chef_server_url          'myserverurl'

节点属性是一个厨师食谱,它们不存在于通常无效的Ruby语法之上的配置中。幸运的是,FQDN已经是默认的节点名称,所以根本不用指定

根据评论:

如果确实需要,请与chef一起生成knife.rb文件

使用cookbook中的模板资源,该资源将从.erb文件生成knife.rb,您将在其中包括coderanger所说的内容

但我强烈建议不要这样做,因为您的供应系统应该已经处理了节点的销毁/重新创建,因此它更适合在chef中管理节点和客户端,而不是节点本身

旧的:

为什么要在所有节点上使用刀

刀子是一种管理工具,应该在工作站上用于管理节点、Cookbbook等


请解释您的用例,以便我们可以编辑并指导您尝试实现的目标。这是一个XY问题工具上的问题,而不是问题上的问题

我同意Tensibai和coderanger的观点,这不是你最好的方法,但如果你真的想这样做,我建议你伸出机器去问

node_name `hostname --fqdn`


取决于您是否需要fqdn。当然,这两者都假设您在主机上设置了有效的主机名。

不要使用“node['fqdn']”,也要尝试使用它,同时显示相同的语法错误。如果我没有指定节点名,则分配节点名时会显示错误。如何使其工作此knife.rb文件实际上我想从该节点本身删除我的节点。所以我写了这个knife.rb文件。如果我将fqdn放在该节点名称中,它可以正常工作。但对于n个节点,我如何才能做到这一点呢?针对您的美国案例编辑了答案,即使我认为节点删除本身是一个概念错误。刀子节点删除-y$hostname-f。当我从该节点本身执行时,这可以正常工作,只是我设置了该节点的fqdnmachine@VijayVishnu这并不是说它工作得很好,只是这里不是管理它的地方。如果你的节点在某个点上崩溃,你会怎么做呢?你正走向陷阱。从某个参考位置管理您的基础架构可以是任何内容,并且可以随时删除或重做节点,而不受此节点状态运行、断电、崩溃和不可恢复等的影响。。
node_name `hostname --fqdn`
node_name `hostname`