首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ansible Lookup格式

Ansible Lookup格式
EN

Stack Overflow用户
提问于 2021-06-09 14:10:39
回答 1查看 49关注 0票数 0

我正在尝试用Ansible配置一个Prometheus服务器。为此,我将配置放在一个文件中,通过查找读取该文件:

代码语言:javascript
复制
prometheus_scrape_configs: "
{{ lookup('file', 'files/prometheus/prod/scrapes/basic.yml') }}
"

该文件包含一个标准配置:

代码语言:javascript
复制
- job_name: "prometheus"
  metrics_path: "{{ prometheus_metrics_path }}"
  static_configs:
  - targets:
    - "{{ ansible_fqdn | default(ansible_host) | default('localhost') }}:9090"
 [...]

但是,我得到了如下输出:

代码语言:javascript
复制
+  " ---\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‘而不是解释。我不确定问题出在哪里。

将查找更改为:

代码语言:javascript
复制
{{ lookup('file', 'files/prometheus/prod/scrapes/basic.yml')|from_yaml }}

生成一个列表:

代码语言:javascript
复制
+ ' [{''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'': [...]
EN

回答 1

Stack Overflow用户

发布于 2021-06-09 14:34:57

将YAML文本转换为列表,例如给定简化数据

代码语言:javascript
复制
shell> cat basic.yml 
- key1: val1
  key2: val2
  key3: val3

下面的任务

代码语言:javascript
复制
    - debug:
        var: ps_configs
      vars:
        ps_configs: "{{ lookup('file', 'basic.yml')|from_yaml }}"

给出

代码语言:javascript
复制
  ps_configs:
  - key1: val1
    key2: val2
    key3: val3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67898503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档