Installing WebMO on Microsoft Azure
Microsoft Azure allows one to create virtual machines in Microsoft's computing cloud. One can choose the computer type (CPU's, RAM, disk) and OS (linux distro). While this is a commercial service, the cost can be surprisingly low (<$1/day), and even lower if the instance is run only when needed. There are many other advantages, such as zero initial capital cost and no hardware maintenance. We have found cloud computing to be an ideal solution for deploying WebMO and computational chemistry engines, especially for educational purposes.
Setup a Microsoft Azure account
- Navigate to the Azure site.
- Sign up for an Azure free trial ($200 of credit for 30 days and then 12 months after upgrading to pay-as-you-go). You will need to supply billing information to verify that you are a real person, but you will not be charged unless you upgrade your account.
Create a virtual machine instance
and click the "Virtual Machines" (near top left), then click "Add" (near top left).
Select the options:
Resource Group: your preferred group (if this is your first time creating a Virtual Machine you will need to create a new Resource Group. It can then be used for your subsequently created Virtual Machines)
Virtual machine name: webmo-#
Image: Ubuntu Server 18.04 LTS
Authentication Type: Password
Username: a username you can remember
Password: a password you can remember
Select Inbound Ports: SSH, HTTP, HTTPS
Press "Review + Create" then "Create"
Wait for the VM to deploy
Verifiy SSH access
Go to portal.azure.com then click on "Virtual Machines" and click on the name of your virtual machine. Copy the public IP address of your VM. In your local shell enter the command ssh <username you created>@<IP you copied> and press enter, then provide the password you created.
Test some unix commands:
- In your bash session, download and run the Server in the Cloud (sitc) script:
$ sudo curl -O https://www.webmo.net/cloud/sitc.tar.gz
$ sudo tar xzf sitc.tar.gz
$ sudo ./sitc/install
- Follow prompts to:
- update the operating system and add some components
- configure the operating system
- install webmo
- obtain and/or specify webmo license number
- create a webmo user
- install mopac7
- Do not delete the SITC script from your virtual machine. It contains configuration information, and it can be used to install additional compute engines. For a full description of SITC, type:
$ ./sitc/install --help
Set a WebMO administrator password
Log in with the username "admin" and a blank password. Set an administrative password when prompted. Enter your registration information. You are brought to the WebMO administration menu. Since a user was already created and mopac was already installed, simply click Logout.
Access and use WebMO
If a browser tab to your virtual machine is not displayed, go to portal.azure.com then click on "Virtual Machines" and click on the name of your virtual machine. Navigate to
<displayed public IP address>/webmo
Log in with the username and password you supplied to the installation script. Run a test job.
Shutdown virtual machine
When WebMO is not being actively used, you will want to shut it down to avoid incurring CPU usage charges. Navigate to portal.azure.com, click Virtual Machines, select the machine you wish to stop, and click the Stop icon.
Note that you still incur disk storage charges ($2/month for 50GB) even if the virtual machine is not running.
Restarting virtual machine
Navigate to portal.azure.com, click Virtual Machines, select the machine you wish to start, and click the start icon.
Assuming that one creates a 1 vCPU instance with a 50GB disk, the annual costs are
CPU: $440/year * 70% * 1year = $308
Disk: $2/month * 12 months = $24
TOTAL: $332 for one year of continuous availability (<$1/day!)
If one runs the instance for just one month of the year (e.g., for a computational chemistry lab), then the cost would be
CPU: $440/year * 1 year/12 = $37
Disk: $2/month * 12 months = $24
TOTAL: $61 for one month of use during the year ($2/day for one month!)
Very low-cost configurations can be built, e.g., a f1-micro with a 10 GB disk (runs mopac only):
$49 + $5 = $54 for one year of continuous availability ($0.15 per day!)
$6 + $5 = $11 for one month of use during the year (perfect for low cost computing!)
Alternatively, a research-level configuration could be built, e.g., a 4 vCPU with a 500GB disk for one summer:
CPU: 4cpu * $440cpu/year * 70% * 1year/4 = $308
Disk: $20/month * 3 months = $60
TOTAL: $368 for three months of continuous availability (<$4/day)
CPU usage charges can be significantly lowered by stopping the virtual machine when it is not being used and then restarting the virtual machine when needed. See above.
Supported Computational Engines
To access the WebMO administration pages, log into WebMO as username "admin" with the administration password. You can now access the User Manager to add additional users, Job Manager to monitor jobs, Interface Manager to enable other engines (which need to be installed separately), etc.
Adding additional computational engines:
Run the commands:
$ ./sitc/install --skip_webmo="true" --skip_update="true" --engines="foo" (where foo is the engine, or engines separated by commas, that you wish to install)
Adding Additional SSH Keys:
Copy the key you wish to add. Then SSH into your instance. Open the file ~/.ssh/authorized_keys with your editor of choice. Finally paste the key into the file as a new line.
Some engines require a file to be uploaded beforehand. Run:
for more information.
Upgrading WebMO to Pro or Enterprise:
Upgrading with SITC: Obtain a license for WebMO Pro/Enterprise. Login to your virtual machine and run:
Provide your WebMO Pro/Enterprise license numnber and password when prompted. SITC will download the webmo distribution and perform the upgrade.
Upgrading manually: Obtain a license for WebMO Pro/Enterprise, and download the webmo distribution tar.gz file. Upload the webmo distribution into /home/webmo/download on the virtual machine. Install the upgrade as the webmo system user:
$ cd /home/webmo/download
$ tar xzf WebMO.20.0.00Xe.tar.gz
$ cd WebMO.install
$ find /home/webmo -name globals.int
$ perl upgrade.pl
Have you backed up your present WebMO installation [y/n]:y
Continue with upgrade [y/n]:y
License number: ####-####-####
Do you wish to purge deleted jobs? [y/n]:y