HOWTO15 How to configure the Federated Cloud BDII
File attached to this wiki page:
- script file for the LDIF (python). (single-info-system-maker-extended-v3.1.py) Download here.
- Configuration file for the LDAP server. (slapd.conf) Download here.
- GLUE20.schema file, containing the GLUE20 LDAP definitions. (GLUE20.schema) 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 &
then, you will need to configure your GOCDB site information the 'GIIS URL' with the address of your site BDII and the base schema, for example:
ldap://prisma-cloud.ba.infn.it:2170/GLUE2DomainID=PRISMA-INFN-BARI,o=glue
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 :) )
General interface information
Variable name | Description | Examples |
---|---|---|
interface['IaaS_api'] | API standard for the IaaS management interface | OCCI |
interface['IaaS_api_version'] | API standard version for the IaaS management interface | 1.1 |
interface['IaaS_api_endpoint_technology'] | API endpoint technology for the IaaS management interface | REST |
interface['IaaS_api_authorization_method'] | API AAI for the IaaS management interface | X509-VOMS |
interface['STaaS_api'] | API standard for the STaaS management interface | CDMI |
interface['STaaS_api_version'] | API standard version for the STaaS management interface | 1.0.1 |
interface['STaaS_api_endpoint_technolog'] | API endpoint technology for the STaaS management interface | REST |
interface['STaaS_api_authorization_method'] | API AAI for the STaaS management interface | X509-VOMS |
General cloud site information
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. It should contain a full URL (eg. with http:// prefix) | http://recas-pon.ba.infn.it/ |
provider['Country'] | Country where the cloud infrastructure is located (in ISO 3166-1 Alpha2 standard) | IT |
provider['site_longitude'] | The longitude of the main site location (in the XX.XXXX format) | 16.8891 |
provider['site_latitude'] | The latitude of the main site location | 41.1123 |
provider['affiliated_ngi'] | The name of the affiliated NGI | NGI_IT |
provider['user_support_contact'] | Site user support contact mail address | admin@cloudsite.org |
provider['general_contact'] | Site general contact mail address | admin@cloudsite.org |
provider['sysadmin_contact'] | Site system administration main contact mail address | admin@cloudsite.org |
provider['security_contact'] | Site security contact mail address | admin@cloudsite.org |
provider['sysadmin_contact'] | Site user support contact mail address | admin@cloudsite.org |
provider['production_level'] | State of the site certification (production level) | production |
provider['site_bdii_host'] | Local site BDII host | site-bdii.mysite.it |
provider['site_bdii_port'] | Local site BDII port | 2170 |
provider['site_total_cpu_cores'] | The total number of CPU cores provided by the site | 300 |
provider['site_total_ram_gb'] | The total RAM provided by the site (in GB) | 600 |
provider['site_total_storage_gb'] | The total number of storage provided by the site (in GB) | 1024 |
provider['iaas_middleware'] | The name of the IaaS middleware | OpenStack Nova |
provider['iaas_middleware_version'] | The version of the IaaS middleware deployed | havana |
provider['iaas_middleware_developer'] | The developer of the IaaS middleware deployed | OpenStack |
provider['iaas_hypervisor'] | The hypervisor deployed in the IaaS middleware | KVM |
provider['iaas_hypervisor_version'] | The version of the hypervisor deployed in the IaaS middleware | 1.5.0 |
provider['iaas_capabilities'] | This variable contains a list of strings "('string1','string2','string3,..)", those strings describe the capabilities provided by the cloud IaaS 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') |
provider['iaas_endpoints'] | List of the endpoints to reach the IaaS service. 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. If no IaaS service is provided, please leave this array empty. | |
provider['os_tpl'] | List of the OS templates available in the cloud IaaS 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 "({os_tpl1},{os_tpl2},{os_tpl3}...). the structure of the single {os_tpl} bits will be described in an additional table. | |
provider['resource_tpl'] | List of the Resource templates (flavors) available in the cloud IaaS service, that is the different virtual machines virtual hardware resources (RAM, CPU, etc...) available to be instantiated by the user. It is a list of python dictionaries. Basically the format is "({resource_tpl1},{resource_tpl2},{resource_tpl3}...). the structure of the single {resource_tpl} bits will be described in an additional table. | |
provider['staas_middleware'] | The name of the STaaS middleware | OpenStack Swift |
provider['staas_middleware_version'] | The version of the STaaS middleware deployed | havana |
provider['staas_middleware_developer'] | The developer of the STaaS middleware deployed | OpenStack |
provider['staas_capabilities'] | This variable contains a list of strings "('string1','string2','string3,..)", those strings describe the capabilities provided by the cloud STaaS service. Please note that the strings are not formalized anywhere, new labels should be agreed within the Task Force, for the moment. | ('cloud.data.upload') |
provider['staas_endpoints'] | List of the endpoints to reach the STaaS service. 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. If no STaaS service is provided, please leave this array empty. |
IaaS Endpoint instance
It is a python dictionary, the format is: {'label1':'value1' , 'label2':'value2'....}.
If a cloud IaaS service provide different interfaces, such as OCCI and EC2, it should publish different endpoints with different implementation.
Label | Description | Examples |
---|---|---|
endpoint_url | The URL to reach the service endpoint, it should contain the protocol (e.g. https://) and the port, if it is not the standard port for the protocol. | https://one.cloud.gwdg.de:8443 |
endpoint_interface | The interface implemented by the endpoint. | OCCI |
service_type_name/version/developer | The scripts fills this with the 'iaas_middleware_name/version/developer' variables described above | |
interface_version | The version of the specification of the interface implemented. The script fills this with interface['IaaS_api_version'] described above. | interface['IaaS_api_version'] |
endpoint_technology | This is the architecture implemented by the web service. The script fills this with interface['IaaS_api_endpoint_technology'] described above. | interface['IaaS_api_endpoint_technology'] |
auth_method | This is the AAI implemented by the web service. The script fills this with interface['IaaS_api_authorization_method'] described above. | interface['IaaS_api_authorization_method'] |
OS_Tpl instance
If a cloud service provide a list of default virtual images that can be instantiate by the user, they should be advertised with a list of execution environment. It is a python dictionary, the format is: {'label1':'value1' , 'label2':'value2'....}.
Label | Description | Examples |
---|---|---|
image_name | name of the OS image. It should be self-explanatory and directly presentable to the user | Scientific Linux 6.4 (x86_64) |
image_version | version of the OS image. Note that this is not the version of the OS, but the version of the virtual image | 1.0 |
marketplace_id | URL of the image into the reference marketplace. For the Federated Cloud, this should point to the AppDB. To obtain this value from AppDB, go into the Virtual Machine image version page (eg. http://appdb.egi.eu/store/vm/image/2c24de6c-e385-49f1-b64f-f9ff35e70f43:9/ and copy the XML link provided by the interface) | http://appdb.egi.eu/store/vm/image/2c24de6c-e385-49f1-b64f-f9ff35e70f43:9/xml |
occi_id | OCCI ID of the image on the site. It shall contain the full mixin to be used in the OCCI create compute API call. | os#ef13c0be-4de6-428f-ad5b-8f32b31a54a1 |
os_family | This is the operating system type provided in the virtual image, the currently formalized families are: linux, windows, macosx, solaris | linux |
os_name | The name of the operating system. | suse |
os_version | The version of the operating system | 6.0.4 |
platform | The processor architecture (i386,amd64,itanium, sparc, powerpc) | amd64 |
Resource_Tpl instance
If a cloud service provide a list of pre-defined virtual hardware resource templates (flavors) that can be instantiate by the user, they should be advertised with a list of resource templates. It is a python dictionary, the format is: {'label1':'value1' , 'label2':'value2'....}.
Label | Description | Examples |
---|---|---|
occi_id | OCCI ID of the resource template on the site. It shall contain the full mixin to be used in the OCCI create compute API call. | resource#tiny-with-disk |
memory | The amount of RAM memory associated to the VM instance (MB) | 512 |
cpu | The number of virtual CPU associated to the VM instance | 2 |
platform | The virtual processor architecture (i386,amd64,itanium, sparc, powerpc) | amd64 |
network | The type of IP provided to the VM (public,private) | public |
STaaS Endpoint instance
It is a python dictionary, the format is: {'label1':'value1' , 'label2':'value2'....}.
If a cloud IaaS service provide different interfaces, such as CDMI and S3, it should publish different endpoints with different implementation.
Label | Description | Examples |
---|---|---|
endpoint_url | The URL to reach the service endpoint, it should contain the protocol (e.g. https://) and the port, if it is not the standard port for the protocol. | https://one.cloud.gwdg.de:8443 |
endpoint_interface | The interface implemented by the endpoint. | OCCI |
service_type_name/version/developer | The scripts fills this with the 'iaas_middleware_name/version/developer' variables described above | |
interface_version | The version of the specification of the interface implemented. The script fills this with interface['staas_api_version'] described above. | interface['staas_api_version'] |
endpoint_technology | This is the architecture implemented by the web service. The script fills this with interface['STaaS_api_endpoint_technology'] described above. | interface['STaaS_api_endpoint_technology'] |
auth_method | This is the AAI implemented by the web service. The script fills this with interface['STaaS_api_authorization_method'] described above. | interface['STaaS_api_authorization_method'] |