ansible - 使用 parted 输出中的属性
问题描述
我需要 Ansible 来安装服务器,并且必须为 LVM 分区。如何使用“sda_info.partitions”的第二个分区中的属性“size”?
hosts: node2
become: yes
become_method: sudo
become_flags: -H -S
tasks:
- name: Some name
parted:
device: /dev/sda
unit: s
register: sda_info
OUTPUT
TASK [debug] ***************************************************************
ok: [node2] => {
"sda_info.partitions": [
{
"begin": 4096.0,
"end": 51202047.0,
"flags": [
"boot"
],
"fstype": "ext4",
"name": "",
"num": 1,
"size": 51197952.0,
"unit": "s"
},
{
"begin": 51202048.0,
"end": 52248575.0,
"flags": [],
"fstype": "linux-swap(v1)",
"name": "",
"num": 2,
"size": 1046528.0,
"unit": "s"
}
]
}
解决方案
sda_info.partitions是一个包含 2 个字典的列表。可以参考第二本词典
sda_info.partitions[1]
并且属性大小可以分配给一个变量
- set_fact:
size_2nd_part: "{{ sda_info.partitions[1].size }}"
很可能该列表将按分区数排序。如果不是,上面的变量将不是第二个分区的大小。使用json_query确定
- set_fact:
size_2nd_part: "{{ sda_info.partitions|json_query('[?num==`2`].size') }}"
推荐阅读
- node.js - 如何使用reactjs在Axios中没有数据时显示消息?
- vue.js - 如何部署分离/解耦的 Laravel & Vue Js 项目?
- python - Python中是否有带键的同步锁?
- python - 如何使用邮递员中的请求表单将数据发送到 mongodb compass?
- python - 如何将同一台相机用于两种不同的应用程序?
- julia - 如何使用 Flux.jl 显示特征图
- javascript - 使用innerHTML时如何添加逗号?
- sql - OFFSET 和 LIMIT 在 POSTGRES 中不起作用
- android - 测试 Firebase 登录 - 带有 Espresso 的 Android 应用
- javascript - 在hackerrank解决方案平台上用ECMAscript 6编写箭头函数程序时出现错误