openstack-manuals/doc/install-guide/section_heat-install.xml
Andreas Jaeger 9876fe99af Use traditional init script commands for openSUSE
These changes allow sharing the code of Fedora with openSUSE
and also SLES.

Also, tag some openSUSE changes with sles as well, more
to come.

Change-Id: I6b7fb9fb271e4ddbf267a09b2f10c4c968ef7092
2013-10-16 10:05:50 +02:00

117 lines
6.2 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;sles"><prompt>#</prompt> <userinput>zypper install openstack-heat-api openstack-heat-api-cfn</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;sles"><prompt>#</prompt> <userinput>openstack-config --set /etc/heat/heat.conf \
database 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>
<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 '<replaceable>HEAT_DBPASS</replaceable>';</userinput>
<prompt>mysql></prompt> <userinput>GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'%' \
IDENTIFIED BY '<replaceable>HEAT_DBPASS</replaceable>';</userinput></screen>
</step>
<step os="fedora;centos;rhel;ubuntu;debian">
<para>We now create the heat service tables:
<screen><prompt>#</prompt> <userinput>heat-manage db_sync</userinput></screen>
</para>
</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_PASS</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">
...
[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
...
</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;sles"><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;opensuse;sles"><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>
</step>
</procedure>
</section>