hey Liz,

i spent some time today testing out the latest ZopeSkel template for
plone_hosting:
http://svn.plone.org/svn/collective/ZopeSkel/branches/nate-hosting/

Here are some observations, also listed in the HOSTING_TODO.txt:

1) Hardcoded absolute paths in httpd.conf (TODO)
I was getting this error when starting up supervisor
httpd: Syntax error on line 29 of
/Users/nateaune/code/zopeskel-commitbitch/testbuild/etc/httpd.conf:
ServerRoot must be a valid directory
and noticed that in many places in templates/httpd.conf.tmpl, there
are references to
/Users/eleddy/buildouts/hosting/test/parts/apache-build/
Can we make this more generic rather than hardcoding the absolute path?

Maybe we could use this recently released Apache buildout recipe
instead of using collective.recipe.template to generate the conf
files.
http://pypi.python.org/pypi/isotoma.recipe.apache/

2) Make Apache install optional  (DONE)
I added an Boolean option so that Apache won't get built if they
choose not to build it. I'm guessing that many people will choose to
use the Apache that was installed using apt-get on their server,
rather than use an Apache that was built with buildout.

3) Make Apache port # configurable (TODO)
There may be conflicts having Apache running on port 80, either due to
something else already running on that port, or an unprivileged user
running to run services on low port numbers is usually not allowed. We
should make the Apache port number configurable.

4) Vhosts in separate file (TODO)
There's a line in httpd.conf:
#Include /Users/eleddy/buildouts/hosting/test/etc/extra/httpd-vhosts.conf
If we uncommented this line, then we could make the output of
plone-vhost.conf.tmpl go into etc/extra/httpd-vhosts.conf
I think this would be a better way of handling the vhosts than putting
them directly in the httpd.conf file.
(or maybe the above-mentioned apache buildout recipe handles this more
gracefully)

5) Nginx support (TODO)
We might want to consider having nginx as an alternative to Apache.
There's a buildout recipe here:
http://pypi.python.org/pypi/gocept.nginx/
Not sure how up-to-date this recipe is though.

6) Plone 4 support (TODO)
Currently, the ZopeSkel template only works with Plone 3. We should
make it work with Plone 4 as well. I don't think CacheSetup works with
Plone 4, so we'll have replace that with plone.app.caching.
This blog post explains how to set it up:
http://bluedynamics.com/articles/jens/plone-4-and-caching  should use
released eggs rather than svn urls though.
I'm attaching a sample plone4 buildout.cfg.

7) munin support (TODO)
We might want to consider installing munin and the munin.zope plugin.
http://pypi.python.org/pypi/munin.zope/

8) superlance support (TODO)
Currently, the memmon and httpok superlance plugins are commented out
in [supervisor] section of buildout.cfg.tmpl. we should do some
testing of these and activate them since they're useful to have.

9) Documentation (TODO)
Make a README or /docs folder (preferably with sphinx to generate a
nice HTML version) that explains things such as:
how to access supervisor's web interface, how to make backups, how to
monitor haproxy status, how to use munin

10) PIL support (DONE)
Because PIL can be such a PITA to get installed properly, and Plone
won't start up if it's not installed properly, I took the approach of
building PIL from scratch including compiling against libjpeg that we
also build from scratch. This makes the buildout take longer to
execute, but at least we're sure that PIL will be working.

11) Configuration files without building (TODO)
For people who do want to use their system's package mgmt software
(apt-get / yum) to install Apache, Varnish, HAProxy, Munin,
but want to use buildout to generate the config files for them, we may
want to consider giving an option to make the config files without
building the software.
They will still need to manually symlink the config files to the
appropriate directory on their system, but we can provides docs for
how to do this on common Linux distros.

12) Varnish backend (TODO)
In the [varnish] section of buildout.cfg.tmpl there is this line:
backends = 127.0.0.1:\${ports:instance1}
This is fine when we're not using HAProxy, but in the case that
HAProxy is being used, Varnish should have the HAProxy port as the
backend instead of instance1. With Cheetah is it possible to nest an
#if $ha_proxy inside an #if $varnish?

13) Plone site creation (TODO)
When I run the buildout choosing to make the Plone site, I get this error:
Installing plonesite.
. Error: only root can use -u USER to change users
For help, use 
/Users/nateaune/code/zopeskel-commitbitch/test/parts/zope2/lib/python/zdaemon/zdrun.py
-h
. . . . . . . . . . . .
I'm not sure if this is because the effective-user is not set to be
one that is on my Mac.

I think we're getting pretty close to having a solid hosting template.
The main blocker right now is the hardcoded paths in Apache.

D'oh! now I see that you already made a TODO.txt inside the *buildout*
directory. Have to merge these two at some point.

Nate

--

Nate Aune - na...@jazkarta.com
http://www.jazkarta.com
http://card.ly/natea
http://tungle.me/natea
+1 (617) 517-4953

Attachment: buildout-plone4.cfg
Description: Binary data

_______________________________________________
ZopeSkel mailing list
ZopeSkel@lists.plone.org
http://lists.plone.org/mailman/listinfo/zopeskel

Reply via email to