HOWTO15 How to configure the Federated Cloud BDII
File attached to this wiki page:
- script file for the LDIF (python). Download here.
- Configuration file for the LDAP server. Download here.
- GLUE20.schema file, containing the GLUE20 LDAP definitions. download here.
Note:The configuration file, slapd.conf has been tested with these openldap package:
- openldap-2.4.23-20.el6.x86_64
- openldap-servers-2.4.23-20.el6.x86_64
- openldap-clients-2.4.23-20.el6.x86_64
For other openldap releases it may need to be tuned.
Once you have installed the ldap server you should be able to load the
ldap data with:
$ slapadd -f /etc/openldap/slapd.conf -l cloud-ldif.ldi
and to start the LDAP server with:
$ slapd -f /etc/openldap/slapd.conf -h ldap://full.hostname:2170 -d 0 > file-name 2>&1 &
Refresh the data
To refresh the data contained in the LDAP server:
- Stop slapd process
- Delete in the database directory all the files (but not the DB_CONFIG file)
- Run again the slapadd command
- Start again slapd process
Data published with the current script
The following table is describing the data that must be feeded in the script.
(Please, note that the example are randomly chosen :) )
Variable name | Description | Examples |
---|---|---|
provider['site_name'] | This is the name of the cloud site, if it was a Grid site it would have been the GOCDB name. | Self explanatory |
provider['www'] | Address of the information web site of the resource provider, or the cloud service. | |
provider['Country'] | Country where the cloud infrastructure is located | "Italy" |
provider['product_name'] | The name of' the cloud middleware used to provide | 'OpenNebula |
provider['type'] | The type of cloud service provided. The more common is Infrastructure As A Service | 'IaaS' |
provider['product_vers'] | The version of the cloud middleware deployed | '3.0' |
provider['production_l'] | This specify if the service is a production one. Could be production or test. | 'production' |
provider['capabilities'] | This variable contains a list of strings "('string1','string2','string3,..)", those strings describe the capabilities provided by the cloud service. Please note that the strings are not formalized anywhere, new labels should be agreed within the Task Force, for the moment. | ('cloud.managementSystem','cloud.vm.uploadImage', 'cloud.data.cdmi') |
provider['total_cpus'] | The total number of cores available in the cloud service | Only numeric values |
provider['vm_name'] | The name of the virtual machine manager, it is the VM hypervisor that actually instantiate the virtual machines, underneath the cloud layer. | XEN |
provider['vm_version'] | The version of the virtual machine manager | 1.1 |
provider['endpoints'] | List of the endpoints to reach the different cloud services. This is a list of python dictionaries. Basically the format is "({endpoint1},{endpoint2},{endpoint3}...). the structure of the single {endpoint} bits will be described in an additional table. | |
provider['execution_env'] | List of the execution environments available in the cloud service, that is the different virtual machines images available to be instantiated by the user. It is a list of python dictionaries. Basically the format is "({execution environment1},{execution environment2},{execution environment3}...). the structure of the single {execution environment} bits will be described in an additional table. |
provider = {} provider['site_name'] = 'SITE_NAME' provider['www'] = 'RP_WEB_SITE' provider['Country'] = 'COUNTRY' provider['product_name'] = 'CLOUD_MW' #e.g. OpenNebula provider['type'] = 'IaaS' provider['product_vers'] = 'x.y' #CLOUD_MW version, e.g. 3.0 provider['production_l'] = 'PRODUCTION_LEVEL' # e.g. 'production' provider['capabilities'] = ('cloud.managementSystem','cloud.vm.uploadImage', 'cloud.data.cdmi') # Capabilities must be agreed with the FedClouds task force provider['total_cpus'] = 'XXX' provider['vm_name'] = 'VM_Manager' #e.g. XEN provider['vm_version'] = '1.1' provider['endpoints'] = ({'endpoint_url':'https://endpoint1','endpoint_interface':'INTERFACE','service_type_name':provider['product_name'],'service_type_version':provider['product_vers'],'service_type_developer':'opennebula.org','interface_version':'XX','endpoint_technology':'REST', 'auth_method':'X509'}, {'endpoint_url':'https://endpoint2','endpoint_interface':'INTERFACE2','service_type_name':provider['product_name'],'service_type_version':provider['product_vers'],'service_type_developer':'opennebula.org','interface_version':'NA','endpoint_technology':'NA', 'auth_method':'NA'}) #Add more lines if needed.
provider['ex_env'] = ({'memory':'100','os_family':'linux','os_name':'OpenSuse','os_version':'11.4','platform':'x86-64','max_cores':'24','max_speed':'NA','max_speed':'NA','physical_cpu':'999','max_speed':'999'},
{'memory':'100','os_family':'linux','os_name':'Debian','os_version':'6,0,4','platform':'x86-64','max_cores':'24','physical_cpu':'999','max_speed':'999'})