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 ensuite pour définir une valeur de Couchbase. J'ai essayé différentes variantes de la ligne ci-dessous. Je ne suis pas toujours sûr que ce soit possible, mais toute aide serait la bienvenue.
vars:
ramsize: '"{{ ansible_memtotal_mb }}" * .80'
Tu es vraiment proche! J'utilise des calculs pour définir certaines tailles de mémoire par défaut Java, ce qui est similaire à ce que vous faites. Voici un exemple:
{{ (ansible_memtotal_mb*0.8-700)|int|abs }}
Cela montre quelques éléments - d’abord, il utilise jinja math , ainsi 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 }}"