Forum OpenACS Development: OACS installation sequence change

Collapse
Posted by Torben Brosten on

OpenACS Infrastructure as a "Layered Cake"

 

 

 

 

 

 

 

 

OACS boundary

 

Responsible parties

 

Project parts

 

 

External to OACS

 

leader(s)

 

Idea

 

 

business gurus

 

Money (Capital)

 

Operations

 

Content | Users | Client Services

 

 

directly related to or part of the OACS system

 

OACS experts with opensource resource pool

 

OACS System

Software

Service-specific software

 

openACS toolkit (tcl and data)

 

code interpreter (Tcl)

 

WebServer (Aolserver)

 

RDBMS (PostgreSql or Oracle)

 

 

mixture unix/OACS administrators

 

Operating System (UNIX)

 

 

UNIX / system administrators

 

TCP/IP networking

 

 

External to OACS

 

admin / comm

 

Supporting Hardware

 

 

 

 

Electricity

 

This table inspired from: philg@mit.edu, teadams@arsdigita.com table at: http:// www.arsdigita.com/books/building-community/infrastructure

This oversimplification of the infrastructure suggests that OACS should be installed in the following order:

Order (A)

  1. Operating system install and configure with preparations for OACS
  2. RDBMS(s) install and configure
  3. Webserver install and configure
  4. OpenACS install and configure
  5. specific OACS modules (custom etc.)

but, apparently, the actual installation order sequence is (taken from draft OACS4.x install docs):

Order (B)

  1. Operating system install and configure
  2. OACS install
  3. Webserver install and configure
  4. RDBMS(s) install and configure
  5. OACS configure
  6. any specific OACS modules (custom etc.)

Note OACS install and config are separated, and the RDBMS(s) are installed after the webserver. Yet, the webserver needs configuration parameters based on the RDBMS(s) used.

Could the installation process and docs be simplified by changing the order to (A) above?

This question may seem trivial now, but takes on increasing significance as the system moves towards independence from specific software, and/or variations in software call for their own specs in addition to standards set by OACS. Why not address it at this point?

Collapse
Posted by Torben Brosten on
For starters, I apologize to everyone getting the text-email version of the above message sent to them... I need to remember in the conversion from html to text that EOL's are honored!

This question is to OACS developers and simplified here:

Are there any dependencies in the installation of the RDBMs that require AOLserver to be installed before RDBMSs?

I don't see any such dependencies, but I think this should be confirmed before making a change in the installation sequence.

I believe changing the order will simplify the documentation, installation experience, and could lead to other benefits down the road (such as in install scripts).

Collapse
Posted by Torben Brosten on
<p>Torben, Order (B) misrepresents the current OACS4.x docs which actually use the following sequence:</p>
<p>
Install an Operating System  <br>
Install AOLserver 3.3+ad13 and modules  <br>
Install Oracle 8.1.6  <br>
Install Postgres 7.1.3  <br>
Install a Database Driver  <br>
Install OpenACS 4  <br>
<br>
This translates to an installation Order (B) of: <br>
<br>
Order (B)  <br>
<br>
          1.Operating system install and configure <br>
          2.Webserver install and configure  <br>
          3.RDBMS(s) install and configure  <br>
          4.OACS install and configure <br>
          5.any specific OACS modules (custom etc.)  <br>
<p>
The only difference between sequence (A) and (B) is the reversal of Webserver and RDBMSs.  These two items can be switched in sequence so long as PostgreSQL and Oracle installer scripts do not require AOLserver to be installed first.  The scripts are generic install scripts that come with each individual RDBMS package.
</p><p>
One can safely presume that there are no dependencies on installing AOLserver before the RDBMSs.
</p><p>
Install OACS4.x using Order (A), and see if it works. Keep us posted.</p>
Collapse
Posted by Don Baccus on
Who posted as Torben the last time?

