木偶绑定dns camptocamp简单示例不起作用

时间:2018-08-07 20:09:55

标签: dns puppet bind

尝试从Camptocamp的人偶dns模块,但无法正常工作。

我的班级和来自伪造的木偶camptocamp的简单示例代码绑定自述文件以创建区域和记录:

class profile::dnsbind::server {

bind::zone {'example.com':
  ensure       => 'present',
  zone_contact => 'contact.example.com',
  zone_ns      => ['ns0.example.com'],
  zone_serial  => '2012112901',
  zone_ttl     => '604800',
  zone_origin  => 'example.com',
}

bind::a { 'example.com':
  ensure    => 'present',
  zone      => 'example.com',
  ptr       => false,
  hash_data => {
    'host1' => { owner => '192.168.0.1', },
    'host2' => { owner => '192.168.0.2', },
  },
}
}

错误消息:

Error: Failed to apply catalog: Could not find dependency Package[bind9] for Concat::Fragment[default.zone.example.com] at /etc/puppetlabs/code/environments/production/modules/bind/manifests/zone.pp:85

错误消息跟踪zone.pp第85行:

concat::fragment {"${_view}.zone.${name}":
    target  => "${bind::params::views_directory}/${_view}.zones",
    content => "include \"${bind::params::zones_directory}/${name}.conf\";\n",
    notify  => Exec['reload bind9'],
    require => Package['bind9'],
  }

模块:

/etc/puppetlabs/code/environments/production/modules
├── camptocamp-bind (v1.4.3)
├── drzewiec-chrony (v1.0.2)
├── puppetlabs-concat (v1.2.5)
└── puppetlabs-stdlib (v4.25.1)

依赖项:

puppetlabs/stdlib (>=3.2.0 <5.0.0)
puppetlabs/concat (>= 1.0.0 <2.0.0)

1 个答案:

答案 0 :(得分:1)

该模块的文档充其量是平庸的,但是在浏览了代码以找出实际上声明了Package[bind9]的类之后,我进行了回溯,最终发现了{{3 }}:

  

绑定

     

使用此中的定义之前必须声明此类   模块。

您正在使用已定义的类型,但尚未声明bind类。通过将其放在您的个人资料课中来纠正此问题:

include 'bind'

如果您需要自定义其参数(需要查看源代码以找出它们的含义),然后在外部数据中输入适当的参数值。


顺便说一句,我注意到这个特定模块收到了糟糕的社区评论,至少部分是由于文档质量差。伪造平台上还有其他一些绑定模块,它们的评论更好,而IMO的文档更好。并不是说camptocamp-bind不能很好地满足您的需求,但这不是 I 会首先尝试的。