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 puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/eb0433c5-4354-4116-afe7-d317cd12ee2e%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.