在Puppet中访问Facter哈希键

时间:2017-01-11 16:45:16

标签: puppet facter

我正在创建一个清单来获取代理的分区名称。

事实$partitions显示分区信息的详细信息。

{"xvda1"=>{"uuid"=>"d1697425-49d0-4c9f-9901-5f9260be8196", "size"=>"83859300", "mount"=>"/", "label"=>"cloudimg-rootfs", "filesystem"=>"ext4"}}

但是,我只想获取名称部分(xvda1)并将其用作配置文件的变量。

有没有办法在Puppet中过滤输出?

1 个答案:

答案 0 :(得分:4)

解决此问题的最快方法是使用keys中的puppetlabs/stdlib函数:https://forge.puppet.com/puppetlabs/stdlib/readme

  

键()   以数组的形式返回哈希的键。输入:rvalue。

使用该函数,我们可以将输出哈希从Facter转换为键的数组并正常访问其元素。假设xvda10th元素,

Facter 2:

$ variable = keys($ :: partitions)[0]

Facter 3:

$ variable = keys($ facts [' partitions'])[0]