-winston
On Feb 4, 2005, at 12:46 AM, CLIFFORD ILKAY wrote:
Hi,_________________________________________
All this talk of configuration and deployment management reminded me of the
problems I encountered while creating Webware RPMs. I have pretty good
Mandrake RPMs for Webware and its docs but the mod_webkit RPM for Apache2 I
created leaves something to be desired. Well packaged RPMs for Apache modules
will not only install the DSO files in the right place but should modify
httpd.conf and restart Apache to activate the configuration changes. I have a
few problems with doing that for mod_webkit.
I had to use the Mandrake RPM macros for doing make install as the Makefile
included with Webware was never intended to be used to by a non root user.
When I used the make install RPM macro to work around this, rpmbuild then
complained that marshal.so was created but not packaged. When I added it to
the files list that RPM is supposed to install, the RPM built properly but
now I see mod_webkit.so and marshal.so in
$buildroot/usr/lib/apache2-extramodules. If I just do make and make install
manually, I do not see marshal.so being installed anywhere. What is this
marshal.so? Can I just ignore it in my RPM and not install it at all?
There are RPM macros for modifying httpd.conf and restarting Apache to
activate the changes. However, if one is using MakeAppWorkDir to create
working directories and running multiple instances of Webkit listening on
different ports, having the RPM modify the conf file would not make any sense
as it could only do it for one instance. For each instance of Webkit, there
would have to be a corresponding entry in httpd.conf. This is where this
MakeAppWorkDir model of deploying applications makes things more difficult,
particularly in a shared hosting environment, as it is does not seem like it
would be easy to automate using RPM. Perhaps MakeAppWorkDir should be
modified to make the necessary changes to httpd.conf and restart Apache.
If we install from RPM, normally that would install the init script. If we are
running multiple instances of WebKit, how would that work? We would have to
have one init script per instance. This ties in with MakeAppWorkDir. Perhaps
the best approach would be to move all the functionality of MakeAppWorkDir to
an RPM per Webware application. So, we would have RPMs like
python-webware-common, python-webware-doc, mod_webkit2, and myApp1, myApp2,
etc. The myAppX RPMs would have to be created per web application. Once a
skeleton spec file is created, it is not very difficult to flesh it out and
build the RPM. This would make deploying one's web apps as easy as:
1. modify the skeleton spec file for the web app,
2. build the RPM for the web app using the spec file from Step 1,
3. run genhdlist to regenerate the RPM list for the urpmi repository,
4. add the urpmi repository created in step 3 to your urpmi media source, if
you had not done so previously,
5. urpmi myApp1 myApp2...
I have come to appreciate the flexibility of RPM after having to migrate
Webware applications from one server to another without using RPM. A Webware
application usually relies on other things, like a SQL back end, an ORB such
as SQLObject, the egenix-mx utilities, db drivers like psycopg, etc. so it is
not a trivial undertaking to install and configure all this stuff. Creating
RPMs has given me the ability to go from bare metal to a working web
application in under an hour and have it work the first time, every time.
I have not looked at WSGIKit to see how easy it would be to package as an RPM.
I suggest to those who are developing WSGIKit, please pay attention to how
WSGIKit is packaged as a tarball. If there is clean separation between the
server components, docs, and Apache modules, it makes it much easier to
package as an RPM. If we want the community to grow, having Webware/WSGIKit
included with distros, or at the various least, as a contrib would help.
Comments? Suggestions? Answers to my questions above?
--
Regards,
Clifford Ilkay
Dinamis Corporation
3266 Yonge Street, Suite 1419
Toronto, ON
Canada M4N 3P6
+1 416-410-3326
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
Webware-discuss mailing list
Webware-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/webware-discuss
winston wolff - (646) 827-2242 - http://www.stratolab.com - learning by creating