[OpenStack-Infra] Puppet Apache Dependency Issues
Yolanda Robla Mota
yolanda.robla-mota at hp.com
Fri Aug 28 05:45:49 UTC 2015
So ... to summarize, we found 3 different issues:
1. Races on httpd_mod -> httpd_mod is a custom type, relying on ruby
code. It has a clear race, that is shown on all of our manifests using
that. If you use httpd_mod to install
new apache modules, they won't be applied until apache is restarted
manually. Reason is that the manifest installs the apache package, and
just after that does a start of the apache service,
without considering other extra configurations needed (httpd_mod in that
case).
2. httpd_mod is not valid for Centos/RHEL systems. There is a change
proposed to fix this behaviour in internal types:
https://review.openstack.org/#/c/216318/
But really all our manifests using httpd_mod should be applying this
patch as well. Also, manual workarounds are needed to install mods on
CentOS:
https://review.openstack.org/#/c/199798/8/manifests/init.pp
puppetlabs-apache does the job internally, allowing to pass related
packages to the apache::mod
construction:
https://github.com/puppetlabs/puppetlabs-apache/blob/master/manifests/mod.pp
3. Module does not offer possibilities for adding extra configuration
files, need to be done manually such as on:
https://review.openstack.org/#/c/215169/2/manifests/apache.pp
puppetlabs-apache module is offering that:
https://github.com/puppetlabs/puppetlabs-apache/blob/master/manifests/custom_config.pp
And the short term solution for each problem will be:
1 and 2 -> Create an httpd::mod defined type that is a wrapper of the
original httpd_mod, as done on https://review.openstack.org/#/c/216835/.
This wrapper should add the before (and notify?) calls ,
as well as skipping the call to httpd_mod in centos case
(https://review.openstack.org/#/c/216318/)
<https://review.openstack.org/#/c/216318/%29>. This is a good solution,
but will involve a rewrite on all our manifests, to replace httpd_mod
calls by httpd::mod as done on https://review.openstack.org/#/c/217334/.
3 -> we should take a look at
https://github.com/puppetlabs/puppetlabs-apache/blob/master/manifests/custom_config.pp
, get inspired by that, and add this bits to our httpd module.
In the long term i'm in favour for puppetlabs-apache migration, but that
can be an independent discussion.
Do we agree on this plan?
Best
Yolanda
El 28/08/15 a las 03:08, Jeremy Stanley escribió:
> On Thu, Aug 27, 2015 at 5:38 PM, Spencer Krum <krum.spencer at gmail.com> wrote:
> [...]
>> In that case I would recommend either before => Package['httpd'] or before
>> => Class['httpd::install']. (The second one requires us to create that
>> class, but this is a pattern used by many modules to expose exactly this
>> kind of hooks into the dependency graph).
> Do you maybe mean "after => Package['httpd']" there? The directories
> we want to put these files in won't exist until the package
> installation completes. We just want to make sure we notify the
> service after the files get installed.
>
> Anyway, I'm willing to give this another shot. I will admit I took
> the easy way out in my patch and just puppeted the needed
> directories after I ran up against Puppet complaining about a
> circular dep tree calculation.
--
Yolanda Robla Mota
Cloud Automation and Distribution Engineer
+34 605641639
yolanda.robla-mota at hp.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-infra/attachments/20150828/98fbeafd/attachment.html>
More information about the OpenStack-Infra
mailing list