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
This commit is contained in:
parent
9925f9787d
commit
9b68d55e82
@ -2,29 +2,26 @@
|
|||||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||||
xml:id="orchestration-service">
|
xml:id="orchestration-service">
|
||||||
<title>Orchestration Service</title>
|
<title>Orchestration Service Overview</title>
|
||||||
<para>The Orchestration Service provides a template-based
|
<para>The Orchestration service provides a template-based orchestration
|
||||||
orchestration for describing a cloud application by running
|
for describing a cloud application by running OpenStack API calls to
|
||||||
OpenStack API calls to generate running cloud applications.
|
generate running cloud applications. The software integrates other core
|
||||||
The software integrates other core components of OpenStack
|
components of OpenStack into a one-file template system. The templates
|
||||||
into a one-file template system. The templates enable you to
|
enable you to create most OpenStack resource types, such as instances,
|
||||||
create most OpenStack resource types, such as instances,
|
floating IPs, volumes, security groups, users, and so on. Also, provides
|
||||||
floating IPs, volumes, security groups, users, and so on.
|
some more advanced functionality, such as instance high availability,
|
||||||
Also, provides some more advanced functionality, such as
|
instance auto-scaling, and nested stacks. By providing very tight
|
||||||
instance high availability, instance auto-scaling, and nested
|
integration with other OpenStack core projects, all OpenStack core projects
|
||||||
stacks. By providing very tight integration with other
|
could receive a larger user base.</para>
|
||||||
OpenStack core projects, all OpenStack core projects could
|
<para>The service enables deployers to integrate with the Orchestration
|
||||||
receive a larger user base.</para>
|
service directly or through custom plug-ins.</para>
|
||||||
<para>Enables deployers to integrate with the Orchestration
|
<para>The Orchestration service consists of the following
|
||||||
Service directly or through custom plug-ins.</para>
|
components:</para>
|
||||||
<para>The Orchestration Service consists of the following
|
|
||||||
components:</para>
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><code>heat</code> tool. A CLI that communicates with
|
<para><code>heat</code> tool. A CLI that communicates with the
|
||||||
the heat-api to run AWS CloudFormation APIs. End
|
heat-api to run AWS CloudFormation APIs. End developers could also use
|
||||||
developers could also use the heat REST API
|
the Orchestration REST API directly.</para>
|
||||||
directly.</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><code>heat-api</code> component. Provides an
|
<para><code>heat-api</code> component. Provides an
|
||||||
|
@ -4,7 +4,10 @@
|
|||||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||||
xml:id="ch_heat">
|
xml:id="ch_heat">
|
||||||
<title>Adding Orchestration</title>
|
<title>Adding Orchestration</title>
|
||||||
|
<para>Use the OpenStack Orchestration service to create cloud
|
||||||
<para>FIXME</para>
|
resources using a template language called HOT. The
|
||||||
<xi:include href="../common/section_getstart_orchestration.xml" />
|
integrated project name is Heat.</para>
|
||||||
|
<xi:include href="../common/section_getstart_orchestration.xml"/>
|
||||||
|
<xi:include href="section_heat-install.xml" />
|
||||||
|
<xi:include href="section_heat-verify.xml" />
|
||||||
</chapter>
|
</chapter>
|
||||||
|
130
doc/install-guide/section_heat-install.xml
Normal file
130
doc/install-guide/section_heat-install.xml
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
<?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>
|
19
doc/install-guide/section_heat-verify.xml
Normal file
19
doc/install-guide/section_heat-verify.xml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<section xml:id="heat-verify"
|
||||||
|
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>Verifying the Orchestration Service Installation</title>
|
||||||
|
|
||||||
|
<para>To verify the Identity Service is installed and configured
|
||||||
|
correctly, first ensure you have your credentials setup correctly
|
||||||
|
in an <filename>openrc</filename> file, then source it so your
|
||||||
|
environment has the username and password.</para>
|
||||||
|
|
||||||
|
<screen><prompt>#</prompt> <userinput>source openrc</userinput></screen>
|
||||||
|
|
||||||
|
<para>Next you can try creating some stacks, using the samples.</para>
|
||||||
|
<xi:include href="../user-guide/section_heat_cli.xml"/>
|
||||||
|
|
||||||
|
</section>
|
Loading…
Reference in New Issue
Block a user