Yes, I finally sat down and really dug into this problem and it was an
ordering thing...but it wasn't just ordering. It turned out that the
dependency issue was with postgresql92-libs. If I installed that by hand
first then I would get a clean run in puppet with all the other packages
and the version I wanted installed. The code I used to order was the
following (though I like your solution a bit better).
Package['postgresql92-libs']->Package['postgresql92-server']->Package['postgresql92-contrib']->Package['postgresql92-devel']
$packageList = [ "${postgresBase}",
"${postgresBase}-libs",
"${postgresBase}-server",
"${postgresBase}-contrib",
"${postgresBase}-devel", ]
package { $packageList:
ensure => $postgresqlVersion,
}
So the short of the story was that it was both ordering *and* a missing
package that was creating my problem.
On Wednesday, August 13, 2014 1:20:43 PM UTC-4, jcbollinger wrote:
>
>
>
> On Friday, August 8, 2014 10:33:48 AM UTC-5, Mark Rosedale wrote:
>>
>> Hey Matthias,
>>
>> Thanks for the response. So I do see some additional information that may
>> help.
>>
>> So it appears that puppet does successfully install postgresql and
>> postgresql-server and postgres92, and that explains what did get installed.
>>
>> Notice: /Stage[pre]/Yum::Repo/Exec[refresh-yum-cache]: Triggered
>> 'refresh' from 1 events
>> Notice:
>> /Stage[main]/Postgresql::Install/Package[postgresql-8.1.23-10.el5_10]/ensure:
>>
>> created
>> Notice:
>> /Stage[main]/Postgresql::Install/Package[postgresql-server-8.1.23-10.el5_10]/ensure:
>>
>> created
>> Error: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install
>> postgresql92-server-9.2.8-1PGDG.rhel5' returned 1: postgres
>> ql92-9.2.8-1PGDG.rhel5.x86_64 from vivox-postgresql has depsolving
>> problems
>> --> Missing Dependency: postgresql92-libs = 9.2.8-1PGDG.rhel5 is needed
>> by package postgresql92-9.2.8-1PGDG.rhel5.x86_64 (vivox-po
>> stgresql)
>> Error: Missing Dependency: postgresql92-libs = 9.2.8-1PGDG.rhel5 is
>> needed by package postgresql92-9.2.8-1PGDG.rhel5.x86_64 (vivox-p
>> ostgresql)
>> You could try using --skip-broken to work around the problem
>> You could try running: package-cleanup --problems
>> package-cleanup --dupes
>> rpm -Va --nofiles --nodigest
>> Wrapped exception:
>> Execution of '/usr/bin/yum -d 0 -e 0 -y install
>> postgresql92-server-9.2.8-1PGDG.rhel5' returned 1:
>> postgresql92-9.2.8-1PGDG.rhel5.x8
>> 6_64 from vivox-postgresql has depsolving problems
>> --> Missing Dependency: postgresql92-libs = 9.2.8-1PGDG.rhel5 is needed
>> by package postgresql92-9.2.8-1PGDG.rhel5.x86_64 (vivox-po
>> stgresql)
>> Error: Missing Dependency: postgresql92-libs = 9.2.8-1PGDG.rhel5 is
>> needed by package postgresql92-9.2.8-1PGDG.rhel5.x86_64 (vivox-p
>> ostgresql)
>> You could try using --skip-broken to work around the problem
>> You could try running: package-cleanup --problems
>> package-cleanup --dupes
>> rpm -Va --nofiles --nodigest
>> Error:
>> /Stage[main]/Postgresql::Install/Package[postgresql92-server]/ensure:
>> change from absent to 9.2.8-1PGDG.rhel5 failed: Could n
>> ot update: Execution of '/usr/bin/yum -d 0 -e 0 -y install
>> postgresql92-server-9.2.8-1PGDG.rhel5' returned 1: postgresql92-9.2.8-1PG
>> DG.rhel5.x86_64 from vivox-postgresql has depsolving problems
>> --> Missing Dependency: postgresql92-libs = 9.2.8-1PGDG.rhel5 is needed
>> by package postgresql92-9.2.8-1PGDG.rhel5.x86_64 (vivox-po
>> stgresql)
>> Error: Missing Dependency: postgresql92-libs = 9.2.8-1PGDG.rhel5 is
>> needed by package postgresql92-9.2.8-1PGDG.rhel5.x86_64 (vivox-p
>> ostgresql)
>> You could try using --skip-broken to work around the problem
>> You could try running: package-cleanup --problems
>> package-cleanup --dupes
>> rpm -Va --nofiles --nodigest
>> Error: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install
>> postgresql92-contrib-9.2.8-1PGDG.rhel5' returned 1: postgre
>> sql92-9.2.8-1PGDG.rhel5.x86_64 from vivox-postgresql has depsolving
>> problems
>> --> Missing Dependency: postgresql92-libs = 9.2.8-1PGDG.rhel5 is needed
>> by package postgresql92-9.2.8-1PGDG.rhel5.x86_64 (vivox-po
>> stgresql)
>> Error: Missing Dependency: postgresql92-libs = 9.2.8-1PGDG.rhel5 is
>> needed by package postgresql92-9.2.8-1PGDG.rhel5.x86_64 (vivox-p
>> ostgresql)
>> You could try using --skip-broken to work around the problem
>> You could try running: package-cleanup --problems
>> package-cleanup --dupes
>> rpm -Va --nofiles --nodigest
>> Wrapped exception:
>> Execution of '/usr/bin/yum -d 0 -e 0 -y install
>> postgresql92-contrib-9.2.8-1PGDG.rhel5' returned 1:
>> postgresql92-9.2.8-1PGDG.rhel5.x
>> 86_64 from vivox-postgresql has depsolving problems
>> --> Missing Dependency: postgresql92-libs = 9.2.8-1PGDG.rhel5 is needed
>> by package postgresql92-9.2.8-1PGDG.rhel5.x86_64 (vivox-po
>> stgresql)
>> Error: Missing Dependency: postgresql92-libs = 9.2.8-1PGDG.rhel5 is
>> needed by package postgresql92-9.2.8-1PGDG.rhel5.x86_64 (vivox-p
>> ostgresql)
>> You could try using --skip-broken to work around the problem
>> You could try running: package-cleanup --problems
>> package-cleanup --dupes
>> rpm -Va --nofiles --nodigest
>> Wrapped exception:
>> Execution of '/usr/bin/yum -d 0 -e 0 -y install
>> postgresql92-devel-9.2.8-1PGDG.rhel5' returned 1:
>> postgresql92-9.2.8-1PGDG.rhel5.x86_64 from vivox-postgresql has depsolving
>> problems
>> --> Missing Dependency: postgresql92-libs = 9.2.8-1PGDG.rhel5 is needed
>> by package postgresql92-9.2.8-1PGDG.rhel5.x86_64 (vivox-postgresql)
>> Error: Missing Dependency: postgresql92-libs = 9.2.8-1PGDG.rhel5 is
>> needed by package postgresql92-9.2.8-1PGDG.rhel5.x86_64 (vivox-postgresql)
>> You could try using --skip-broken to work around the problem
>> You could try running: package-cleanup --problems
>> package-cleanup --dupes
>> rpm -Va --nofiles --nodigest
>> Error:
>> /Stage[main]/Postgresql::Install/Package[postgresql92-devel]/ensure: change
>> from absent to 9.2.8-1PGDG.rhel5 failed: Could not update: Execution of
>> '/usr/bin/yum -d 0 -e 0 -y install postgresql92-devel-9.2.8-1PGDG.rhel5'
>> returned 1: postgresql92-9.2.8-1PGDG.rhel5.x86_64 from vivox-postgresql has
>> depsolving problems
>> --> Missing Dependency: postgresql92-libs = 9.2.8-1PGDG.rhel5 is needed
>> by package postgresql92-9.2.8-1PGDG.rhel5.x86_64 (vivox-postgresql)
>> Error: Missing Dependency: postgresql92-libs = 9.2.8-1PGDG.rhel5 is
>> needed by package postgresql92-9.2.8-1PGDG.rhel5.x86_64 (vivox-postgresql)
>> You could try using --skip-broken to work around the problem
>> You could try running: package-cleanup --problems
>> package-cleanup --dupes
>> rpm -Va --nofiles --nodigest
>> Notice: /Stage[main]/Postgresql::Install/Package[postgresql92]/ensure:
>> created
>>
>>
>> So here is my install manifest
>> class postgresql::install($version) {
>> $postgresBase = $version ? {
>> '8' => "postgresql",
>> default => "postgresql92",
>> }
>>
>> if ( $postgresBase == '8' ) {
>> $postgresqlVersion = $::lsbdistrelease ? {
>> '5.10' => "8.1.23-10.el5_10",
>> '6.5' => "8.4.18-1.el6_4",
>> default => "8.1.23-10.el5_10",
>> }
>> }
>> else {
>> $postgresqlVersion = $::lsbdistrelease ? {
>> '5.10' => "9.2.8-1PGDG.rhel5",
>> '6.5' => "9.2.8-1PGDG.rhel6",
>> default => "9.2.8-1PGDG.rhel6",
>> }
>> }
>>
>> if ( $postgresBase != '8' ) {
>> $removePackageList = [ "postgresql-8.1.23-10.el5_10",
>> "postgresql-server-8.1.23-10.el5_10", ]
>> package { $removePackageList:
>> ensure => "purged",
>> }
>> }
>>
>> $packageList = [ "${postgresBase}",
>> "${postgresBase}-server",
>> "${postgresBase}-contrib",
>> "${postgresBase}-devel", ]
>>
>> package { $packageList:
>> ensure => $postgresqlVersion,
>> }
>> }
>>
>>
>> So we have cloned all of the yum repos we need locally. I'm setting up
>> all of those repos in stage => 'pre' which is set up to run before any of
>> the other modules, including postgres. So yum is running and fully set up
>> before postgres tries to install those packages.
>>
>> So what is failing is, but completes on the second run is
>> Notice:
>> /Stage[main]/Postgresql::Install/Package[postgresql92-server]/ensure:
>> created
>> Notice:
>> /Stage[main]/Postgresql::Install/Package[postgresql92-contrib]/ensure:
>> created
>> Notice:
>> /Stage[main]/Postgresql::Install/Package[postgresql92-devel]/ensure: created
>>
>> So after 2 runs I finally get all the packages that I needed
>>
>> rpm -qa | grep postgres
>> postgresql92-9.2.8-1PGDG.rhel5
>> postgresql92-devel-9.2.8-1PGDG.rhel5
>> postgresql-libs-8.1.23-10.el5_10
>> postgresql92-libs-9.2.8-1PGDG.rhel5
>> postgresql92-server-9.2.8-1PGDG.rhel5
>> postgresql92-contrib-9.2.8-1PGDG.rhel5
>> postgresql-libs-8.1.23-10.el5_10
>>
>> Thoughts?
>>
>>
>
> Puppet has a limitation with respect to installing packages that it
> manages each package separately. At times that can be a performance
> issue. It may be that under certain circumstances it also presents a
> dependency issue. Very likely if you try to perform package updates from
> the command line in the same order that you observe Puppet trying to use,
> then you will see the same depsolving problems. That might provide
> additional insight into the nature of the problem.
>
> Supposing that you cannot / will not repackage postgreSQL, though, the
> nature of the problem doesn't matter much. Since evidently there are
> update orders that work, you can just instruct Puppet that it must manage
> those package in such an order. For example:
>
> $packageList = [
> "${postgresBase}-server",
> "${postgresBase}-contrib",
> "${postgresBase}-devel", ]
>
> package { ${postgresBase}:
> ensure => $postgresqlVersion,
> }
>
> ->
>
> package { $packageList:
> ensure => $postgresqlVersion,
> }
>
>
> The order of the declarations in the file doesn't necessarily matter, but
> the chaining operator (->) between the delcarations does. You can also use
> one of the relational metaparameters ('require' would probably be best)
> instead of a chain.
>
>
> John
>
>
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/b828667f-6654-442f-819c-f46b2af7cf89%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.