我正在尝试设置一个playbook来部署一个Influxdb集群。除了我们使用INfluxDB Cluster Client
之外,一切正常我正在生成一个由我们的脚本读取的production.py文件。
InfluxdbClusterClient正在等待一个元组列出所有涌入服务器:
'hosts': [('fr-influxdb-prod-1', 8086), ('fr-influxdb-prod-2', 8086), ('fr-influxdb-prod-3', 8086)],
我试图从ansible变量生成那些元组,但我不知道如何使用dat。我试过了:
/ Variables /
influxdb_hosts: [('fr-influxdb-prod-1', 8086), ('fr-influxdb-prod-2', 8086), ('fr-influxdb-prod-3', 8086)]
/ Template /
....
'hosts': {{influxdb_hosts}},
...
不幸的是,它无法按预期工作,因为Ansible正在转换列表中的元组(即[('fr-influxdb-prod-1', 8086), ('fr-influxdb-prod-2', 8086), ('fr-influxdb-prod-3', 8086)]
变为["('fr-influxdb-prod-1'", "8086)", "('fr-influxdb-prod-2'"," 8086)"," ('fr-influxdb-prod-3'"," 8086)]"
你看到我做错了吗?
答案 0 :(得分:0)
您可以使用折叠块标量来通知Ansible该参数是一个不应该被解析的字符串:
influxdb_hosts: >
[('fr-influxdb-prod-1', 8086), ('fr-influxdb-prod-2', 8086), ('fr-influxdb-prod-3', 8086)],
这是生成的目标文件:
'hosts': [('fr-influxdb-prod-1', 8086), ('fr-influxdb-prod-2', 8086), ('fr-influxdb-prod-3', 8086)],