这是盐config.sls
{% set testval = ["172.16.49.169:5044", "172.16.51.156:5044"] %}
filebeat_config:
file.managed:
- name: /etc/filebeat/filebeat.yml
- source: salt://filebeat/files/filebeat.yml.tmpl
- template: jinja
- user: root
- mode: 600
- context:
logstash_hosts: {{ testval }}当呈现时,主机条目如下所示:
hosts: [u'172.16.49.169:5044', u'172.16.51.156:5044']如何删除每个字符串之前的u‘?
我试过{{ testval|tojson }},{{ testval|json }}和- encoding: ascii/utf-8
发布于 2021-01-04 22:59:22
tojson选项需要位于tmpl文件中,而不是config.sls文件中。
filebeat.yml.tmpl
output.logstash:
hosts: {{ testval|tojson }}
loadbalance: True
index: filebeat发布于 2021-01-01 17:03:24
这个问题似乎与编码有关,因为我将按照下面的示例按预期的方式呈现配置。
我的config.sls状态文件:
{% set testval = ["192.168.1.11:5044", "192.168.1.12:5044"] %}
filebeat_config:
file.managed:
- name: /tmp/filebeat.yml
- source: salt://files/filebeat.yml.j2
- template: jinja
- context:
logstash_hosts: {{ testval }}filebeat.yml.j2模板:
hosts: {{ logstash_hosts }}呈现:
hosts: ['192.168.1.11:5044', '192.168.1.12:5044']然而,
因为文件节拍配置遵循YAML语法,所以我们可以使用YAML列表-语法。我们可以有一个filebeat.yml.j2模板文件,如:
output.logstash:
hosts:
{%- for host in logstash_hosts %}
- "{{ host }}"
{%- endfor %} 使用相同的config.sls状态,配置呈现为:
output.logstash:
hosts:
- "192.168.1.11:5044"
- "192.168.1.12:5044"https://stackoverflow.com/questions/65525390
复制相似问题