将 puppet 清单配置转换为 hiera

将 puppet 清单配置转换为 hiera

我通过 puppet 安装了 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'   

相关内容