Sam Tresler
2013-Sep-18 16:37 UTC
[Puppet Users] Some php5 extensions not installed until a second run
Hi, I''ve inherited a puppet setup for automating php installation and extension management. We''re on Debian and we''ve encountered a strange issue that I''ve traced down back to puppet I think. I''ve stripped back the configuration and made the problem reproducible, logs and config pasted below. 1. php5-common, php5-memcache, and php5-mysql are all installed. 2. php5-common and php5-mysql receive an update, say from 5.3.3-7+squeeze14 to 5.3.3-7+squeeze17 3. Puppet runs and php5-common upgrade conflicts. Apt''s first solution removes php5-mysql and php5-memcache. 4. Puppet continues run and re-installs/upgrades php5-mysql. It skips php5-memcache. 5. On a subsequent run php5-memcache is installed again as expected. This appears to only happen to packages that don''t share the php5 version naming schema, but that may be just a clue, not a cause. e.g. php5-memcache is 3.0.4-4+squeeze1. I have: package { "php5-common": ensure => latest } php_module { "mysql": ensure => $php5_mysql ? { ''1'' => ''enable'', ''0'' => ''absent'', }, } php_module { "memcache": ensure => $php5_memcache ? { ''1'' => ''enable'', ''0'' => ''absent'', }, } define php_module ( $ensure = ''enable'' ) { if $ensure == "enable" { package { "php5-${name}": ensure => latest, require => [ Package[ ''php5-common''], Package[ ''php5-cgi'' ], Package[ ''php5'' ], Package[ ''libapache2-mod-php5'' ] ], } } else { package { "php5-${name}": ensure => absent } } } In the debug of a run, I see (relevant lines only): 231 ^[[0;36mDebug: /Stage[main]/Php/Php::Php_module[memcache]/Package[php5-memcache]/require: requires Package[php5-common]^[[0m 232 ^[[0;36mDebug: /Stage[main]/Php/Php::Php_module[memcache]/Package[php5-memcache]/require: requires Package[php5-cgi]^[[0m 233 ^[[0;36mDebug: /Stage[main]/Php/Php::Php_module[memcache]/Package[php5-memcache]/require: requires Package[php5]^[[0m 234 ^[[0;36mDebug: /Stage[main]/Php/Php::Php_module[memcache]/Package[php5-memcache]/require: requires Package[libapache2-mod-php5]^[[ 0m 327 ^[[0;36mDebug: /Stage[main]/Php/Php::Php_module[mysql]/Package[php5-mysql]/require: requires Package[php5-common]^[[0m 328 ^[[0;36mDebug: /Stage[main]/Php/Php::Php_module[mysql]/Package[php5-mysql]/require: requires Package[php5-cgi]^[[0m 329 ^[[0;36mDebug: /Stage[main]/Php/Php::Php_module[mysql]/Package[php5-mysql]/require: requires Package[php5]^[[0m 330 ^[[0;36mDebug: /Stage[main]/Php/Php::Php_module[mysql]/Package[php5-mysql]/require: requires Package[libapache2-mod-php5]^[[0m 487 ^[[0;36mDebug: Executing ''/usr/bin/apt-cache policy php5-common''^[[0m 488 ^[[0;36mDebug: /Stage[main]/Php/Package[php5-common]/ensure: php5-common "5.3.3-7+squeeze14" is installed, latest is "5.3.3-7+sque eze17"^[[0m 489 ^[[0;36mDebug: Executing ''/usr/bin/aptitude -y -o DPkg::Options::=--force-confold install php5-common''^[[0m 490 ^[[mNotice: /Stage[main]/Php/Package[php5-common]/ensure: ensure changed ''5.3.3-7+squeeze14'' to ''5.3.3-7+squeeze17''^[[0m 491 ^[[0;36mDebug: /Stage[main]/Php/Package[php5-common]: The container Class[Php] will propagate my refresh event^[[0m 547 ^[[0;36mDebug: Executing ''/usr/bin/apt-cache policy php5-memcache''^[[0m 615 ^[[0;36mDebug: Executing ''/usr/bin/apt-cache policy php5-mysql''^[[0m 616 ^[[0;36mDebug: /Stage[main]/Php/Php::Php_module[mysql]/Package[php5-mysql]/ensure: php5-mysql "5.3.3-7+squeeze14" is installed, la test is "5.3.3-7+squeeze17"^[[0m 617 ^[[0;36mDebug: Executing ''/usr/bin/aptitude -y -o DPkg::Options::=--force-confold install php5-mysql''^[[0m 618 ^[[mNotice: /Stage[main]/Php/Php::Php_module[mysql]/Package[php5-mysql]/ensure: ensure changed ''5.3.3-7+squeeze14'' to ''5.3.3-7+squ eeze17''^[[0m 619 ^[[0;36mDebug: /Stage[main]/Php/Php::Php_module[mysql]/Package[php5-mysql]: The container Php::Php_module[mysql] will propagate my refresh event^[[0m 620 ^[[0;36mDebug: Php::Php_module[mysql]: The container Class[Php] will propagate my refresh event^[[0m So, why, on line 547, when memcache is definitely not installed does it not install it? I''ve been on this for 3 days and am officially stumped. Any help would be appreciated. -- 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+unsubscribe@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
Apparently Analagous Threads
- Puppet requires second run to execute some catalog items.
- The way Puppet installs things fail
- Puppet fails to install package, whilst it's okay to do manually
- wyrie/puppet-nagiosql -- anyone have experience with this module?
- Duplicate definition on the same line and in the same file ?