2017-02-22 10 views
0

パペットファクタを使用してルートパーティション(mount => "/")の名前を取得しようとしています。 "facter partitions"を実行すると、3つのパーティションが表示されます。 私は結果から変数 "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'] == "/"を試しましたが、エラーが発生しました。 皆さんはご存じですか?

答えて

0

ハッシュと配列を扱う場合は、おそらくパペットIteration and loopsの機能が必要です。そのページは、いくつかの便利な機能にリンクしており、必要なものを見つけるのに役立ちます。

まず、フィルタへの入力を必要とする:

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

これは{"/dev/sda3" => {"filesystem" .... }}に相当$root_partitionに全体の/ dev/sda3とハッシュを割り当てます。

が続いstdlibからkeys機能を使って左の単一のハッシュキーからデバイス名を抽出します。

$hddname = keys($root_partition)[0] 
+0

感謝を!完璧に動作します。 – Mike

関連する問題