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'   

関連情報