Generating tuples variables in ansible templates

╄→гoц情女王★ 提交于 2019-12-23 19:08:16

问题


I'm trying to setup a playbook to deploy an influxdb cluster. Everything works fine except that we use INfluxDB Cluster Client

I am generating a production.py file which is read by our script.

InfluxdbClusterClient is waiting for a tuple to list all influx servers :

'hosts': [('fr-influxdb-prod-1', 8086), ('fr-influxdb-prod-2', 8086), ('fr-influxdb-prod-3', 8086)],

I am trying to generate those tuples from ansible variables but I don't know how to to dat. I tried:

/ Variables /
influxdb_hosts: [('fr-influxdb-prod-1', 8086), ('fr-influxdb-prod-2', 8086), ('fr-influxdb-prod-3', 8086)]

/ Template / 
....
'hosts': {{influxdb_hosts}},
...

Unfortunately it doesn't work as expected as Ansible is transforming the tuple in list (ie [('fr-influxdb-prod-1', 8086), ('fr-influxdb-prod-2', 8086), ('fr-influxdb-prod-3', 8086)] becomes ["('fr-influxdb-prod-1'", "8086)", "('fr-influxdb-prod-2'"," 8086)"," ('fr-influxdb-prod-3'"," 8086)]"

Do you see what i'm doing wrong ?


回答1:


You can use folded block scalar to inform Ansible that the argument is a string which shouldn't be parsed:

influxdb_hosts: >
  [('fr-influxdb-prod-1', 8086), ('fr-influxdb-prod-2', 8086), ('fr-influxdb-prod-3', 8086)],

This is generated destination file:

'hosts': [('fr-influxdb-prod-1', 8086), ('fr-influxdb-prod-2', 8086), ('fr-influxdb-prod-3', 8086)],


来源:https://stackoverflow.com/questions/34887828/generating-tuples-variables-in-ansible-templates

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!