Facter 2では、配列/ハッシュをファクトとして持つことができます。
例えば:
os => {
"name"=>"CentOS",
"family"=>"RedHat",
"release"=>{
"major"=>"7",
"minor"=>"0",
"full"=>"7.0.1406"
}
}
アクセスするための形式は何ですかos=>release=>major
マニフェストから?
たとえば、次のようになります。
notify { $::os[release][major] : }
これを機能させるには、オプション stringify_facts をfalseに設定する必要があることに注意してください(Puppet 3.7.1を使用した書き込み時のデフォルト:true)。
通常のハッシュデータタイプとしてアクセスできるはずです: 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] )
次のように、ハッシュを使用してマニフェストからファクトにアクセスできます。
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