我一直在尝试使用 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””来解决此问题,但我自己还没有尝试过。