我正在创建一个清单来获取代理的分区名称。
事实$partitions
显示分区信息的详细信息。
{"xvda1"=>{"uuid"=>"d1697425-49d0-4c9f-9901-5f9260be8196", "size"=>"83859300", "mount"=>"/", "label"=>"cloudimg-rootfs", "filesystem"=>"ext4"}}
但是,我只想获取名称部分(xvda1
)并将其用作配置文件的变量。
有没有办法在Puppet中过滤输出?
答案 0 :(得分:4)
解决此问题的最快方法是使用keys
中的puppetlabs/stdlib
函数:https://forge.puppet.com/puppetlabs/stdlib/readme。
键() 以数组的形式返回哈希的键。输入:rvalue。
使用该函数,我们可以将输出哈希从Facter转换为键的数组并正常访问其元素。假设xvda1
是0th
元素,
Facter 2:
$ variable = keys($ :: partitions)[0]
Facter 3:
$ variable = keys($ facts [' partitions'])[0]