Math 用jinja2滤波器对变量集进行Ansible算术运算
我想设置一个变量,该变量是使用角色中的jinja过滤器提取的值的一小部分。我试图做的是:Math 用jinja2滤波器对变量集进行Ansible算术运算,math,filter,ansible,jinja2,Math,Filter,Ansible,Jinja2,我想设置一个变量,该变量是使用角色中的jinja过滤器提取的值的一小部分。我试图做的是: - name: Get size of FS set_fact: tmp_size_b: "{{ ansible_mounts | selectattr('device', 'match', '^/dev/mapper/root_vg-lv_tmp$') | map(attribute='size_total') | list }}" - name: Convert unit set_fa
- name: Get size of FS
set_fact:
tmp_size_b: "{{ ansible_mounts | selectattr('device', 'match', '^/dev/mapper/root_vg-lv_tmp$') | map(attribute='size_total') | list }}"
- name: Convert unit
set_fact:
tmp_size_k: "{{ tmp_size_b / 1024 }}"
如何将使用jinja过滤器提取的字符串转换为一个可以在以后操作的数字。我尝试在过滤器中的
|list
之后添加|int
,但没有成功 tmp\u size\u b
是示例中的一个列表。你试着划分列表
您可能想要:
- name: Get size of FS
set_fact:
tmp_size_b: >
{{ ansible_mounts
| selectattr('device', 'match', '^/dev/mapper/root_vg-lv_tmp$')
| map(attribute='size_total')
| list
| first }}
- name: Convert unit
set_fact:
tmp_size_k: "{{ (tmp_size_b | int) / 1024 }}"
您希望在
{…}
内部使用|int
,因为表达式外部不能有int变量。tmp\u size\u b
是示例中的一个列表。你试着划分列表
您可能想要:
- name: Get size of FS
set_fact:
tmp_size_b: >
{{ ansible_mounts
| selectattr('device', 'match', '^/dev/mapper/root_vg-lv_tmp$')
| map(attribute='size_total')
| list
| first }}
- name: Convert unit
set_fact:
tmp_size_k: "{{ (tmp_size_b | int) / 1024 }}"
您想在
{…}
内部使用|int
,因为表达式外部不能有int变量。您能调试tmp_size_b吗?-debug:msg=“{tmp_size_b}”它给了我:“msg”:[2136997888]你能调试tmp_size_b吗?-debug:msg=“{tmp_size_b}”它给了我:“msg”:[2136997888]