在 Puppet 中指定源似乎不起作用

在 Puppet 中指定源似乎不起作用

我一直在尝试使用 Puppet 在 Centos 5 服务器上创建安装 postgres 9.1 的清单。我一直在尝试调整以下说明:http://wiki.postgresql.org/wiki/YUM_Installation为了实现这一点,当我经历手动过程时,我已经能够做到。

因此,在我看来,一个傀儡表现为

package { 'postgresql91-server':
  ensure => installed,
  source => 'http://yum.postgresql.org/9.1/redhat/rhel-5-x86_64/pgdg-centos91-9.1-4.noarch.rpm'
}

然而,在尝试应用这个清单时,我得到了

err: /Stage[main]//Package[postgresql91-server]/ensure: change from absent to present failed: Could not find package postgresql91-server

有没有专业的木偶戏演员可以帮助我?

答案1

将 repo 添加到 yum(当然使用 puppet),然后将 repo 资源指定为包的依赖项。这将使以后的升级更加容易。请参阅 puppet 文档yum 仓库了解更多信息。

答案2

感谢 Steve 和 Paul 的帮助。我使用的最终代码是

yumrepo { "postgres":
  baseurl => "http://yum.postgesql.org/9.1/redhat/rhel-5x86_64/",
  descr => "Postgres 9.1 repository",
  enabled => 1,
  gpgcheck => 1
}

package { 'postgresql91-server' :
  ensure => installed,
}

这招很管用!

答案3

根据https://puppet.com/docs/puppet/latest/types/package.html,源取决于支持它的底层软件包提供商。据我所知,yum 不允许任意 URL - 您必须指定一个存储库(正如 Steve Wills 提到的)。

您可能能够通过仅为这个包资源指定“provider => “rpm””来解决此问题,但我自己还没有尝试过。

相关内容