ansible - 带有 linux 命令的 Ansible jinja2 模板
问题描述
我正在学习ansible。我已经编写了一个用于循环多个值的 jinja2 模板。但是,我从 linux 命令中获取这些值。
- name: fetching port ranges
command: ls /apache |grep redis|grep ".pid" | awk -F"_" '{ print $2}'| awk -F"." '{print $1}'
上述命令的输出将是:
10001
10002
10003
10004
10005
下面是jinja2模板
[{% for range in port %}
"127.0.0.1:{{ range }}",
{% endfor %}]
使用 jinja2 模板中的“for loop”,我正在尝试遍历 linux 命令生成的值,但我不确定如何保存这些值并在 jinja2 模板中使用它。任何帮助,将不胜感激。
解决方案
您需要注册结果,然后使用stdout_lines
.
尝试这样的事情:
- name: fetching port ranges
command: ls /apache |grep redis|grep ".pid" | awk -F"_" '{ print $2}'| awk -F"." '{print $1}'
register: result
- name: my template task
template:
src: <src>
dest: <dest>
vars:
port: "{{ result.stdout_lines }}"
推荐阅读
- javascript - 在我的程序中有一个我无法检测到的错误
- r - 如何使用网格的功能将 y 轴标题放在图形的左上角?
- python - 使用 mpegtsmux Gtsreamer 混合视频 H264 和数据
- java - 如何创建一个方法来比较不同实例对象的属性值与java
- docker - docker compose 之后的 docker commit
- amazon-web-services - 如何从 CI/CD 管道向 AWS EKS 集群验证 kubectl
- swift - 来自 .accentColor swiftui 的 getHue 始终返回蓝色 hsb 值
- botframework - 具有输入验证的自适应卡片
- java - 在 Android Studio 中,文本不会出现在图像顶部
- python - 将 setuptools_scm 从 6.0.1 升级到 6.3.1 后检查清单失败