Since we plan to lash together a tarball of proper drivers and AOLserver 3.3+ad14 for convenience, the docs should skip the "install a database driver" and use Order B above (after we are positive such a tarball's going to exist).

Collapse
Posted by Marc Spitzer on
will that tarball contain the freebsd patches?
Collapse
Posted by Gilbert Wong on
Don, I didn't realize that people can post as another user.  Is this a feature ;)
Collapse
Posted by Don Baccus on
Marc - it should.

Gilbert - presumably it was one of us systemwide admin types.  It wasn't me, though!

Collapse
Posted by Torben Brosten on
I confess. I made the post. "Necessity is the mother of invention." If I'm planning on reaching developer level capacity, I need to try and answer my own questions --even if they're wrong. Besides I talk to myself all the time anyway. 8D

Don writes 'Since we plan to lash together a tarball of proper drivers and AOLserver 3.3+ad14 for convenience, the docs should skip the "install a database driver" and use Order B above (after we are positive such a tarball's going to exist). '

I see. So by simplifying to 1 tarball, we increase the complexity of the docs for the same users.. hmm..

What if there is a tarball available for each layer (as needed)? Docs would change less, the tarballs would be less complicated to install (and less redundant), and smaller for individual downloads... For example, what if the drivers need updated but not AOLserver, then we would have 2 sets of tarballs... Any other barriers to change?

Collapse
Posted by Torben Brosten on
Sorry, Don, I misread your statement. You stated RDBM drivers not RDBMSs. My tired eyes are playing tricks on me!

So in effect the Webserver and the webserver's RDBMS drivers will be one tarball. That's really good!

For technical reasons, do the databases have any dependencies (ie  require) the AOLserver with RDBMSs installed before them?  If the sequence can go either way, the docs can be simplified by installing databases before the aolserver.

Any technical barriers to installing the databases before the aolserver?

Collapse
Posted by Gilbert Wong on
You can install the web server and database in any order.  However, if you plan on using the database driver with AOLServer, you need to have the database installed and compiled the proper DB driver.  You can run a webserver without the DB hooks.  you can even download the OpenACS code after you install the database, but you won't be able to use the openacs-4.tcl startup script until you have the OpenACS code installed in the proper place.  I hope that helps.
Collapse
Posted by Stephen . on
What's the plans for installation documentation? Can't we just create
installation packages? What documentation is necessary apart from
"up2date oacs" (or equivalent)?

Ideally the knowledge needed to create the various distribution
packages can be locked up in some build scripts, and OACS
maintainers and users alike will be saved  alot of trouble.

Collapse
Posted by Don Baccus on
Installation documentation's being written right now.

We've had RPMs available in the past, and I'm hoping Jonathan will continue making them.  Debian packages, too.

Installation's more complicated than you might think.  The user might have Oracle or Postgres installed already, for instance.  Oracle doesn't provide packages of any variety.  PG users have to have source available to add the PG 'contrib' intarray indexing stuff used by sitewide search.

Could most of the work be done by scripts?  Probably, but not by simple scripts.  If someone wants to volunteer to take a stab at writing installation scripts they should feel free to step forward and be counted.  Probably not until after the AOLserver/driver source tarball's made...

Collapse
Posted by Torben Brosten on
Gilbert, thanks for the dependency hierarchy. It helps clarify the sequence for me. I'll meditate on the implications on the docs in a few hours...

Don, you are right! Installation scripts are complex. I get dizzy just looking at installation script output.

Stephen, organizing scripts in order of installation dependency will help modularize any scripting process, and therefore reduce overall complexity --when we get to a stable release. As Don points out, this will make creating RPM versions easier (hopefully).  The modularization might even help scripts (and their programmers) adapt to handling various stages of installation status --as what happens when people like me install PosgresQL and TCL straight off the linux distribution --not realizing that it's easier to leave them off, and follow the OACS installation docs for relevant software. And so, as you point out, Stephen, "ideally the knowledge.. [will] be locked up in some build scripts, and OACS [admins} and users alike will be save a lot of trouble."

In any case, organizing installation (and documentation) in order of dependency will help with the installation experience --which is my focus for the moment.

Thanks everyone for your input.

cheers,