Ansible jinja2模板与linux命令



我正在学习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循环",我尝试迭代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 }}"

相关内容

  • 没有找到相关文章

最新更新