要获得特定主机的IP地址,请按揉

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

我想找到其他系统的IP地址。例如,我正在从服务器wevrs1234执行我的代码,我想要服务器apvrs1234的IP地址并将其存储在变量中。请帮助我得到这个。

ip = IPSocket.getaddress(Socket.gethostname)

是我到目前为止的代码。

根据建议,我编写了此代码,但出错了。请找到我的代码

 publish_vm = node['aem_dispatcher_cookbook']['publish'].to_s
  nodes = search(:node, 'hostname:publish_vm')
 node.default['aem_dispatcher_cookbook']['ip_address'] = 'nodes.first['ipaddress']'

  template node['aem_dispatcher_cookbook']['owner']['home'] + '/conf.d/publish_farm.any' do
    source   'publish_farm.any.erb'
    owner    node['aem_dispatcher_cookbook']['owner']['user']
    group    node['aem_dispatcher_cookbook']['owner']['group']
    mode     '0755'
    variables(
      publish_host: node['aem_dispatcher_cookbook']['publish'],
      publish_port: node['aem_dispatcher_cookbook']['publish_port'],
      ip_addr: node['aem_dispatcher_cookbook']['ip_address']
    )
  end

错误

[2020-05-20T06:09:52-05:00] DEBUG: Node wevrd64501.uhc.com loading cookbook aem_dispatcher_cookbook's attribute file /root/.chef/local-mode-cache/cache/cookbooks/aem_dispatcher_cookbook/attributes/default.rb

================================================================================
Recipe Compile Error in /root/.chef/local-mode-cache/cache/cookbooks/aem_dispatcher_cookbook/recipes/default.rb
================================================================================

SyntaxError
-----------
/root/.chef/local-mode-cache/cache/cookbooks/aem_dispatcher_cookbook/recipes/default.rb:333: syntax error, unexpected tIDENTIFIER, expecting keyword_end
...ess'] = 'nodes.first['ipaddress']'
...                      ^~~~~~~~~

System Info:
ruby ruby-on-rails-3 ruby-on-rails-5 chef chef-recipe
1个回答
0
投票

[您用[chef]和[chef-recipe]标记了问题,所以我了解您正在尝试在配方中获取另一台机器的IP地址。如果该另一台计算机也已在Chef Server中注册,则最简单的方法是search。您可以通过某些属性(在您的情况下-主机名)搜索在Chef服务器上注册的任何计算机。

search

更新

您在第三行中有一个错误。不要在nodes = search(:node, 'hostname:<another_vm_hostname>') p nodes.first['ipaddress'] 周围加上引号。

nodes.first['ipaddess']
© www.soinside.com 2019 - 2024. All rights reserved.