### ### NOTE: this document is woefully out of date, as we now distribute the PMP ### installation parts as an RPM, off of www.citi.umich.edu/projects/ntap/ ### # notes on how to roll your own PMP. # contact: richterd@citi.umich.edu ################################################################################### 0. hello. these are instructions on how to make a CITI PMP (performance measurement platform). right off, there are a lot of rough edges: files you have to move/tailor, directories that need to be just-so, etc. the most important thing is that you don't let yourself get mired in any setup stuff -- just bother someone at CITI (me, david; richterd@citi.umich.edu, 734-678-0140) right away, really. the snarly setup stuff will all disappear as we move toward our next deliverable, which is essentially creating an RPM-esque installation process. you'll also notice TWO globus installs (one for the gatekeeper and its supporting cast and one to compile GARA against). you may already have some of the prereqs installed (e.g., openssl) on your machine, which is cool as long as things are compatible. now, to acquire the various software pieces used at CITI (so that you don't have to track down all of the parts yourself), talk to me. a list of things that you'll need is in the `SETUP' file in the current directory. what follows are excerpts from my (very lengthy) install logs. if you want more detail, ask. 1. starting out. . had to upgrade glibc, binutils, etc, on our RH 7.3 machines. ack. . next, installed zlib 1.1.4 from src. . got openssl 0.9.7c (sept 30, 2003) . removed rpm-installed 0.9.6l openssl and openssl-tools . ./config shared --prefix=/usr/local . build products in /usr/local/openssl . installed stuff in /usr/local/{bin,lib,include/openssl,ssl} . add /usr/local/lib to /etc/ld.so.conf && ldconfig . [link] . also updated openssh to 3.7.1p2, since the default installed version on our systems (redhat 7.3) was old. . next, i installed the Kerberos and OpenAFS rpms. 2. . got kx509 from andy's step 10 off of venice:/usr/local/src/kx509 . pushd /usr/local/src/kx509; . src/configure . make . had to modify line 151 to move the `int i' declaration above the KX509 macro . build products are `kx509' and `kxlist'. put them where one can find them. . NOTE: kx509 is used by a client who wants to get short-term creds based on their kerberos identity. a brief description of how this fits into our PMPs is described in `STRUCTURE'. 3. . need globus-2.2.4 so we can build the Globus gatekeeper, e.g., which runs as a daemon on each PMP. . need GPT (2.2.5) to build it. . paths: . export GPT_LOCATION=/usr/local/src/gpt-2.2.5 . mkdir /usr/local/src/globus-2.2.4 . ln -s /usr/local/src/globus-2.2.4 /usr/local/globus . export GLOBUS_LOCATION=/usr/local/globus . cd $GPT_LOCATION . ./build_gpt . need Globus resource management bundles [off of http://www.globus.org/gt2.4/download.html] . resource management {client, server} . follows instructions to build, basically: $GPT_LOCATION/sbin/gpt-build globus-resource-management-client-2.2.4-src_bundle.tar.gz gcc32dbgpthr $GPT_LOCATION/sbin/gpt-build globus-resource-management-server-2.2.4-src_bundle.tar.gz gcc32dbg $GPT_LOCATION/sbin/gpt-postinstall sudo /usr/local/globus/setup/globus/setup-gsi . continue, then select Quit. . at this point, one normally sets up the host certificate by generating a cert request, sending it off to the Globus folks, etc. at CITI, we're using kx509 certs and our own KDC, so we generated certs for our PMPs and had the KDC sign them. this is the first step that really requires CITI-stuff to get it done -- contact us. . this is so more RSL information gets passed down through the gatekeeper: cp $GLOBUS_LOCATION/BUILD/globus_gatekeeper-2.1/globus_gatekeeper.c cd $GLOBUS_LOCATION/BUILD/globus_gatekeeper-2.1/ vi Makefile [make sure DEFS = contains -DCLIENT_INFO] make make install . note that pthreads IS NOT a doable option for server. gotta use "gcc32dbg" as the flavor. 4. . need globus-2.4 so we can build the GARA stuff. yes, this is a second (and kinda wasteful) install. it works for now. . need GPT (3.0.1) to build it. [http://www-unix.globus.org/ftppub/gt2/2.4/2.4-latest/gpt/gpt-3.0.1-src.tar.gz] . paths: . export GPT_LOCATION=/usr/local/src/gpt-3.0.1 . mkdir /usr/local/src/globus-2.4 . export GLOBUS_LOCATION=/usr/local/src/globus-2.4 . cd $GPT_LOCATION . ./build_gpt . need Globus resource management bundles [off of http://www.globus.org/gt2.4/download.html] . resource management {client, server} . follows instructions to build, basically: $GPT_LOCATION/sbin/gpt-build globus-resource-management-client-2.4.3-src_bundle.tar.gz gcc32dbgpthr $GPT_LOCATION/sbin/gpt-build globus-resource-management-server-2.4.3-src_bundle.tar.gz gcc32dbg $GPT_LOCATION/sbin/gpt-postinstall sudo /usr/local/globus/setup/globus/setup-gsi . note that pthreads IS NOT a doable option for server. gotta use "gcc32dbg" as the flavor. . go download aglo's GARA gumbo. [/afs/citi.umich.edu/projects/ntap/gara-work/gara-1.2.2.tar.0628.1137.gz] NOTE: this is important and potentially confusing. gara needs to be built against Globus-2.4 libraries, but above we built 2 Globus distributions -- 2.2.4 and 2.4. gara makes some library calls that aren't in 2.2.4. however, the Globus gatekeeper we run is 2.2.4. make sure that the --with-globus-prefix path given to gara's configure script is the globus-2.4 install path. . cd /usr/local/gara . export CFLAGS="-g -DGENERIC_RSL -DCLIENT_INFO -DCHECK_AUTHORIZATION -DDEBUG -DDEBUG_MOD_PTS -DPERMIS -DDEBUG_PERMIS ${CFLAGS}" . ./configure --prefix=/usr/local/gara --with-globus-prefix=/usr/local/src/globus-2.4 \ --with-globus-flavor=gcc32dbgpthr --enable-lram_diffserv --enable-rm_diffserv \ --enable-gara_diffserv --enable-rm_network --enable-slot_manager . make . note, the first `make' might fail nearly immediately. try it again. . mkdir /tmp/logs (yes, this is getting fixed eventually). . chmod ugo+w /tmp/logs . cd /usr/local/gara/resource_manager/programs . do one of: . ./mod_pts.compile.noafs (reads from mod_pts.acl) . ./mod_pts.compile.afs (uses real AFS PTS groups) . make -f mod_exec.compile . note that it's okay to leave mod_pts and execbin inside ..resource_manager/programs/. their paths are hard-coded into GARA.