openstack-manuals/doc/install-guide/section_heat-install.xml
Tom Fifield 9b68d55e82 Add Heat Install
This adds an initial install of heat to the install guide.

The commands all work OK on Ubuntu, but actually using it
 has not been tested yet.

Does an include of the sample stack commands from the user guide.

Change-Id: I8fda98025753204afc7d0e32f2f571d1f4d8b167
2013-10-14 19:12:45 +02:00

131 lines
7.0 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<section xml:id="heat-install"
xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
<title>Installing the Orchestration Service</title>
<procedure>
<step>
<para>Install the Orchestration Service on the controller node:</para>
<screen os="ubuntu;deb"><prompt>#</prompt> <userinput>apt-get install heat-api heat-api-cfn</userinput></screen>
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum install openstack-heat-api FIXME</userinput></screen>
<screen os="opensuse"><prompt>#</prompt> <userinput>zypper install openstack-heat-api FIXME</userinput></screen>
</step>
<step>
<para>The Orchestration Service uses a database to store information.
Specify the location of the database in the configuration file.
In this guide, we use a MySQL database on the controller node
with the username <literal>heat</literal>. Replace
<literal><replaceable>HEAT_DBPASS</replaceable></literal>
with a suitable password for the database user.</para>
<screen os="rhel;centos;fedora;opensuse"><prompt>#</prompt> <userinput>openstack-config --set /etc/heat/heat.conf \
DEFAULT sql_connection mysql://heat:<replaceable>HEAT_DBPASS</replaceable>@controller/heat</userinput></screen>
<para os="ubuntu">Edit <filename>/etc/heat/heat.conf</filename> and change the <literal>[DEFAULT]</literal> section.</para>
<programlisting os="ubuntu" language="ini">
[DEFAULT]
# The SQLAlchemy connection string used to connect to the database
sql_connection = mysql://heat:HEAT_DBPASS@controller/heat
...
</programlisting>
</step>
<step os="rhel;centos;fedora;opensuse">
<para>Use the <command>openstack-db</command> command to create the
database and tables, as well as a database user called
<literal>keystone</literal> to connect to the database. Replace
<literal><replaceable>HEAT_DBPASS</replaceable></literal>
with the same password used in the previous step.</para>
<screen><prompt>#</prompt> <userinput>openstack-db --init --service heat --password <replaceable>HEAT_DBPASS</replaceable></userinput></screen>
</step>
<step os="ubuntu">
<para>First, we need to create a database user called <literal>heat</literal>, by logging in
as root using the password we set earlier.</para>
<screen><prompt>#</prompt> <userinput>mysql -u root -p</userinput>
<prompt>mysql></prompt> <userinput>CREATE DATABASE heat;</userinput>
<prompt>mysql></prompt> <userinput>GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'localhost' \
IDENTIFIED BY 'HEAT_DBPASS';</userinput></screen>
</step>
<step os="ubuntu">
<para>We now start the heat service and create its tables.</para>
<screen><prompt>#</prompt> <userinput>heat-manage db_sync</userinput>
<prompt>#</prompt> <userinput>service heat-api restart</userinput>
<prompt>#</prompt> <userinput>service heat-api-cfn restart</userinput></screen>
</step>
<step><para>Create a user called <literal>heat</literal> that the Orchestration
Service can use to authenticate with the Identity Service. Use the
<literal>service</literal> tenant and give the user the
<literal>admin</literal> role.</para>
<screen><prompt>#</prompt> <userinput>keystone user-create --name=heat --pass=<replaceable>HEAT_DBPASS</replaceable> --email=<replaceable>heat@example.com</replaceable></userinput>
<prompt>#</prompt> <userinput>keystone user-role-add --user=heat --tenant=service --role=admin</userinput></screen></step>
<step><para>Add the credentials to the Image Service's configuration files.</para>
<para >Edit <filename>/etc/heat/api-paste.ini</filename>
and change the <literal>[filter:authtoken]</literal> section.</para>
<programlisting language="ini">
...
[keystone_authtoken]
paste.filter_factory = heat.common.auth_password:filter_factory
auth_host = controller
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = heat
admin_password = HEAT_DBPASS
...
</programlisting>
</step>
<step><para>Register the Orchestration Service (both Heat and CloudFormation APIs)
with the Identity Service so that other OpenStack services can locate
it. Register the service and specify the endpoint using the
<command>keystone</command> command.</para>
<screen><prompt>#</prompt> <userinput>keystone service-create --name=heat --type=orchestration \
--description="Heat Orchestration API"</userinput></screen></step>
<step><para>Note the service's <literal>id</literal> property returned in the previous step and use it when
creating the endpoint.</para>
<screen><prompt>#</prompt> <userinput>keystone endpoint-create \
--service-id=<replaceable>the_service_id_above</replaceable> \
--publicurl=http://<replaceable>controller</replaceable>:8004/v1/%\(tenant_id\)s \
--internalurl=http://<replaceable>controller</replaceable>:8004/v1/%\(tenant_id\)s \
--adminurl=http://<replaceable>controller</replaceable>:8004/v1/%\(tenant_id\)s</userinput></screen>
<screen><prompt>#</prompt> <userinput>keystone service-create --name=heat-cfn --type=cloudformation \
--description="Heat CloudFormation API"</userinput></screen></step>
<step><para>Note the service's <literal>id</literal> property returned in the previous step and use it when
creating the endpoint.</para>
<screen><prompt>#</prompt> <userinput>keystone endpoint-create \
--service-id=<replaceable>the_service_id_above</replaceable> \
--publicurl=http://<replaceable>controller</replaceable>:8000/v1 \
--internalurl=http://<replaceable>controller</replaceable>:8000/v1 \
--adminurl=http://<replaceable>controller</replaceable>:8000/v1</userinput></screen>
</step>
<step os="ubuntu;debian">
<para>We now restart the service with its new settings.</para>
<screen><prompt>#</prompt> <userinput>service heat-api restart</userinput>
<prompt>#</prompt> <userinput>service heat-api-cfn restart</userinput></screen>
</step>
<step os="rhel;fedora;centos;opensuse"><para>Start the <literal>heat-api</literal> and
<literal>heat-api-cfn</literal> services and configure them to
start when the system boots.</para>
<screen os="rhel;fedora;centos"><prompt>#</prompt> <userinput>service openstack-heat-api start</userinput>
<prompt>#</prompt> <userinput>service openstack-heat-api-cfn start</userinput>
<prompt>#</prompt> <userinput>chkconfig openstack-heat-api on</userinput>
<prompt>#</prompt> <userinput>chkconfig openstack-heat-api-cfn on</userinput></screen>
<screen os="opensuse"><prompt>#</prompt> <userinput>systemctl start openstack-heat-api.service</userinput>
<prompt>#</prompt> <userinput>systemctl start openstack-heat-api-cfn.service</userinput>
<prompt>#</prompt> <userinput>systemctl enable openstack-heat-api.service</userinput>
<prompt>#</prompt> <userinput>systemctl enable openstack-heat-api-cfn.service</userinput></screen></step>
</procedure>
</section>