Ansible-puis-je utiliser l'arithmétique lors de la définition d'une valeur de variable?
Je voudrais utiliser un fait système pour un hôte fois un nombre / pourcentage comme base pour une variable. Ce que j'essaie de faire spécifiquement est d'utiliser la valeur ansible_memtotal_mb et de la multiplier par .80 pour obtenir une taille de RAM à utiliser pour définir une valeur Couchbase. J'ai essayé différentes variantes de la ligne ci-dessous. Je ne suis jamais sûr que ce soit possible, mais toute aide serait appréciée.
vars:
ramsize: '"{{ ansible_memtotal_mb }}" * .80'
1 réponses
Vous êtes vraiment proche! J'utilise des calculs pour définir certaines tailles de mémoire java par défaut, ce qui est similaire à ce que vous faites. Voici un exemple:
{{ (ansible_memtotal_mb*0.8-700)|int|abs }}
Cela montre quelques choses-d'abord, il utilise Jinja math , alors faites les calculs à l'intérieur du {{ jinja }}
. Deuxièmement, int
et abs
font ce que vous attendez - assurez-vous que le résultat est un entier non signé.
, Dans votre cas, le code correct serait:
vars:
ramsize: "{{ ansible_memtotal_mb * 0.8 }}"