it-swarm.com.ru

Ansible - Могу ли я использовать арифметику при установке значения переменной?

Я хотел бы использовать системный факт для хоста, умноженный на число/процент, в качестве основы для переменной. То, что я пытаюсь сделать конкретно, это использовать значение ansible_memtotal_mb и умножить его на 0,80, чтобы получить ramsize для последующего использования при установке значения Couchbase. Я пробовал разные варианты строки ниже. Я никогда не уверен, что это возможно, но любая помощь будет оценена.

vars:
  ramsize: '"{{ ansible_memtotal_mb }}" * .80'
43
AValenti

Ты действительно близко! Я использую вычисления, чтобы установить некоторые значения по умолчанию Java объемы памяти, что похоже на то, что вы делаете. Вот пример:

{{ (ansible_memtotal_mb*0.8-700)|int|abs }}

Это показывает пару вещей - во-первых, он использует jinja math , так что делайте вычисления внутри {{ jinja }}. Во-вторых, int и ​​abs делают то, что ожидали - убедитесь, что результатом является целое число без знака.

В вашем случае правильный код будет:

vars:
  ramsize: "{{ ansible_memtotal_mb * 0.8 }}"
62
tedder42