VMDIRAC¶
Table of contents
Install VMDIRAC¶
On the server running the WMS:
Install VMDIRAC extension as any other DIRAC extension using -e option e.g.:
./dirac-install -l $release-project -r $release_version -e VMDIRAC
Note that in the server local configuration you should have the following option set in the LocalInstallation and DIRAC sections:
Extensions = VMDIRAC
Server local configuration
In the server local configuration add the User/Password information to connect to the Cloud endpoint. Also you should put a valid path for the host certificate, e.g.:
Resources { Sites { Cloud { Cloud.LUPM.fr { Cloud { 194.214.86.244 { User = xxxx Password = xxxx HostCert = /opt/dirac/etc/grid-security/hostcert.pem HostKey = /opt/dirac/etc/grid-security/hostkey.pem CreatePublicIP = True } } } } } }
Install the following components:
- DB: VirtualMachineDB
- Service: WorkloadManagement_VirtualMachineManager
- Agent: WorkloadManagement_CloudDirector
Configuration¶
In the CS Resources section, configure the cloud endpoint as in this example
Resources { Sites { Cloud { Cloud.LUPM.fr { CE = 194.214.86.244 Cloud { 194.214.86.244 { CEType = Cloud ex_security_groups = default ex_force_auth_url = http://194.214.86.244:5000/v3/auth/tokens ex_force_service_region = LUPM-CLOUD # This is the max number of VM instances that will be running in parallel # Each VM can have multiple cores, each one executing a job MaxInstances = 4 ex_force_auth_version = 3.x_password ex_tenant_name = dirac ex_domain_name = msfg.fr networks = dirac-net # This is the public key previously uploaded to the Cloud provider # It's needed to ssh connect to VMs keyname = cta_cloud_lupm # If this option is set, public IP are assigned to VMs # It's needed to ssh connect to VMs ipPool = ext-net } Images { # It can be a public or a private image Centos6-Officielle { ImageID = 35403255-f5f1-4c61-96dc-e59678942c6d FlavorName = m1.medium } } } } } } }
CS Operation section
Operations { CTA { Cloud { GenericCloudGroup = cta_genpilot GenericCloudUser = arrabito user_data_commands = vm-bootstrap user_data_commands += vm-bootstrap-functions user_data_commands += vm-pilot user_data_commands += vm-monitor-agent user_data_commands += pilotCommands.py user_data_commands += pilotTools.py user_data_commands += dirac-install.py user_data_commands += power.sh user_data_commands += parse-jobagent-log user_data_commands += dirac-pilot.py user_data_commands += save-payload-logs # url from which command scripts are downloaded. Usually the url of the web server user_data_commands_base_url = http://cta-dirac.in2p3.fr/DIRAC/defaults Project = CTA Version = v1r40 } } }
CS Registry section
The host where VMDIRAC is installed and the certificate of which is used for the VMs, it should have these 2 properties set (as in the example below):
- Properties = GenericPilot (needed to make pilots running on the VM matching jobs in the TaskQueue)
- Properties = VmRpcOperation (needed by the VirtualMachineMonitorAgent running on the VM to be authorized to send Heartbeats to the VirtualMachineManager service)
Registry { Hosts { dcta-agents01.pic.es { DN = /DC=org/DC=terena/DC=tcs/C=ES/ST=Barcelona/L=Bellaterra/O=Institut de Fisica dAltes Energies/CN=dcta-agents01.pic.es CA = /C=NL/ST=Noord-Holland/L=Amsterdam/O=TERENA/CN=TERENA eScience SSL CA 3 Properties = FullDelegation Properties += CSAdministrator Properties += ProxyManagement Properties += SiteManager Properties += Operator Properties += JobAdministrator Properties += CSAdministrator Properties += TrustedHost Properties += GenericPilot Properties += VmRpcOperation } } }
Install VMDIRAC WebApp¶
On the DIRAC web server install VMDIRAC WebApp as a normal extension. In the server local configuration you should set the following option in the LocalInstallation and DIRAC sections:
Extensions = VMDIRAC
Create sym links for the bootstrap scripts
$ ll /opt/dirac/webRoot/www/defaults/bootstrap total 0 lrwxrwxrwx 1 dirac dirac 50 Feb 21 08:46 dirac-install.py -> /opt/dirac/pro/DIRAC/Core/scripts/dirac-install.py lrwxrwxrwx 1 dirac dirac 71 Feb 21 08:49 dirac-pilot.py -> /opt/dirac/pro/DIRAC/WorkloadManagementSystem/PilotAgent/dirac-pilot.py lrwxrwxrwx 1 dirac dirac 76 Feb 21 08:50 parse-jobagent-log -> /opt/dirac/pro/VMDIRAC/WorkloadManagementSystem/Bootstrap/parse-jobagent-log lrwxrwxrwx 1 dirac dirac 73 Feb 21 08:51 pilotCommands.py -> /opt/dirac/pro/DIRAC/WorkloadManagementSystem/PilotAgent/pilotCommands.py lrwxrwxrwx 1 dirac dirac 70 Feb 21 08:51 pilotTools.py -> /opt/dirac/pro/DIRAC/WorkloadManagementSystem/PilotAgent/pilotTools.py lrwxrwxrwx 1 dirac dirac 66 Feb 21 08:52 power.sh -> /opt/dirac/pro/VMDIRAC/WorkloadManagementSystem/Bootstrap/power.sh lrwxrwxrwx 1 dirac dirac 75 Feb 21 08:52 save-payload-logs -> /opt/dirac/pro/VMDIRAC/WorkloadManagementSystem/Bootstrap/save-payload-logs lrwxrwxrwx 1 dirac dirac 70 Feb 21 11:47 vm-bootstrap -> /opt/dirac/pro/VMDIRAC/WorkloadManagementSystem/Bootstrap/vm-bootstrap lrwxrwxrwx 1 dirac dirac 80 Feb 21 08:52 vm-bootstrap-functions -> /opt/dirac/pro/VMDIRAC/WorkloadManagementSystem/Bootstrap/vm-bootstrap-functions lrwxrwxrwx 1 dirac dirac 74 Feb 21 08:53 vm-monitor-agent -> /opt/dirac/pro/VMDIRAC/WorkloadManagementSystem/Bootstrap/vm-monitor-agent lrwxrwxrwx 1 dirac dirac 66 Feb 21 08:53 vm-pilot -> /opt/dirac/pro/VMDIRAC/WorkloadManagementSystem/Bootstrap/vm-pilot