playbook - Ansible: ¿Puedo usar la aritmética cuando establezco un valor de variable?
ansible variables (1)
Me gustaría utilizar un hecho del sistema para un host multiplicado por un número / porcentaje como base para una variable. Lo que estoy tratando de hacer específicamente es usar el valor ansible_memtotal_mb y multiplicarlo por .80 para obtener un tamaño de ramsize para luego usarlo al establecer un valor de Couchbase. He estado probando diferentes variaciones de la línea a continuación. No estoy seguro de que sea posible, pero cualquier ayuda sería apreciada.
vars:
ramsize: ''"{{ ansible_memtotal_mb }}" * .80''
¡Estás muy cerca! Utilizo cálculos para establecer algunos tamaños de memoria java predeterminados, que es similar a lo que está haciendo. Aquí hay un ejemplo:
{{ (ansible_memtotal_mb*0.8-700)|int|abs }}
Eso muestra un par de cosas: primero, usa matemática jinja , así que haz los cálculos dentro de {{ jinja }}
. En segundo lugar, int
y abs
hacen lo que cabría esperar, asegúrese de que el resultado sea un entero sin signo.
En su caso, el código correcto sería:
vars:
ramsize: "{{ ansible_memtotal_mb * 0.8 }}"