|    The Object Action Manager framework has given us excellent system management tools, such as SAM, in the past. Recently, the number of tools that have come under the ObAM umbrella has increased; we have seen Partition Manager and Service Control Manager (up to version 2.5) to name but two.    The implementation of the Apache Web server for ObAM is located under the  /usr/obam/server  directory. This is the  ServerRoot  ; the top-level directory under which the server's configuration, error, and logfiles are kept. Whenever I reference a directory name, I reference it as a subdirectory under  ServerRoot  . The daemon process for the ObAM-Apache Web server is the process  httpd  . The configuration file for the daemon is  conf/httpd.conf  . The configuration file works straight out of the box for just about any installation. The ObAM-Apache Web server is simple and straightforward; it doesn't have many Dynamic Shared Modules and doesn't come with encryption capabilities (SSL = Secure Sockets Layer), so we don't need to worry about digital certificates and the like. The main issue we experience when trying to start up the ObAM-Apache Web server is that it starts up only if we have DNS configured. Part of the configuration file allows access to the Web server only if your node belongs to a DNS domain. It achieves this by using an  Allow  directive that limits who has access to this server:         root@hpeos002[conf] #  pwd  /usr/obam/server/conf root@hpeos002[conf] #  more httpd.conf  # # Controls who can get stuff from this server. #     Order allow,deny # Change below to reflect domains that may access this server. # This greatly increases security if it is used.  System names may be # inserted instead of domain names in order to restrict access to a set # of specifice systems: Allow from <system1>{ <system N>}*.  Remember to # restart (#/usr/obam/server/bin/apachectl restart) the server after changing # anything in this file.   Allow from insert_domain_here   AuthName "HPUX Administration Tools"     AuthType Basic </Directory> # # DirectoryIndex: Name of the file or files to use as a pre-written HTML # directory index.  Separate multiple entries with spaces. ... root@hpeos002[conf] #     The first time we run the startup script  /sbin/init.d/webadmin start  , it fills in the domain name with the domain name it finds inside  /etc/resolv.conf  . It fails if we do not explicitly configure the  domain  keyword, even though it is not technically required if you have a  searchlist  . First, we set up the startup configuration file to ensure that the  httpd  processes start at boot time:         root@hpeos002[conf] #  vi /etc/rc.config.d/webadmin  #!/sbin/sh # $Header: /kahlua_src/web/server/etc/webadmin 72.1 1999/09/16 03:51:04 lancer E xp $ # WebAdmin application server configuration. # # WEBADMIN:             Set to 1 to start the WebAdmin application server. #  WEBADMIN=1  root@hpeos002[conf] #      And then we can attempt to start the daemons:         root@hpeos002[conf] #  /sbin/init.d/webadmin start  ERROR: No domain is defined in /etc/resolv.conf root@hpeos002[conf] #      As you can see, this seems strange , even though DNS is configured and working.         root@hpeos002[conf] #  nslookup hpeos002  Name Server:  hpeos004.maabof.com Address:  192.168.0.35 Trying DNS Name:    hpeos002.maabof.com Address:  192.168.0.34 root@hpeos002[conf] #  cat /etc/resolv.conf  search maabof.com nameserver 192.168.0.35 # master nameserver 192.168.0.34 # slave root@hpeos002[conf] #      It's a minor thing, but one worth knowing. Once we define our  domain  in  /etc/resolv.conf  , we have no trouble setting up the daemons:         root@hpeos002[conf] #  vi /etc/resolv.conf   domain maabof.com  search maabof.com nameserver 192.168.0.35 # master nameserver 192.168.0.34 # slave root@hpeos002[conf] #  /sbin/init.d/webadmin start  /usr/obam/server/bin/apachectl start: httpd started      We can now see what the  webadmin  startup script has inserted into my  httpd.conf  file:         root@hpeos002[conf] #  more httpd.conf  ... # restart (#/usr/obam/server/bin/apachectl restart) the server after changing # anything in this file.   Allow from maabof.com   AuthName "HPUX Administration Tools"     AuthType Basic </Directory> ... root@hpeos002[conf] #      This limits access to this Web server to machines inside my domain. If you don't have DNS configured but still want to start up the ObAM-Apache Web server, then a workaround is to edit the  httpd.conf  file directly (keep a backup copy beforehand). The default text the  /sbin/init.d/webadmin  script is looking for is  Allow from insert_domain_here  . If you change that to simply say  Allow from all  , the startup script will not even check for the existence of  /etc/resolv.conf  .         root@hpeos002[conf] #  vi httpd.conf  ... # Change below to reflect domains that may access this server. # This greatly increases security if it is used. System names may be # inserted instead of domain names in order to restrict access to a set # of specifice systems: Allow from <system1>{ <system N>}*. Remember to # restart (#/usr/obam/server/bin/apachectl restart) the server after changing # anything in this file.   Allow from all   AuthName "HPUX Administration Tools"     AuthType Basic ... root@hpeos002[conf] #     This does have a security implication in that  any  machine on your network can browse to this Web server. You could put in a list of hostnames, as you can see in the comments in the file. Some people would say that because you are not participating in a DNS network, it is highly unlikely you will be connected to the external Internet. I can see their point, but you need to appreciate and accept that before enabling this.    If you are going to make any changes to the  httpd.conf  file, you should check the syntax of the  httpd.conf  file (using the  /usr/obam/server/bin/apachectl  command) before restarting the  httpd  daemons. Anything other than a  Syntax OK  from a  configtest  normally stops the daemons from starting up.         root@hpeos002[conf] #  ../bin/apachectl configtest  Syntax OK root@hpeos002[conf] #  ../bin/apachectl restart  ../bin/apachectl restart: httpd restarted root@hpeos002[conf] #      By default, the ObAM-Apache Web server starts up four  httpd  daemons:         root@hpeos002[conf] #  ps -ef  grep httpd  root  4428  4100  3 13:44:03 pts/0     0:00 grep httpd webadmin  4425  4421  0 13:43:11 ?         0:00 /usr/obam/server/bin/httpd -f /usr/obam   /server/conf/httpd.conf     root  4421     1  0 13:43:11 ?         0:00 /usr/obam/server/bin/httpd -f /usr/obam   /server/conf/httpd.conf webadmin  4424  4421  0 13:43:11 ?         0:00 /usr/obam/server/bin/httpd -f /usr/obam   /server/conf/httpd.conf webadmin  4423  4421  0 13:43:11 ?         0:00 /usr/obam/server/bin/httpd -f /usr/obam   /server/conf/httpd.conf webadmin  4422  4421  0 13:43:11 ?         0:00 /usr/obam/server/bin/httpd -f /usr/obam   /server/conf/httpd.conf root@hpeos002[conf] #      The  StartServers  directive in the  httpd.conf  file controls this:         root@hpeos002[conf] #  vi httpd.conf  ... # # Server-pool size regulation. Rather than making you guess how many # server processes you need, Apache dynamically adapts to the load it # sees --- that is, it tries to maintain enough server processes to # handle the current load, plus a few spare servers to handle transient # load spikes (e.g., multiple simultaneous requests from a single # Netscape browser). # # It does this by periodically checking how many servers are waiting # for a request. If there are fewer than MinSpareServers, it creates # a new spare. If there are more than MaxSpareServers, some of the # spares die off. The default values are probably OK for most sites. # MinSpareServers 1 MaxSpareServers 4 # # Number of servers to start initially --- should be a reasonable ballpark # figure. #   StartServers 4   # ... root@hpeos002[conf] #      Now that the daemon processes are running, we should be able to browse to the default Web page. Before we do that, we need to know the port number that the  httpd  daemons are listening on. Unlike the normal Apache configuration (which listens on port 80), the ObAM-Apache configuration listens on a non-standard port number = 1188:         root@hpeos002[conf] #  vi httpd.conf  ... # # Port: The port to which the standalone server listens. For # ports < 1023, you will need httpd to be run as root initially. #   Port  1188   ... root@hpeos002[conf] #      The last piece of information we need to know is whether there is a default Web page to view once we get there. The location of documents sourced by the daemons is controlled via the  DocumentRoot  directive:         root@hpeos002[conf] #  grep DocumentRoot httpd.conf  # DocumentRoot: The directory out of which you will serve your   DocumentRoot "/opt/webadmin"   # This should be changed to whatever you set DocumentRoot to. #    DocumentRoot /www/docs/host.some_domain.com root@hpeos002[conf] # root@hpeos002[conf] #  ll /opt/webadmin  total 4 dr-xr-xr-x   3 bin        bin           1024 Aug 21  2002 jpi drwxr-xr-x   3 root       sys             96 Aug 21  2002 mx dr-xr-xr-x   3 bin        bin             96 Aug 21  2002 obam dr-xr-xr-x   4 bin        bin           1024 Aug 21  2002 parmgr root@hpeos002[conf] #      The default page that the Web server displays is controlled by the  DirectoryIndex  directive. Normally, this defaults to a file called  index.html  .         root@hpeos002[conf] grep DirectoryIndex httpd.conf # DirectoryIndex: Name of the file or files to use as a pre-written HTML   DirectoryIndex index.html   root@hpeos002[conf]      As you can see, there is much in the way of an  index.html  file in our  DocumentRoot  directory, so if we were to browse to http://www.maabof.com:1188/, we probably wouldn't see very much except some directory names (see Figure 22-1).     Figure 22-1. No default web page for ObAM-Apache Web server.        As you can see, this isn't particularly interesting. The applications that use the ObAM-Apache Web server put their own Web pages under  DocumentRoot  . One of those applications is Partition Manager:         root@hpeos002[conf] #  ll /opt/webadmin/parmgr  total 50 -r--r--r--   1 bin        bin             69 Dec 17  2001 .htaccess dr-xr-xr-x   2 bin        bin           2048 Aug 21  2002 graphics dr-xr-xr-x   3 bin        bin             96 Aug 21  2002 help -r--r--r--   1 bin        bin           1151 Dec 17  2001 index.html -r-sr-xr-x   1 root       bin          16384 Dec 17  2001 startParMgr.cgi -r--r--r--   1 bin        bin           3774 Dec 17  2001 web_launch.html root@hpeos002[conf] #      As we can see in Figure 22-2, there is an  index.html  file in this directory, so we should see a Web page if we browse there:     Figure 22-2. Partition Manager's default Web page.        Likewise, for any other applications that will make use of this simple Web server, e.g., Service Control Manager (up to version 2.5), we can navigate to  http://<server>:1188/mx/  . These applications require a plug-in to be applied to your local Web browser. This can be obtained via the main Web page itself. For Partition Manager (see above), the icon to press would be Configure Browser. From that page, there are instructions on how to download the plug-in and configure it for your browser (see Figure 22-3):     Figure 22-3. ObAM-Apache browser plug-in.        Once configured, you can continue to use the browser to manage that particular application.    |