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.
Maybe Matching 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 ?
