blazar/doc/source/userdoc/installation.guide.rst
Cristian A Sanchez 6b26ecaf75 Change references of tenant to project
Refernces from tenant to project were made in several
places, including DB, HTTP Headers, configuration items,
json in responses and devstack integration. Additionally,
a migration script using Alembic was included.

Implements: blueprint tenant-to-project-ref
Change-Id: I4b21182f555ccd412a4ca4e0ce753f07edcd07f8
2014-04-17 11:16:09 -03:00

4.6 KiB
Raw Blame History

Installation using Devstack

This section includes instructions for Climate installation using Devstack.

  1. Download Devstack:
git clone https://github.com/openstack-dev/devstack.git
  1. Download Climate:
git clone https://github.com/stackforge/climate.git
  1. Add climate files to Devstack:
cd climate/contrib/devstack
DEVSTACK_DIR=../../../devstack
cp lib/climate ${DEVSTACK_DIR}/lib
cp extras.d/70-climate.sh ${DEVSTACK_DIR}/extras.d
  1. Configure devstack to run climate by adding climate, climate api and climate manager to the localrc file:
cd ${DEVSTACK_DIR}
echo "enable_service climate" >> localrc
echo "enable_service climate-a" >> localrc
echo "enable_service climate-m" >> localrc
  1. Run Devstack:
./stack.sh

Installation without Devstack

This section includes instructions for Climate installation.

Download all Climate related repos:

git clone https://github.com/stackforge/climate.git
git clone https://github.com/stackforge/climate-nova.git
git clone https://github.com/stackforge/python-climateclient.git

Install all these projects to your working environment via:

python setup.py install

or

python setup.py develop

Next you need to configure Climate and Nova. Define /etc/climate/climate.conf file using the following example:

[DEFAULT]
host=<climate_host>

os_auth_host=<auth_host>
os_auth_port=<auth_port>
os_auth_protocol=<http, for example>
os_admin_username=<username>
os_admin_password=<password>
os_admin_project_name=<project_name>

[manager]
plugins=basic.vm.plugin,physical.host.plugin

[virtual:instance]
on_start=on_start
on_end=create_image, delete

[physical:host]
on_start=on_start
on_end=on_end
climate_username=<username>
climate_password=<password>
climate_project_name=<project_name>

Here os_admin_* flags refer to Climate service user. climate_* ones - to admin user created specially to work with physical reservations. If you have no these users, create them via Keystone:

keystone user-create --name=climate --pass=<service_password> --tenant_id=<service_tenant_id> --email=climate@example.com
keystone user-role-add --tenant-id <service_tenant_id> --user-id <climate_user> --role-id <admin_role>

And the same procedure for special admin user to work with physical reservations.

Next you need to configure Nova. If you want to use virtual reservations, please add the following lines to nova.conf file:

osapi_compute_extension = nova.api.openstack.compute.contrib.standard_extensions
osapi_compute_extension = climatenova.api.extensions.default_reservation.Default_reservation
osapi_compute_extension = climatenova.api.extensions.reservation.Reservation

If you want to use physical reservations add these ones:

scheduler_available_filters = nova.scheduler.filters.all_filters
scheduler_available_filters = climatenova.scheduler.filters.climate_filter.ClimateFilter
scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ClimateFilter

Restart nova-api and nova-scheduler to use new configuration file.

Climate uses Keystone trusts to commit actions on behalf of user created lease. Thats why we need to create identityv3 service with appropriate endpoints:

keystone service-create --name keystonev3 --type identityv3 --description "Keystone Identity Service v3"
keystone endpoint-create --region <region> --service keystonev3 --publicurl "<auth_protocol>://<auth_host>:5000/v3" --adminurl "<auth_protocol>://<auth_host>:35357/v3" --internalurl "<auth_protocol>://<auth_host>:5000/v3"

And, finally, we need to create reservation service in Keystone with its endpoints:

keystone service-create --name climate --type reservation --description “OpenStack reservation service.”
keystone endpoint-create --region <region> --service climate --publicurl "<auth_protocol>://<climate_host>:1234/v1" --adminurl "<auth_protocol>://<climate_host>:1234/v1"

To start Climate services use:

climate-api
climate-manager

Now you can use python-climateclient to communicate with Climate.