使用组中的第一台主机

use*_*140 8 ansible

我的匿名主机定义看起来像

[elasticclient]
192.168.10.2
192.168.10.3
Run Code Online (Sandbox Code Playgroud)

我想使用组中要在变量中使用的第一台主机。我的剧本是

- hosts: kibana
  roles:
    - kibana
  vars:
    kibana_elasticsearch_url: http://{{ groups[['elasticclient'][0]] }}:9200
Run Code Online (Sandbox Code Playgroud)

运行此文件时,我的文件包含

http://[u'192.168.10.2']:9200
Run Code Online (Sandbox Code Playgroud)

我如何将其更改为

http://192.168.10.2:9200
Run Code Online (Sandbox Code Playgroud)

use*_*140 6

我弄清楚了,它是一个列表,我不得不再次对其建立索引。

kibana_elasticsearch_url: http://{{ groups['elasticproxy'][0] }}:9200
Run Code Online (Sandbox Code Playgroud)

  • 在此表达式groups [[['elasticproxy'] [0]]`中,使用字符串`'elasticproxy'`,并用'['elasticsearch']`组成单个元素的数组,然后使用其第一个元素'['elasticsearch' ] [0]`,实际上是“'elasticproxy'`”。那么为什么不只使用`groups ['elasticproxy']`呢? (2认同)