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.

Reply via email to