Ansible ad-hoc-修复在用作变量时作为字符串传递的整数(我认为)

Ansible ad-hoc-修复在用作变量时作为字符串传递的整数(我认为),ansible,Ansible,我有一本使用Ansible VMware_来宾模块构建VMware VM的手册。此模块要求RAM值为整数,单位为MB 我在Ansible Tower中有一个模板,它允许我将RAM的值作为一个整数传递,我的playbook做数学运算。我认为这是基于Jinja数学的。这是我找到的数学链接- 这是我的剧本内存中的变量:“{{VM\u RAM*1024}”。当使用Ansible Tower时,这非常有效。用户可以要求8GB的RAM,playbook将GB转换为MB 我目前需要从一个临时命令构建虚拟机。我

我有一本使用Ansible VMware_来宾模块构建VMware VM的手册。此模块要求RAM值为整数,单位为MB

我在Ansible Tower中有一个模板,它允许我将RAM的值作为一个整数传递,我的playbook做数学运算。我认为这是基于Jinja数学的。这是我找到的数学链接-

这是我的剧本内存中的变量:“{{VM\u RAM*1024}”。当使用Ansible Tower时,这非常有效。用户可以要求8GB的RAM,playbook将GB转换为MB

我目前需要从一个临时命令构建虚拟机。我相信下面的命令应该可以工作,但“VM_RAM”变量似乎是作为字符串提取的。运行该命令时出现错误-“msg”:“指定的参数不正确:configSpec.memoryMB”

ansible-playbook vm-build.yml --extra-vars '{"VM_name":"new-vm", "VM_HDD2":"10", "VM_CPU":"4", "VM_RAM":"8"}'
谁能看出我错在哪里,或者有什么建议吗?我应该补充一点,我不想在ad-hoc命令中进行转换。我可以强制ad-hoc命令使用整数吗

谢谢。

我算出来了

将“| int”添加到剧本中,以便在运行临时命令后从字符串更改为整数

Before: memory_mb: "{{ VM_RAM * 1024 }}"
您是否需要
虚拟内存中关于
8的
:“8”
?去掉它就意味着它是一个整数值,不是吗?
After: memory_mb: "{{ VM_RAM |int * 1024 }}"