it-swarm.com.de

Ansible - Kann ich beim Festlegen eines Variablenwerts Arithmetik verwenden?

Ich möchte einen Systemfaktor für einen Host mal eine Zahl/einen Prozentsatz als Basis für eine Variable verwenden. Ich versuche speziell, den Wert ansible_memtotal_mb zu verwenden und ihn mit .80 zu multiplizieren, um eine Ramsize zu erhalten, die dann zum Festlegen eines Couchbase-Werts verwendet wird. Ich habe verschiedene Varianten der folgenden Zeile ausprobiert. Ich bin mir nicht sicher, ob es möglich ist, aber jede Hilfe wäre dankbar.

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

Du bist wirklich nah dran! Ich verwende Berechnungen, um einige Standardspeichergrößen festzulegen Java), ähnlich wie bei Ihrer Arbeit. Hier ein Beispiel:

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

Das zeigt ein paar Dinge - zuerst wird jinja math verwendet, also machen Sie die Berechnungen innerhalb des {{ jinja }}. Zweitens tun int und abs das, was Sie erwarten - stellen Sie sicher, dass das Ergebnis eine ganze Zahl ohne Vorzeichen ist.

In Ihrem Fall wäre der richtige Code:

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