Overview
WebMO Pro permits a single instance of WebMO to run computational chemistry jobs on a network of Unix/Linux/OS X computational servers using its built-in Remote Server functionality.
There are many advantages to using one copy of WebMO Pro over using several copies of WebMO on separate computers. WebMO Pro automatically runs the submitted job on the first available computer, without having to check the job status of each computational server. Also, WebMO Pro saves all of a user's jobs in one location, rather than being spread out over multiple computers.
Preparing for Remote Servers (ssh passwordless login)
The WebMO webserver communicates with remote compute servers through ssh passwordless login sessions. This must be set up prior to using remote servers.
The following procedure assumes that WebMO Pro or Enterprise will be accessing an account 'smith' on a remote computational server named compute.domain.edu. Adjust these appropriately for your installation.
Linux/OS X WebMO webserver:
- Pre-requisites:
- the WebMO application must be installed in a user's home directory, e.g., /home/webmo/public_html
- suexec must be enabled
- Login to the server running WebMO as the 'webmo' user.
- Generate a public/private key pair.
On the webmo webserver, login as the 'webmo' user.
$ ssh-keygen -t rsa
Accept the default values, and do NOT enter a passphrase (use blank), since the key will be used for passwordless unattended logins.
- Add the authorized key to the remote server.
On the webmo webserver:
$ scp /home/webmo/.ssh/id_rsa.pub smith@compute.domain.edu:/home/smith/webmo_key.pub
The first time you login you may be prompted to accept the host key for the remote system; do so.
$ ssh smith@compute.domain.edu
On the remote compute server:
$ cat /home/smith/webmo_key.pub >>/home/smith/.ssh/authorized_keys
$ chmod 600 /home/smith/.ssh/authorized_keys
$ rm /home/smith/webmo_key.pub
$ exit - Test passwordless logins.
From the webmo webserver, connect to the remote compute server.
$ ssh smith@compute.domain.edu
If everything has gone correctly, you should be able to login WITHOUT being prompted for a password.
$ exit
Windows webserver:
- Pre-requisites:
- The PuTTY ssh/scp client must be installed. Make sure to select the "Windows installer" to obtain the entire distribution.
- Generate a public/private keypair.
Open up the PuTTYgen program from Start:Programs:PuTTY.
Make sure SSH-2 RSA key type is selected.
Click Generate and move the mouse randomly around blank areas of the screen to generate the cryptographic key.
Do NOT enter a passphrase associated with the key (since the key will be used for passwordless unattended logins).
Save both the public and private keys to a secure location for further usage (confirm that you do not wish to enter a passphrase). - Add the authorized key to the remote server.
Copy the text from the top text box to the clipboard (select the text and hit Ctrl+C).
Login to the smith account of compute.domain.edu using SSH.
The first time you login you may be prompted to accept the host key for the remote system; do so.
Append the contents of the clipboard to the /home/smith/.ssh/authorized_keys file. Make sure the authorized_keys file has the proper permissions (use 'chmod 600 authorized_keys
').
- Setup PuTTY to use the public/private keypair.
Open up the PuTTY program from Start:Programs:PuTTY.
Select the session Default Settings and click Load.
Go to the Connection:SSH:Auth tab and under 'Private key file for authentication' select the private key file which was generated and saved in the above step.
Go to the Session tab. Select the session Default Settings and click Save. - Test passwordless logins.
Open a command prompt by typing 'cmd
' under Start:Run and clicking Open.
Change to the PuTTY directory by typing 'cd \Program Files\PuTTY
'.
Attempt to login to the remote server by typing 'plink smith@compute.domain.edu
'.
If everything has gone correctly, you should be able to login WITHOUT being prompted for a password. - Make the SSH setup information available to the LocalSystem account.
From the WebMO installation folder (WebMO.install), go to the Scripts sub-folder.
Double click ssh_setup.pl to finish the setup procedure.
Enabling Remote Servers
The Remote Server Manager is enabled from System Manager by selecting Built-in WebMO queue for the queuing system and clicking the Submit button. After returning the the Admin menu, the Remote Server Manager link will be visible. Click Remote Server Manager to add and configure remote servers.
Adding Remote Servers
Before adding a remote server, verify that WebMO operates correctly using a locally installed computer program and that the remote server can be accessed by passwordless ssh.
Login to WebMO as the admin user, and click the Remote Server Manager.
Under the Add server tab, enter a name for this server, the hostname (compute.domain.edu), the username of the remote account (smith), the home directory of the remote account (/home/smith), and the scratch directory to utilize on that server (/tmp or /scratch). Select SSH as the protocol. Click the Add button.
WebMO will attempt to login to the remote server, create a webmo directory (/home/smith/webmo), and copy various files into this directory (globals.cgi, run_*.cgi, interfaces/).
When done, click the Return to Admin button.
Add Server Tab
Configuring Remote Servers
Enable and configure computational engines for each remote server.
Click the Interface Manager link.
In the Server dropdown menu, select the remote server to edit and click the Change button. The server name will be displayed at the top.
Click the Enable interface icon for each installed computational engine.
Click the Edit interface icon for each installed computational engine to access the {Engine} Manager for the server, enter the configuration data, and click the Submit button. Note that the program file locations and scratch directory must be defined as the remote server would see them.
Repeat for each server.
When done, click the Return to Admin button.
Logout from being the WebMO administrator, login as a regular WebMO user, and run a test job.
WebMO Interface Manager |
WebMO Computational Engine Manager |
Editing Remote Servers
Login to WebMO as the admin user, click the Remote Server Manager, and choose the Edit server tab. The following actions can be performed:
- Update server (): copy latest run_{engine} scripts to server
- Delete server (): remove remote server
- Rename server (): change server description string
If it is necessary to change hostname, number of cores, username, or home directory, one must delete and then re-add the remote server.
Edit Server Tab
Updating Remote Servers
Because WebMO copies software onto the remote server, each remote server should be updated when the WebMO installation is updated.