人偶绑定 dns camptocamp 简单示例不起作用
puppet bind dns camptocamp simple example not working
正在尝试来自 camptocamp 的 puppet dns 模块,但它不起作用。
我的 class 和来自 forge puppet 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)
这个模块的文档充其量是平庸的,但是在查看代码以找到 class 实际声明的内容 Package[bind9]
之后,我逆向工作并最终发现了这个易于-忽略 the "classes" section of the docs 中的项目:
bind
This class must be declared before using the definitions in this
module.
您正在使用定义的类型,但您尚未声明 [=12=] class。通过将其放入您的个人资料中更正此 class:
include 'bind'
如果您需要自定义其参数(您需要查看源代码以了解它们是什么),请将适当的参数值放入您的外部数据中。
顺便说一句,我注意到这个特定模块收到了糟糕的社区评论,至少部分原因是文档质量差。 Forge 上还有其他几个具有更好评论的绑定模块,而且 IMO 有更好的文档。这并不是说 camptocamp-bind
不适合你,但它不是 我 会首先尝试的那个。
正在尝试来自 camptocamp 的 puppet dns 模块,但它不起作用。
我的 class 和来自 forge puppet 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)
这个模块的文档充其量是平庸的,但是在查看代码以找到 class 实际声明的内容 Package[bind9]
之后,我逆向工作并最终发现了这个易于-忽略 the "classes" section of the docs 中的项目:
bind
This class must be declared before using the definitions in this module.
您正在使用定义的类型,但您尚未声明 [=12=] class。通过将其放入您的个人资料中更正此 class:
include 'bind'
如果您需要自定义其参数(您需要查看源代码以了解它们是什么),请将适当的参数值放入您的外部数据中。
顺便说一句,我注意到这个特定模块收到了糟糕的社区评论,至少部分原因是文档质量差。 Forge 上还有其他几个具有更好评论的绑定模块,而且 IMO 有更好的文档。这并不是说 camptocamp-bind
不适合你,但它不是 我 会首先尝试的那个。