Well, after a lot of trial and error, I managed to get the Varnish and
Apache services working pretty well.
There are still a couple issues that still need to be resolved, but
for the most part it's working.

1) Fix hardcoded absolute paths in httpd.conf (DONE)
2) Make Apache install optional  (DONE)
3) Make Apache port # configurable (DONE)
6) Plone 4 support (DONE)
Right now it's a bit clunky because you have to type in the major
version (3 or 4). It should really determine this automatically from
the version they type in on the form. The Plone 4 buildout includes
the plone.app.caching deps, but i don't really like it because it has
to use mr.developer to check out the eggs from the collective. it
should really be using released eggs.

Now I'm trying to wire up the collective.hostout stuff so you can
easily deploy to the cloud. It's mostly working but because of the
caching eggs as source, it's complaining about missing a subversion
client on the server, so I had to patch the hostout code to install a
subversion client on the server.


On Sun, Jun 13, 2010 at 1:36 AM, Nate Aune <na...@jazkarta.com> wrote:
> 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 =\${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


Nate Aune - na...@jazkarta.com
+1 (617) 517-4953
ZopeSkel mailing list

Reply via email to