我正在尝试用Ansible配置一个Prometheus服务器。为此,我将配置放在一个文件中,通过查找读取该文件:
prometheus_scrape_configs: "
{{ lookup('file', 'files/prometheus/prod/scrapes/basic.yml') }}
"该文件包含一个标准配置:
- job_name: "prometheus"
metrics_path: "{{ prometheus_metrics_path }}"
static_configs:
- targets:
- "{{ ansible_fqdn | default(ansible_host) | default('localhost') }}:9090"
[...]但是,我得到了如下输出:
+ " ---\n- job_name: \"prometheus\"\n metrics_path: \"{{ prometheus_metrics_path }}\"\
+ \n static_configs:\n - targets:\n - \"{{ ansible_fqdn | default(ansible_host)\
+ \ | default('localhost') }}:9090\"\n-打印'\n‘而不是解释。我不确定问题出在哪里。
将查找更改为:
{{ lookup('file', 'files/prometheus/prod/scrapes/basic.yml')|from_yaml }}生成一个列表:
+ ' [{''job_name'': ''prometheus'', ''metrics_path'': ''{{ prometheus_metrics_path }}'', + ''static_configs'': [{''targets'': ["{{ ansible_fqdn | default(ansible_host) | default(''localhost'') + }}:9090"]}]}, {''job_name'': ''node'', ''honor_labels'': True, ''ec2_sd_configs'': + [{''region'': ''eu-west-1'', ''port'': 9100, ''profile'': ''prometheus-ec2-read-only'', + ''filters'': [{''name'': ''tag:monitoring'', ''values'': [''prometheus'']}]}], ''relabel_configs'': [...]发布于 2021-06-09 14:34:57
将YAML文本转换为列表,例如给定简化数据
shell> cat basic.yml
- key1: val1
key2: val2
key3: val3下面的任务
- debug:
var: ps_configs
vars:
ps_configs: "{{ lookup('file', 'basic.yml')|from_yaml }}"给出
ps_configs:
- key1: val1
key2: val2
key3: val3https://stackoverflow.com/questions/67898503
复制相似问题