2017-04-24 73 views
0

我試圖使用​​角色來安裝Kibana和Ansible 2.2.1.0。我製作了一個如下所示的劇本。我的庫存有一批這樣的:在模板中使用Ansible庫存組主機名

[kibana_node] 
myHostname 

我設置了的情況下,我想自定義的命令行的節點組的變量。 (kibana_node_group)。我想動態地從庫存中的kibana節點值被geerlingguy.kibana角色使用,但模板不能按我的預期工作。我發現了一個在調試語句中可用的語法,但它在配置文件的模板代碼中不起作用。

劇本:

- hosts: "{{ kibana_node_group }}" 

    pre_tasks: 

    - debug: 
     var: "groups.{{ kibana_node_group }}[0]" 

    roles: 
     - geerlingguy.kibana 

    vars: 
     kibana_node_group: kibana_node 
     kibana_server_host: "groups.{{ kibana_node_group }}[0]" 

在geerlingguy.kibana角色,他有這個模板代碼來設置配置文件:

# The host to bind the server to. 
server.host: {{ kibana_server_host }} 

當我運行這個劇本,這就是投入被配置文件:

server.host: groups.kibana_node[0] 

我希望看到「myHostname」像調試輸出顯示,但沒有發現鋼筆。

回答

2

kibana_server_host: groups.{{ kibana_node_group }}[0]是python相當於"groups." + kibana_node_group + "[0]",其中groups.[0]只是字符串。

使用kibana_server_host: "{{ groups[kibana_node_group][0] }}"代替

相關問題