9b68d55e82
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
131 lines
7.0 KiB
XML
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>
|