Install the Orchestration module on the controller node:
# yum install openstack-heat-api openstack-heat-engine \ openstack-heat-api-cfn
In the configuration file, specify the location of the database where the Orchestration service stores data. These examples use a MySQL database with a
heat
user on the controller node. ReplaceHEAT_DBPASS
with the password for the database user:# openstack-config --set /etc/heat/heat.conf \ database connection mysql://heat:
HEAT_DBPASS
@controller
/heatUse the password that you set previously to log in as
root
and create aheat
database user:$ mysql -u root -p mysql> CREATE DATABASE heat; mysql> GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'localhost' \ IDENTIFIED BY '
HEAT_DBPASS
'; mysql> GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'%' \ IDENTIFIED BY 'HEAT_DBPASS
';Create the heat service tables:
# su -s /bin/sh -c "heat-manage db_sync" heat
Note Ignore DeprecationWarning errors.
Create a
heat
user that the Orchestration service can use to authenticate with the Identity Service. Use theservice
tenant and give the user theadmin
role:$ keystone user-create --name=heat --pass=
HEAT_PASS
\ --email=[email protected]
$ keystone user-role-add --user=heat --tenant=service --role=adminEdit the
/etc/heat/heat.conf
file to change the[keystone_authtoken]
and[ec2authtoken]
sections to add credentials to the Orchestration Service:[keystone_authtoken] auth_host =
controller
auth_port = 35357 auth_protocol = http auth_uri = http://controller
:5000/v2.0 admin_tenant_name = service admin_user = heat admin_password =HEAT_PASS
[ec2authtoken] auth_uri = http://controller
:5000/v2.0Register the Heat and CloudFormation APIs with the Identity Service so that other OpenStack services can locate these APIs. Register the services and specify the endpoints:
$ keystone service-create --name=heat --type=orchestration \ --description="Orchestration" $ keystone endpoint-create \ --service-id=$(keystone service-list | awk '/ orchestration / {print $2}') \ --publicurl=http://
controller
:8004/v1/%\(tenant_id\)s \ --internalurl=http://controller
:8004/v1/%\(tenant_id\)s \ --adminurl=http://controller
:8004/v1/%\(tenant_id\)s $ keystone service-create --name=heat-cfn --type=cloudformation \ --description="Orchestration CloudFormation" $ keystone endpoint-create \ --service-id=$(keystone service-list | awk '/ cloudformation / {print $2}') \ --publicurl=http://controller
:8000/v1 \ --internalurl=http://controller
:8000/v1 \ --adminurl=http://controller
:8000/v1Start the
heat-api
,heat-api-cfn
andheat-engine
services and configure them to start when the system boots:# service openstack-heat-api start # service openstack-heat-api-cfn start # service openstack-heat-engine start # chkconfig openstack-heat-api on # chkconfig openstack-heat-api-cfn on # chkconfig openstack-heat-engine on