使用 linux 命令的 Ansible jinja2 模板
Ansible jinja2 template with linux command
我正在学习ansible。我写了一个 jinja2 模板来循环多个值。但是,我从 linux 命令中获取这些值。
- name: fetching port ranges
command: ls /apache |grep redis|grep ".pid" | awk -F"_" '{ print }'| awk -F"." '{print }'
上述命令的输出将是:
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 }'| awk -F"." '{print }'
register: result
- name: my template task
template:
src: <src>
dest: <dest>
vars:
port: "{{ result.stdout_lines }}"
我正在学习ansible。我写了一个 jinja2 模板来循环多个值。但是,我从 linux 命令中获取这些值。
- name: fetching port ranges
command: ls /apache |grep redis|grep ".pid" | awk -F"_" '{ print }'| awk -F"." '{print }'
上述命令的输出将是:
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 }'| awk -F"." '{print }'
register: result
- name: my template task
template:
src: <src>
dest: <dest>
vars:
port: "{{ result.stdout_lines }}"