2017-02-24 6 views
1

パペットファクタを使用してルートパーティション(mountpoint => "/")の名前を取得しようとしています。 "facter mountpoints"を実行すると、複数のパーティションが表示されます。結果から変数"/dev/md3"を取得したいと思います。パペット:ファクタフィルタを使用してマウントポイントを取得

{ 
/=> { 
    available => "893.71 GiB", 
    available_bytes => 959608590336, 
    capacity => "1.86%", 
    device => "/dev/md3", 
    filesystem => "ext4", 
    options => [ 
     "rw", 
     "errors=remount-ro" 
    ], 
    size => "910.69 GiB", 
    size_bytes => 977843884032, 
    used => "16.98 GiB", 
    used_bytes => 18235293696 
    }, 
    /run => { 
    available => "794.91 MiB", 
    available_bytes => 833527808, 
    capacity => "0.07%", 
    device => "tmpfs", 
    filesystem => "tmpfs", 
    options => [ 
     "rw", 
     "noexec", 
     "nosuid", 
     "size=10%", 
     "mode=0755" 
    ], 
    size => "795.48 MiB", 
    size_bytes => 834125824, 
    used => "584.00 KiB", 
    used_bytes => 598016 
    }, 
    /tmp => { 
    available => "1.78 GiB", 
    available_bytes => 1909157888, 
    capacity => "1.21%", 
    device => "/dev/md1", 
    filesystem => "ext4", 
    options => [ 
     "rw" 
    ], 
    size => "1.80 GiB", 
    size_bytes => 1932533760, 
    used => "22.29 MiB", 
    used_bytes => 23375872 
    } 
} 

私は、フィルタを使用しようとしましたが、私は"/"デバイスをフィルタリングすることができませんでした。 $root_mount = $facts['mountpoints'].filter |$mountpoint| { $mountpoint == '/' }皆さん、ありがとうございますか?

答えて

2

このファクトに直接アクセスするには、ハッシュ表記を使用します。あなたの質問は、あなたがFacter 3/Puppet 4を使用していることを意味しているので、私はその構文で作業します。

Facterハッシュのキーを直接トラバースするだけで、/dev/md3という値になります。我々はfacter mountpointsから関連する部分にハッシュを最小化する場合:

{ 
/=> { 
    device => "/dev/md3" 
    } 
} 

をし、我々は、キーがmountpoints(あなたがCLIからfacter mountpointsをしたときは、直接そのキーにアクセスし)、/、そしてdeviceあることがわかります。詳細はこちら

$facts['mountpoints']['/']['device'] # /dev/md3 

チェック:https://docs.puppet.com/puppet/4.9/lang_facts_and_builtin_vars.html#the-factsfactname-hash

+0

グレートしたがって、$factsハッシュとパペットで標準ハッシュ表記を使用して、我々はしてその値にアクセスすることができます!どうもありがとう – Mike

関連する問題