首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到已声明的类postgresql::server木偶

找不到已声明的类postgresql::server木偶
EN

Stack Overflow用户
提问于 2016-08-04 19:54:54
回答 1查看 986关注 0票数 3

我正在尝试使用木偶在一个流浪机器上安装postgresql9.4的实例。到目前为止,我不喜欢我的时间与木偶和它的网站上的文件。到目前为止,我正在尝试从不同的教程和Postgresql木偶锻造官方文档中进行修补。

我所做的:

  1. puppet module install puppetlabs-postgresql
  2. 我创建了一个/etc/puppet/modules/postgresql/manifests/init.pp文件
  3. 我已经将此代码放置在init.pp文件中: 类{ 'postgresql::server':ip_mask_deny_postgres_user => '0.0.0.0/32',ip_mask_allow_all_users =>‘0.0.0/0’,listen_addresses => '*',ipv4acls => 'hostssl all johndoe 192.168.0.0/24 cert',postgres_password => 'TPSrep0rt!',}

我收到的错误是:

代码语言:javascript
复制
    Error: Puppet::Parser::AST::Resource failed with error ArgumentError: Could not find declared class postgresql::server at /etc/puppet/modules/postgresql/manifests/init.pp:7 on node vagrant-ubuntu-trusty-64.bbf.local
Wrapped exception:
Could not find declared class postgresql::server
Error: Puppet::Parser::AST::Resource failed with error ArgumentError: Could not find declared class postgresql::server at /etc/puppet/modules/postgresql/manifests/init.pp:7 on node vagrant-ubuntu-trusty-64.bbf.local

我是非常沮丧的木偶,我试图跟随‘部署Rails’和官方的锻造网站,以使这个工作,但没有任何效果。

我对木偶感到沮丧的是,这个网站并没有指明放什么东西的地方。在教程中,我已经将我的傀儡代码放置在init.pp中,但是postgresql有repo.pp, server.pp等等,它没有告诉您把傀儡代码放在哪里。有人能帮帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2016-08-04 21:07:22

到目前为止,我不喜欢我的时间与木偶和它的网站上的文件。到目前为止,我正在尝试从不同的教程和Postgresql官方文档中进行修补。

我无法与您一直遵循的未指定的教程交谈,但是Puppet自己的Postgresql模块的文档假定您已经熟悉Puppet语言和操作模式。我自己,我一直认为木偶文献是相当不错的,甚至在商业版本发布之前。

您可以考虑使用正式的基于VM的教程,但最终我建议您阅读(或至少浏览一下) 语言参考。如果您计划编写自己的模块,而大多数用户都这样做,那么您也应该知道类型参考。即使您不打算编写自己的模块,您也将使用模块,因此浏览模块基础部分是有用的。有更多的可能是有用的,但这应该足以让你有一个好的开始。

我对木偶感到沮丧的是,这个网站并没有指明放什么东西的地方。

该语言参考文献中的"基础知识“一章涉及到该部分的第一部分:

傀儡总是从一个清单开始编译(这个清单可以分成几个部分),称为“站点清单”或“主清单”。有关此特殊文件/目录的详细信息,请参阅主清单上的参考页。

链接的页面进入了一些细节,主要是因为在主/代理设置中有相当多的灵活性和多个选项。但是,如果您使用的是puppet apply,那么主清单就是您在puppet命令行中指定的任何文件。像您这样的类声明应该进入主清单,可能在节点块中,或者进入某个模块中将直接或间接在主清单中声明的另一个类的定义。正如Perl爱好者经常说的那样,“有不止一种方法可以做到这一点。”

我强调类声明和类定义之间的区别。前者大致上说,“命名类应该应用于目标节点”,而后者描述了将类应用于节点意味着什么。您可以认为这些类似于一个函数调用和另一个函数体。由于您试图使用来自第三方模块的类,第三方模块应该是模块的一部分。假设您的木偶安装在/etc/puppet中,则整个/etc/puppet/modules/postgresql目录属于模块实现,您不应该将任何东西放在那里。在这种情况下,模块工具应该已经在/etc/puppet/modules/postgresql/manifests/server.pp中安装了类/etc/puppet/modules/postgresql/manifests/server.pp的定义。

我不能提供您应该做什么的细节,因为您没有提供一些基本的细节,特别是您是在运行代理还是使用puppet apply。Puppet 3和Puppet 4之间也有一些可能相关的差异(例如,默认安装位置)。不过,我希望这能让你为酒店指明正确的方向。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38776315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档