Difference between revisions of "HOWTO15 How to configure the Federated Cloud BDII"

From EGIWiki
Jump to: navigation, search
Line 20: Line 20:
  
 
   $ slapd -f /etc/openldap/slapd.conf -h ldap://full.hostname:2170  -d 0  > file-name 2>&1 &
 
   $ slapd -f /etc/openldap/slapd.conf -h ldap://full.hostname:2170  -d 0  > file-name 2>&1 &
 +
 +
then, you will need to configure your [https://goc.egi.eu/ 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 ===
 
=== Refresh the data ===

Revision as of 10:18, 6 May 2014

File attached to this wiki page:

  1. script file for the LDIF (python). (single-info-system-maker-extended-v3.1.py) Download here.
  2. Configuration file for the LDAP server. (slapd.conf) Download here.
  3. 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:

  1. Stop slapd process
  2. Delete in the database directory all the files (but not the DB_CONFIG file)
  3. Run again the slapadd command
  4. 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']