【发布时间】:2014-09-01 12:59:57
【问题描述】:
我正在使用 puppet-postgresql 模块来管理 PostgreSQL。清单的那部分如下所示:
class { 'postgresql::server':
postgres_password => 'postgres',
}
postgresql::server::db { $db_name:
user => $db_user,
password => postgresql_password($db_user, $db_password),
}
工作正常,但我收到烦人的警告:
Warning: Scope(Class[Postgresql::Server]): Passing "version" to postgresql::server is deprecated; please use postgresql::globals instead.
编辑: 我什至将版本添加到全局变量中,但我仍然收到警告:
class { 'postgresql::globals':
version => '9.3',
}->
class { 'postgresql::server':
postgres_password => 'postgres',
}
postgresql::server::db { $db_name:
user => $db_user,
password => postgresql_password($db_user, $db_password),
}
但我不会将任何 'version' 传递给 postgresql::server。我在这里做错了什么?
Docs https://forge.puppetlabs.com/puppetlabs/postgresql 在这种情况下没有帮助我...
【问题讨论】:
-
这不应该发生。如果不指定版本,模块应该使用the default 的
undef并且不生成警告。你在用 Hiera 吗?它可能包含postgresql::server::version键吗? -
没有希拉。我没有对 puppet manifest 进行过试验,但我查看了代码并认为问题在于 ::server 继承自 ::params,它也继承了 ::globals 的
version。在 server.pp 中实现警告的方式无法区分继承的version或覆盖的,因此即使未覆盖变量也会发出警告。你怎么看? -
是的,在进一步阅读时,我也觉得很奇怪。 m0dlx 在他的以下评论中确认。
标签: postgresql puppet