我正在尝试使用Puppet获取根分区(mount => "/")名称。当我运行"facter partitions“时,它显示了三个分区。我想从结果中得到变量"sda3“。
{
/dev/sda1 => {
size => "1.00 MiB",
size_bytes => 1048576
},
/dev/sda2 => {
filesystem => "ext2",
mount => "/boot",
size => "477.00 MiB",
size_bytes => 500170752,
uuid => "8345d60e-e09a-4723-b5a6-149f4002706d"
},
/dev/sda3 => {
filesystem => "ext4",
mount => "/",
size => "49.71 GiB",
size_bytes => 53376712704,
uuid => "a1330fb2-7f13-417e-8908-813b1fdae911"
},我试过$hddname = $facts['partitions']['mount'] == "/",但发现了一个错误。你们知道吗?
发布于 2017-02-23 08:59:29
在处理散列和数组时,您可能需要木偶迭代与循环特性。该页面链接到一些有用的函数,并将帮助您找到您需要的。
首先,您需要过滤输入:
$root_partition = $facts['partitions'].filter |$device, $partition| { $partition['mount'] == '/' }这将将整个/dev/sda3 3哈希分配给$root_partition,相当于{"/dev/sda3" => {"filesystem" .... }}。
然后使用keys函数从斯德利布左的单个哈希键中提取设备名称。
$hddname = keys($root_partition)[0]https://stackoverflow.com/questions/42398390
复制相似问题