Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Installation Walkthrough and Notes on the GlideinWMS System | ||||||||
Changed: | ||||||||
< < | DISCLAIMER: Any information you read on this page is a lie. Actually, it isn't but you should treat it as such. These are my personal notes so YMMV! I do not want to be held responsible for your destruction of the world. Having said all of that, enjoy! :)
STEP 1: Obtain, install, and update a Linux distribution | |||||||
> > | DISCLAIMER: These are my personal notes, so don't trust them. It's always best to rely on your own notes. You are welcome to use my notes to make your own notes. Also, don't hold me accountable if something goes wrong or you have any problems whatsoever. You've been warned and now are continuing to read at your own risk. Now, here's the good stuff!Installation OutlineThis is an extremely complex installation process for the first timer. Here is a brief outline of all of the steps.
STEP 1: Obtain, install, and update a Linux distribution (on ALL servers) | |||||||
I used Scientific Linux 5.3 from: http://www.scientificlinux.org/ | ||||||||
Changed: | ||||||||
< < | You can also use Redhat Enterprise 5.3 or CentOS 5.3. My installation was on two VMWare Workstation 6.5.3 virtual machines named SL#1 and SL#2. I selected that they would have 512 MiB? of RAM and up to 16 GiB? hard disks. To use GlideinWMS, there is no requirement to use a 64-bit system. You can use a 32-bit and all of the software will be compatible. The reverse is not necessarily true, but I have not confirmed this yet. It's also a good idea to update the system with the latest recommended patches and security updates before continuing any futher. I also reconfigured /etc/ssh/sshd_config to use a different port and adjusted the VM to acquire an IP address from my router in order to make my virtual machines accessible remotely through SSH. I had to change /etc/hosts to list the names of my systems as FQDNs, aliases, and their local IP addresses. Also, I had to edit /etc/resolv.conf to setup DNS after switching to a static IP in the GUI since it wasn't getting it from DHCP anymore.
STEP 2: Install GlideinWMS | |||||||
> > | You can also use Redhat Enterprise 5.3 or CentOS 5.3. My installation was on two VMWare Workstation 6.5.3 virtual machines named SL1 and SL2. I selected that they would have 512 MiB? of RAM and up to 16 GiB? hard disks. To use GlideinWMS, there is no requirement to use a 64-bit system. You can use a 32-bit and all of the software will be compatible. The reverse is not necessarily true, but I have not confirmed this yet. It's also a good idea to update the system with the latest recommended patches and security updates before continuing any futher. I also reconfigured /etc/ssh/sshd_config to use a different port and adjusted the VM to acquire an IP address from my router in order to make my virtual machines accessible remotely through SSH. I had to change /etc/hosts to list the names of my systems as FQDNs, aliases, and their local IP addresses. Also, I had to edit /etc/resolv.conf to setup DNS after switching to a static IP in the GUI since it wasn't getting it from DHCP anymore.
STEP 2: Install VDT, GlideinWMS Collector and Factory (on server #1) | |||||||
Part 1: Check and Install Prerequisite SoftwareFirst, we need to verify all the required software is loaded on our system. | ||||||||
Line: 41 to 55 | ||||||||
| ||||||||
Changed: | ||||||||
< < | Part 2: Install GlideinWMS Collector (my SL1) | |||||||
> > | Part 2: Install VDT Grid Software | |||||||
Changed: | ||||||||
< < | Ok. Let's proceed with installing the collector on SL1. First we need a new user to own the installation. Let's call them gfactory. | |||||||
> > | First, we need to download the glideinWMS software. We're going to use a specific snapshot. | |||||||
Changed: | ||||||||
< < | su - root groupadd -g 5001 gfactory useradd -c "GFactory Daemon" -g 5001 -m -s /bin/bash -u 5001 gfactory | |||||||
> > | su - root cvs -d :pserver:anonymous@cdcvs.fnal.gov:/cvs/cd_read_only co -r snapshot_091029 glideinWMS | |||||||
Changed: | ||||||||
< < | Let's download and copy condor to the gfactory's home directory: | |||||||
> > | Now, let's install VDT as root. | |||||||
Changed: | ||||||||
< < | mv condor-7.3.1-linux-x86_64-rhel5-dynamic.tar.gz /home/gfactory/ cd /home/gfactory/ chown -R gfactory:gfactory /home/gfactory/condor-7.3.1-linux-x86_64-rhel5-dynamic.tar.gz | |||||||
> > | glideinWMS/install/glideinWMS_install | |||||||
Changed: | ||||||||
< < | We want to begin the installation with our new user, MAKE SURE TO DO THIS AS THE gfactory USER. The installation adds a cron job for gfactory, but the linux OS may not support cron jobs from the root user. Here is how to start the installation: | |||||||
> > | Choose [8] for Components and then [a] for OSG VDT Client. | |||||||
Changed: | ||||||||
< < | mv glideinWMS/ /home/gfactory/ chown -R gfactory:gfactory /home/gfactory/glideinWMS su - gfactory cd glideinWMS/install ./glideinWMS_install | |||||||
> > | Do you have already a VDT installation?: (y/n) n Do you want to install the full OSG VDT client?: (y/n) n Do you want to install a minimal Grid VDT client?: (y/n) y Where do you want the VDT installed?: [/opt/vdt] Directory '/opt/vdt' does not exist, should I create it?: (y/n) What pacman version should I use?: [3.28] What VDT cache should I use?: [http://vdt.cs.wisc.edu/vdt_200_cache] Which platform do you want to use (leave empty for autodetect): Do you agree to the licenses? [y/n] y Where should I fetch the CAs from?: [http://software.grid.iu.edu/pacman/cadist/ca-certs-version] Do you want OSG_VDT_BASE defined globally?: (y/n) y | |||||||
Changed: | ||||||||
< < | Choose the option "glideinWMS Collector" and then let's answer the questions for the installer interactively. Ignore warnings/errors about CA certificates not being installed. The VDT installer doesn't do it, but the glideWMS installer does. Here are the installer answers: | |||||||
> > | Part 3: Install GlideinWMS CollectorLet's proceed with installing the collector on SL1. First we need a new user to own the installation. Let's call them gfactory. | |||||||
Changed: | ||||||||
< < | Do you have already a VDT installation?: (y/n) n Do you want to install the full OSG VDT client?: (y/n) n Do you want to install a minimal Grid VDT client?: (y/n) y Where do you want the VDT installed?: [/home/gfactory/vdt] /home/gfactory/vdt Directory '/home/gfactory/vdt' does not exist, should I create it?: (y/n) y What pacman version should I use?: [pacman-3.26] | |||||||
> > | su - root groupadd -g 5001 gfactory useradd -c "GFactory Daemon" -g 5001 -m -s /bin/bash -u 5001 gfactory | |||||||
Changed: | ||||||||
< < | This next question is a trick question, don't type anything here, just press enter or you'll get an error. | |||||||
> > | Let's download (http://www.cs.wisc.edu/condor/) and copy condor to the gfactory's home directory: | |||||||
Changed: | ||||||||
< < | Which platform do you want to use (leave empty for autodetect): WARNING: It appears that SELinux is enabled on this computer. ... Please press enter to continue the installation, or control-c to cancel. Do you agree to the licenses? [y/n] y Where would you like to install CA files? l Where should I fetch the CAs from?: [http://software.grid.iu.edu/pacman/cadist/ca-certs-version] Where do you have the Condor tarball? /home/gfactory/condor-7.3.1-linux-x86_64-rhel5-dynamic.tar.gz Where do you want to install it?: [/home/gfactory/glidecondor] Directory '/home/gfactory/glidecondor' does not exist, should I create it?: (y/n) y If something goes wrong with Condor, who should get email about it?: me@mydomain.com Do you want to split the config files between condor_config and condor_config.local?: (y/n) [y] | |||||||
> > | cp condor-7.3.1-linux-x86-rhel5-dynamic.tar.gz /home/gfactory/ cd /home/gfactory/ chown -R gfactory:gfactory /home/gfactory/condor-7.3.1-linux-x86-rhel5-dynamic.tar.gz | |||||||
Changed: | ||||||||
< < | In order for the Factory to submit to the grid, we need a proxy on all of the servers. However, we needed VDT to be installed before this is possible. Well, at least the minimal VDT is now installed, so we can use VOMS (Virtual Organization Membership Service) to create the proxy. Let's pause our installation in this window and open up another terminal window. In this new terminal, we will generate the proxy: | |||||||
> > | Let's copy the glideinWMS we already downloaded as root to the gfactory user's home directory.
cp -fr glideinWMS/ /home/gfactory/Copy our personal certificate to the gfactory's home directory. (MORE ABOUT HOW TO GET THIS LATER) cp cert.p12 /home/gfactory | |||||||
Changed: | ||||||||
< < | Using root, I put my certificate file cert.p12 in the gfactory directory, then I switched back to gfactory. | |||||||
> > | We should update our gfactory user's environment to point at the VDT we just installed. We put it in .bashrc so that the environment is affected in both interactive and non-interactive bash shells. | |||||||
Changed: | ||||||||
< < | su - root cd <the directory where the certificate is stored> cp cert.p12 /home/gfactory exit su - gfactory | |||||||
> > | vi /home/gfactory/.bashrc | |||||||
Changed: | ||||||||
< < | Now we need to source the VDT setup script in order to work with the VDT software. | |||||||
> > | Let's add the following at the bottom of the file under "# User specific aliases and functions": | |||||||
Changed: | ||||||||
< < | . /home/gfactory/vdt/setup.sh | |||||||
> > | . /opt/vdt/setup.sh; | |||||||
Changed: | ||||||||
< < | In order to initialize the voms proxy, I need the private key out of my cert. I was able to get my private key using this command and I saved it to a file called cert.key: | |||||||
> > | In order for each of the servers to communicate on the grid, we need a valid proxy on all of the servers. The proxy allows the servers to act on behalf of you. However, we needed VDT Grid Software to be installed before this is possible. Since at least the minimal VDT is now installed, we can use VOMS (Virtual Organization Membership Service) to create the proxy. In order to create a proxy, you first need your personal certificate. I received my certificate by my web browser after I contacted my sponsor who is already authenticated for instructions and applied on the website which distributes them. If you're not trying to get authenticated on someone else's grid, you can probably just make your own. More details on how to do that later... We will now generate the proxy using my personal certificate: Using root, I put my certificate file cert.p12 in the gfactory directory, then I switched into the gfactory user's account. | |||||||
Added: | ||||||||
> > | cp cert.p12 /home/gfactory exit su - gfactory In order to initialize the voms proxy, I need the private key out of my cert. I was able to get my private key using this command and I saved it to a file called cert.key: | |||||||
openssl pkcs12 -in cert.p12 -info | ||||||||
Line: 99 to 134 | ||||||||
chmod 644 /home/gfactory/cert.p12 chmod 400 /home/gfactory/cert.key | ||||||||
Changed: | ||||||||
< < | Run this command to generate the proxy for 500 hours: | |||||||
> > | Let's make a directory to hold the proxy: | |||||||
Changed: | ||||||||
< < | /home/gfactory/vdt/glite/bin/voms-proxy-init -cert /home/gfactory/cert.p12 -key /home/gfactory/cert.key -out /home/gfactory/.globus/x509_service_proxy -valid 500:0.0 | |||||||
> > | mkdir /home/gfactory/.globus | |||||||
Changed: | ||||||||
< < | Now, let's make the cert and key owned by root to prevent any bad stuff from happening: | |||||||
> > | Run this command to generate the proxy for 1000 hours (you'll need to enter your certificate password): | |||||||
Changed: | ||||||||
< < | su - root chown root:root /home/gfactory/cert.p12 chown root:root /home/gfactory/cert.key | |||||||
> > | voms-proxy-init -cert /home/gfactory/cert.p12 -key /home/gfactory/cert.key -out /home/gfactory/.globus/x509_service_proxy -valid 1000:0.0
Now, we want to begin the installation of the GlideinWMS Collector. MAKE SURE TO DO THIS AS THE gfactory USER. The installation also adds a cron job for gfactory. Here is how to start the installation: su - gfactory | |||||||
Changed: | ||||||||
< < | Back in the previous terminal window with our Collector installation, let's continue where we left off. | |||||||
> > | Choose the option [1] glideinWMS Collector and then let's answer the questions for the installer interactively. Here are the installer answers: | |||||||
Changed: | ||||||||
< < | Will you be using a proxy or a cert? (proxy/cert) proxy Where is your proxy located?: /home/gfactory/.globus/x509_service_proxy What name would you like to use for this pool?: [My glideinWMS pool] ChrisB? Pool How many secondary schedds do you want?: [9] 3 | |||||||
> > | Where do you have the Condor tarball? /home/gfactory/condor-7.3.1-linux-x86-rhel5-dynamic.tar.gz Where do you want to install it?: [/home/gfactory/glidecondor] Directory '/home/gfactory/glidecondor' does not exist, should I create it?: (y/n) y If something goes wrong with Condor, who should get email about it?: me@mydomain.myext Do you want to split the config files between condor_config and condor_config.local?: (y/n) [y] Do you want to get it from VDT?: (y/n) y Do you have already a VDT installation?: (y/n) y Where is the VDT installed?: [/opt/vdt] Will you be using a proxy or a cert? (proxy/cert) proxy Where is your proxy located?: /home/gfactory/.globus/x509_service_proxy DN: What name would you like to use for this pool?: [My glideinWMS pool] devg4pool What port should the collector be running?: [9618] 9618 How many secondary schedds do you want?: [9] | |||||||
****************************************** WMS collector successfully installed ****************************************** | ||||||||
Changed: | ||||||||
< < | Part 3: Install GlideinWMS Factory (my SL1) | |||||||
> > | Part 4: Install GlideinWMS Factory | |||||||
First, we must install some additional prerequisite software. We need to get the latest flot tarball, move it into the gfactory's home and extract it. Here is the website to get it from: http://code.google.com/p/flot/ | ||||||||
Added: | ||||||||
> > | su - rootLet's also get JavaScriptRRD? . You might be able to find it on: http://sourceforge.net/projects/javascriptrrd/ cp javascriptrrd-0.4.2.zip /home/gfactory/javascriptrrd-0.4.2.zip | |||||||
We will be using the same proxy used in Part 2, so no additional configuration will be necessary for the proxy. This file is: | ||||||||
Line: 131 to 181 | ||||||||
We also need to add a web directory for glidein submission: | ||||||||
Changed: | ||||||||
< < | su - root mkdir /var/www/html/glidefactory chown gfactory:gfactory /var/www/html/glidefactory | |||||||
> > | mkdir /var/www/html/glidefactory chown gfactory:gfactory /var/www/html/glidefactory If you haven't already started Apache HTTPD as root, it would be a good time to do that. You can just use "yum install httpd" as root if you don't already have it installed. apachectl startLet's login as gfactory user and unpack flot and javascriptrrd: su - gfactory | |||||||
Changed: | ||||||||
< < | We are now installing the factory. Select option 2 from the glideinWMS installation script. | |||||||
> > | We are now installing the factory. Select option [2] Glidein Factory from the glideinWMS installation script. | |||||||
Changed: | ||||||||
< < | su - gfactory cd /home/gfactory/glideinWMS/install ./glideinWMS_install | |||||||
> > | ~/glideinWMS/install/glideinWMS_install | |||||||
Changed: | ||||||||
< < | Here are my answers: | |||||||
> > | Here are my answers to the interactive installation script: | |||||||
Changed: | ||||||||
< < | Do you have already a javascriptRRD installation?: (y/n) y Where is javascriptRRD installed?: /home/gfactory/javascriptrrd-0.4.2 Do you have already a Flot installation?: (y/n) y Where is Flot installed?: /home/gfactory/flot Where is your proxy located?: /home/gfactory/.globus/x509_service_proxy Where will you host your config and log files?: [/home/gfactory/glideinsubmit][/home/gfactory/glideinsubmit] Directory '/home/gfactory/glideinsubmit' does not exist, should I create it?: (y/n) y Where will the web data be hosted?: [/var/www/html/glidefactory] What Web URL will you use?: [http://myhost.mydomain/glidefactory/] http://sl1/glidefactory/ Give a name to this Glidein Factory?: [mySites-sl1] gfactory-sl1 Give a name to this Glidein instance?: [v1_0] What is the Condor base directory?: [/home/gfactory/glidecondor] The following glidein schedds have been found: ... Do you want to use all of them?: (y/n) y Do you want to use CCB (requires Condor 7.3.0 or better)?: (y/n) n Please list all the GCB servers you will be using ... Leave an empty line when finished ... GCB node: Do you want to use gLExec?: (y/n) y Force VO frontend to provide its own proxy?: (y/n) [y] y Do you want to fetch entries from RESS?: (y/n) [n] n Do you want to fetch entries from BDII?: (y/n) [n] n Please list all additional glidein entry points, Entry name (leave empty when finished): myentry Gatekeeper for 'myentry': devg-6.t2.ucsd.edu RSL for 'myentry': Work dir for 'myentry': . Site name for 'myentry': [myentry] mysite gLExec path for 'myentry': [OSG] Should glideins use the more efficient Match authentication (works for Condor v7.1.3 and later)?: (y/n) y Do you want to create the glidein (as opposed to just the config file)?: (y/n) [n]n To create the glidein, you need to run /home/gfactory/glideinWMS/creation/create_glidein /home/gfactory/glideinsubmit/glidein_v1_0.cfg/glideinWMS.xml Configuration files are located in /home/gfactory/glideinsubmit/glidein_v1_0.cfg Remember to set X509_USER_PROXY before starting the daemon | |||||||
> > | Do you have already a javascriptRRD installation?: (y/n) y Where is javascriptRRD installed?: /home/gfactory/javascriptrrd-0.4.2 Do you have already a Flot installation?: (y/n) y Where is Flot installed?: /home/gfactory/flot Do you want to use such a proxy?: (y/n) y Where is your proxy located?: /home/gfactory/.globus/x509_service_proxy Where will you host your config and log files?: [/home/gfactory/glideinsubmit] Directory '/home/gfactory/glideinsubmit' does not exist, should I create it?: (y/n) y Where will the web data be hosted?: [/var/www/html/glidefactory] What Web URL will you use?: [http://myhost.mydomain/glidefactory/] Give a name to this Glidein Factory?: [mySites-server-name] gfactory-devg4 Give a name to this Glidein instance?: [v1_0] What is the Condor base directory?: [/home/gfactory/glidecondor] The following glidein schedds have been found: ... Do you want to use all of them?: (y/n) y Do you want to use CCB (requires Condor 7.3.0 or better)?: (y/n) n Please list all the GCB servers you will be using ... Leave an empty line when finished ... GCB node: Do you want to use gLExec?: (y/n) y Force VO frontend to provide its own proxy?: (y/n) [y] y Do you want to fetch entries from RESS?: (y/n) [n] n Do you want to fetch entries from BDII?: (y/n) [n] n Please list all additional glidein entry points, Entry name (leave empty when finished): entry-devg6 Gatekeeper for 'entry-devg6': devg-6.t2.ucsd.edu RSL for 'myentry': Work dir for 'myentry': . Site name for 'myentry': [myentry] entry-devg6 gLExec path for 'myentry': [OSG] Entry name (leave empty when finished): Should glideins use the more efficient Match authentication (works for Condor v7.1.3 and later)?: (y/n) y Do you want to create the glidein (as opposed to just the config file)?: (y/n) [n] To create the glidein, you need to run /home/gfactory/glideinWMS/creation/create_glidein /home/gfactory/glideinsubmit/glidein_v1_0.cfg/glideinWMS.xml Configuration files are located in /home/gfactory/glideinsubmit/glidein_v1_0.cfg Remember to set X509_USER_PROXY before starting the daemon | |||||||
Changed: | ||||||||
< < | Ok, now add this line to .bashrc: | |||||||
> > | Now edit and add this line to /home/gfactory/.bashrc, logout, and log back in: | |||||||
Changed: | ||||||||
< < | export X509_USER_PROXY=/home/gfactory/.globus/x509_service_proxy | |||||||
> > | export X509_USER_PROXY=/home/gfactory/.globus/x509_service_proxy exit su - gfactory | |||||||
Let's create the glidein: | ||||||||
Line: 164 to 232 | ||||||||
killall condor_master /home/gfactory/glidecondor/start_condor.sh | ||||||||
Changed: | ||||||||
< < | Let's also restart the Factory: | |||||||
> > | Let's also restart the Factory (BUG in start script requires us to be in the correct directory): | |||||||
Changed: | ||||||||
< < | /home/gfactory/glideinsubmit/glidein_v1_0/factory_startup stop /home/gfactory/glideinsubmit/glidein_v1_0/factory_startup start | |||||||
> > | cd /home/gfactory/glideinsubmit/glidein_v1_0 ./factory_startup start | |||||||
If the factory fails to start, consult the factory's log directory: | ||||||||
Changed: | ||||||||
< < | ls /home/gfactory/glideinsubmit/glidein_v1_0/log | |||||||
> > | cat /home/gfactory/glideinsubmit/glidein_v1_0/log/* | |||||||
Changed: | ||||||||
< < | This concludes the glideinWMS collector and factory installation. I hope it was fun.
Part 4: Install GlideinWMS Frontend System (my SL2) | |||||||
> > | This concludes the glideinWMS Collector and Factory installation. Now move along to Server #2.
STEP 3: Install VDT, GlideinWMS Frontend (on server #2)Part 1: Check and Install Prerequisite SoftwareSimply follow the same instructions above in Step 2, Part 1.Part 2: Install VDT Grid SoftwareSimply follow the same instructions above in Step 2, Part 2.Part 3: Install GlideinWMS Frontend | |||||||
The next system needed is the GlideinWMS frontend system. We will install this on my system named SL2. This system needs most of the pre-requisites of SL1.
| ||||||||
Line: 272 to 349 | ||||||||
su - frontend cvs -d :pserver:anonymous@cdcvs.fnal.gov:/cvs/cd_read_only co -r v2_1 glideinWMS | ||||||||
Changed: | ||||||||
< < | Now we need the HTTP server installation: | |||||||
> > | Now we need the HTTP server installation: | |||||||
su - root yum install httpd | ||||||||
Line: 327 to 405 | ||||||||
/home/frontend/glideinWMS/creation/create_frontend /home/frontend/frontstage/instance_v1_0.cfg/frontend.xml | ||||||||
Changed: | ||||||||
< < | Let's also restart the VO Frontend: | |||||||
> > | Let's also restart the VO Frontend: | |||||||
/home/frontend/frontstage/frontend_devg5-vo-v1_0/frontend_startup stop /home/frontend/frontstage/frontend_devg5-vo-v1_0/frontend_startup start |