Install the Orchestration serviceInstall the Orchestration module 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 module on the controller
node:#apt-get install heat-api heat-api-cfn heat-engine#yum install openstack-heat-api openstack-heat-engine \
openstack-heat-api-cfn#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. These
examples 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 that was created in
the /var/lib/heat/ directory so that it
does not get used by mistake.Use the password that 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/heatConfigure the Orchestration Service to use the RabbitMQ
message broker.Edit /etc/heat/heat.conf
and modify the [DEFAULT] section:rabbit_host = controller
rabbit_password = RABBIT_PASSRun the following commands:#openstack-config --set /etc/heat/heat.conf DEFAULT rabbit_host controller#openstack-config --set /etc/heat/heat.conf DEFAULT rabbit_password RABBIT_PASSCreate 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=adminEdit the /etc/heat/heat.conf file to
change the [keystone_authtoken] and
[ec2_authtoken] 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
[ec2_authtoken]
auth_uri = http://controller:5000/v2.0
keystone_ec2_uri = http://controller:5000/v2.0/ec2tokensRegister 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="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/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