[英]Calculate percentage used from List variables using Ansible playbook
我是 ansible 環境的新手。 我正在做一些編碼工作,但被困在了下面。
我得到下面的 output:在此處輸入圖像描述
我正在為上面列表中的每個聚合尋找 output,如下所示。 aggr_name: ag_xxxxx aggr_used%: [int] ==> (used/size *100)
我嘗試了在 web 中獲得的多個選項,但沒有運氣。 請幫我。
謝謝。
是否有%
的解決方案:我正在使用 jinja 過濾器float
和round
- name: "tips1"
hosts: localhost
vars:
aggr_capacity:
- aggr_name: ag1
aggr_space:
aggr_available: 123456
aggr_size: 4227703668736
aggr_used: 616585302016
- aggr_name: ag2
aggr_space:
aggr_available: 123456
aggr_size: 1585388896256
aggr_used: 22686273536
- aggr_name: ag3
aggr_space:
aggr_available: 123456
aggr_size: 1585388896256
aggr_used: 119851876352
tasks:
- name: solution set_fact
set_fact:
result: "{{ result | default([]) + [ { 'aggr_name': name, 'used': used, 'pct': pct ~ '%' } ] }}"
loop: "{{ aggr_capacity }}"
vars:
name: "{{ item.aggr_name }}"
used: "{{ (item.aggr_space.aggr_used / item.aggr_space.aggr_size ) | float | round(2)}}"
pct: "{{ (item.aggr_space.aggr_used / item.aggr_space.aggr_size * 100 )| float | round(2)}}"
- name: debug users
debug:
var: result
結果:
ok: [localhost] => {
"result": [
{
"aggr_name": "ag1",
"pct": "14.58%",
"used": "0.15"
},
{
"aggr_name": "ag2",
"pct": "1.43%",
"used": "0.01"
},
{
"aggr_name": "ag3",
"pct": "7.56%",
"used": "0.08"
}
]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.