【问题标题】:Puppet get root partition name using facterPuppet 使用因子获取根分区名称
【发布时间】:2017-02-22 17:28:38
【问题描述】:

我正在尝试使用 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'] == "/",但出现错误。 你们有什么想法吗?

【问题讨论】:

    标签: puppet facter


    【解决方案1】:

    在处理哈希和数组时,您可能需要 Puppet Iteration and loops 功能。该页面链接到一些有用的功能,将帮助您找到所需的功能。

    首先你需要过滤输入:

    $root_partition = $facts['partitions'].filter |$device, $partition| { $partition['mount'] == '/' }
    

    这会将整个 /dev/sda3 哈希分配给$root_partition,相当于{"/dev/sda3" => {"filesystem" .... }}

    然后使用来自stdlibkeys 函数从左侧的单个哈希键中提取设备名称:

    $hddname = keys($root_partition)[0]
    

    【讨论】:

      猜你喜欢
      • 2012-10-03
      • 2017-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-03
      • 2013-08-17
      • 1970-01-01
      相关资源
      最近更新 更多