web-dev-qa-db-ja.com

facter 2ファクトの配列/ハッシュにアクセスする

Facter 2では、配列/ハッシュをファクトとして持つことができます。

例えば:

os => {
  "name"=>"CentOS",
  "family"=>"RedHat",
  "release"=>{
    "major"=>"7",
    "minor"=>"0",
    "full"=>"7.0.1406"
  }
}

アクセスするための形式は何ですかos=>release=>majorマニフェストから?

4
chriscowley

たとえば、次のようになります。

notify { $::os[release][major] : }

これを機能させるには、オプション stringify_facts をfalseに設定する必要があることに注意してください(Puppet 3.7.1を使用した書き込み時のデフォルト:true)。

6
faker

通常のハッシュデータタイプとしてアクセスできるはずです: https://docs.puppetlabs.com/puppet/latest/reference/lang_datatypes.html#indexing-1

$myhash = {os => {
  "name"=>"CentOS",
  "family"=>"RedHat",
  "release"=>{
    "major"=>"7",
    "minor"=>"0",
    "full"=>"7.0.1406"
  }
 }
}

notice( $myhash[os][release][major] )
2
Ruslan

次のように、ハッシュを使用してマニフェストからファクトにアクセスできます。

notify { $::os['release']['major']: }

例:

# puppet apply -e 'notify { $::os['release']['major']: }'
Notice: Compiled catalog for mon.adriatic.local in environment production in 0.04 seconds
Notice: 6
Notice: /Stage[main]/Main/Notify[6]/message: defined 'message' as '6'
Notice: Applied catalog in 0.28 seconds
1
Jakov Sosic