Puppet マニフェスト設定を Hiera に変換

Puppet マニフェスト設定を Hiera に変換

人形を介してcorosync-pacemakerクラスタをインストールしました。さて、データをhieraファイルに保存したいと思います。 cs_primitive部分をyamlファイルに変換するにはどうすればよいですか?

cs_primitive { 'nfsshare_fs':
  primitive_class => 'ocf',
  primitive_type  => 'Filesystem',
  provided_by     => 'heartbeat',
  parameters      => { 'device' => '/dev/disk/lvname', 'directory' => '/share', 'fstype' => 'ext4' },
}->

以下のコードを試しましたが、うまくいきません。

corosync::cs_primitive:
  'nfsshare_fs':
    primitive_class: 'ocf'
    primitive_type: 'Filesystem'
    provided_by: 'heartbeat'
    parameters:
      device: '/dev/disk/by-id/lvname'
      directory: '/share'
      fstype: 'ext4'

ありがとうございます。

ベストアンサー1

クラスはhieraによって提供されるパラメータを持つことができますが、リソースを持つことはできません。

hieraからパラメータを取得するマニフェストにカスタムクラスを作成する必要があります。たとえば、(テストされていません):

class corosync_resources (
   Hash $primitives = {},
) {
    $primitives.each |$key, $value| {
        cs_primitive { $key:
            * => $value,
        }
    }
}

それからシラで

corosync_resources::primitives:
  'nfsshare_fs':
    primitive_class: 'ocf'   

おすすめ記事