Install the Orchestration serviceInstall the Orchestration service on the controller
node:#apt-get install heat-api heat-api-cfn heat-engineRespond to prompts for database
management, [keystone_authtoken]
settings, RabbitMQ
credentials and API endpoint registration.Install the Orchestration service on the controller
node:#apt-get install heat-api heat-api-cfn heat-engine#yum install openstack-heat-api openstack-heat-engine FIXME#zypper install openstack-heat-api openstack-heat-api-cfn openstack-heat-engineIn the configuration file, specify the location of the
database where the Orchestration service stores data. The
examples in this guide use a MySQL database with a
heat user on the controller node. Replace
HEAT_DBPASS with the password for
the database user:#openstack-config --set /etc/heat/heat.conf \
database connection mysql://heat:HEAT_DBPASS@controller/heatEdit
/etc/heat/heat.conf and change the
[DEFAULT] section.[database]
# The SQLAlchemy connection string used to connect to the database
connection = mysql://heat:HEAT_DBPASS@controller/heat
...By default, the Ubuntu packages create an SQLite database.
Delete the heat.sqlite file created in
the /var/lib/heat/ directory so that it
does not get used by mistake.Use the password you set previously to log in as root and
create a heat database user:#mysql -u root -pmysql>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:#heat-manage db_syncIgnore DeprecationWarning
errors.The Ubuntu packages do not correctly set up logging. Edit
the /etc/heat/heat.conf file and change
the [DEFAULT] section:[DEFAULT]
...
# Print more verbose output (set logging level to INFO instead
# of default WARNING level). (boolean value)
verbose = True
...
# (Optional) The base directory used for relative --log-file
# paths (string value)
log_dir=/var/log/heatCreate a heat user that the
Orchestration service can use to authenticate with the
Identity Service. Use the service tenant
and give the user the admin role:#keystone user-create --name=heat --pass=HEAT_PASS --email=heat@example.com#keystone user-role-add --user=heat --tenant=service --role=adminAdd the credentials to the Orchestration service
configuration files:Edit the /etc/heat/api-paste.ini file
and change the [filter:authtoken]
section:...
[filter:authtoken]
paste.filter_factory = heat.common.auth_token:filter_factory
auth_host = controller
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = heat
admin_password = HEAT_PASS
...Register the Heat and CloudFormation APIs with the
Identity Service so that other OpenStack services can locate
these APIs. Register the service and specify the
endpoint:#keystone service-create --name=heat --type=orchestration \
--description="Heat Orchestration API"Use the id property that is returned
for the service to create the endpoint:#keystone endpoint-create \
--service-id=the_service_id_above \
--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="Heat CloudFormation API"Use the id property that is returned
for the service to create the endpoint:#keystone endpoint-create \
--service-id=the_service_id_above \
--publicurl=http://controller:8000/v1 \
--internalurl=http://controller:8000/v1 \
--adminurl=http://controller:8000/v1Restart the service with its new settings:#service heat-api restart#service heat-api-cfn restart#service heat-engine restartStart the heat-api, heat-api-cfn and heat-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