Подтвердить что ты не робот

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

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

vars:
  ramsize: '"{{ ansible_memtotal_mb }}" * .80'
4b9b3361

Ответ 1

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

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

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

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

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