---
tags: azure
---
# WebMO Deployment notes
## Premise
[WebMO](https://www.webmo.net/) is a web interface for running multiple computational chemistry tools. It provides a low-barrier to entry means of doing computational chemistry that is utilised for teaching in the School of Chemistry.
Initially, SoC bought a node on ARC4 for teaching but deploying WebMO on this node and making it available off campus was deemed too difficult.
## Requirements 2022
For the 2022 deployment Andrew would like:
- WebMO 2022 (license 2007-1502-5479)
- Installation of chemistry tools
- ORCA, source files provided to Alex Coleman
- [Tinker tools](https://github.com/TinkerTools/tinker9/releases/tag/v1.1.0)
- [NWChem](https://github.com/nwchemgit/nwchem/releases)
- Deployment to existing domain https://comp-chem.leeds.ac.uk
- SSH access (from campus only), for Andrew
## Notes on 2020-2021 deployment
This was deployed in Azure by Martin Callaghan with Andrew Burnett.
### Existing Azure resources
```bash
$ az resource list -g uol_feps_chem_webmo -o table
Name ResourceGroup Location Type Status
--------------------------------------------------- ------------------- ---------- -------------------------------------------- --------
webmo-lds-data1 uol_feps_chem_webmo eastus Microsoft.Compute/disks
webmo-lds-scratch UOL_FEPS_CHEM_WEBMO eastus Microsoft.Compute/disks
webmo-lds_OsDisk_1_b8793f1771104e57865fd95b7a749ec8 uol_feps_chem_webmo eastus Microsoft.Compute/disks
webmos-lds-tmp1 uol_feps_chem_webmo eastus Microsoft.Compute/disks
webmo-lds UOL_FEPS_CHEM_WEBMO eastus Microsoft.Compute/virtualMachines
webmo-lds/AzureNetworkWatcherExtension uol_feps_chem_webmo eastus Microsoft.Compute/virtualMachines/extensions
webmo-lds/DependencyAgent uol_feps_chem_webmo eastus Microsoft.Compute/virtualMachines/extensions
webmo-lds/LinuxAgent.AzureSecurityCenter uol_feps_chem_webmo eastus Microsoft.Compute/virtualMachines/extensions
webmo-lds/OmsAgentForLinux uol_feps_chem_webmo eastus Microsoft.Compute/virtualMachines/extensions
webmo-lds255 uol_feps_chem_webmo eastus Microsoft.Network/networkInterfaces
webmo-lds-nsg uol_feps_chem_webmo eastus Microsoft.Network/networkSecurityGroups
webmo-lds-ip uol_feps_chem_webmo eastus Microsoft.Network/publicIPAddresses
webmo_chemistry-vnet uol_feps_chem_webmo eastus Microsoft.Network/virtualNetworks
chemwebmo uol_feps_chem_webmo uksouth Microsoft.Storage/storageAccounts
webmochemistrydiag uol_feps_chem_webmo eastus Microsoft.Storage/storageAccounts
```
- System required large scratch storage due to programs writing lots of temporary files when filling up RAM
- VM is currently - Standard D16ds v4 (16 vcpus, 64 GiB memory)
- All resource deployed in East US AZ, except for the storage account which was deployed in uksouth
## Notes on 2022 deployment
### Ansible
A series of ansible roles and deployment playbook have been developed within the Team [azure-ansible repository](https://github.com/ARCLeeds/azure-ansible/tree/webmo/vm/webmo).
#### RBAC setup
For access and authentication this project will be configured with a new resource group owned by `uolacola` with `medacola` delegated contributor access.
### Configuring WebMO
It's important to note that the ansible role for building WebMO uses the [`sitc`](https://www.webmo.net/support/sitc_commands.html) steps for installation rather than the standard Linux server installation. The `sitc` installer is available directly from the WebMO website but still requires a license number and password.
#### License and license password
The WebMO license number was provided by Andrew Burnett and requires an associated password (also provided by Andrew). In the example Ansible playbook this password is stored as a secret within a resource group specific Azure Key Vault. This key vault was created manually through the Azure portal rather than programmatically and is required for successful deployment of WebMO.
#### Admin user
The WebMO interface is available at http://webmo-leeds.uksouth.cloudapp.azure.com/~webmo/cgi-bin/webmo/login.cgi
By default the admin user exists with the username `admin`, the related account password is available within UOL Secret Server as `WebMO 2022 admin user`.
Because of the size of ORCA executebles ORCA was moved to `/scratch` as the OS disk (50GB) was close to full after full deployment.
#### `webmo` and `webmouser` accounts
The `webmouser` account is the Azure VMs main account for managing deployment. It has passwordless `sudo` access and should only be accessible via SSH using an inbound network security rule.
`webmo` user is an account created by the WebMO installer script `$ ./sitc/install`. This account is used by WebMO to internally manage users and groups and is by default given passwordless `sudo` access. **This should be disabled as it is not required (as far as our use case)**.
#### Configuring resources
WebMO needs to be made aware of available cores through the [System Manager](https://www.webmo.net/link/help/SystemManager.html).
It is also important to change the default System Scratch Directory from `/tmp` to `/scratch` on our deployment to take advantage of the 1TB disk.
#### Chemistry engines
After installing the various additional chemistry engines you need to make WebMO aware of them through the [Interface Manager](https://www.webmo.net/link/help/InterfaceManager.html).
In general for this to work the directory and executables for each tool need to be readable and executable for the `webmo` user.
##### Nwchem
For nwchem, WebMO expects a configuration file `nwchemrc`. In the previous iteration this was a blank file created at `/etc/nwchemrc`. This has been repeated for 2022.
##### Tinker
For Tinker it is required you provide a params directory. This is included within the standard [Tinker GitHub repository](https://github.com/TinkerTools/tinker/tree/release/params) and requires no adjustments.
##### ORCA
Orca files are provided by Andrew Burnett and are too large to include within the GitHub Ansible repository.