Fixes neutron setup for Debian

This patch completely removes the section_neutron-install.xml
section from the Debian install-guide, since that part is
completely automated in Debian, and describes how the plugin
system works in Debian. It then customize the other sections
to fit the Debian installation procedure.

Change-Id: Ib1fabd7f64d513132484b98541cef2e4276ccfe8
backport: havana
This commit is contained in:
Thomas Goirand 2013-11-01 14:44:34 +08:00
parent 49f2b64f8a
commit ac32f3ac94
6 changed files with 142 additions and 74 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -6,28 +6,112 @@
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:html="http://www.w3.org/1999/xhtml" version="5.0">
<title>Install Networking Services</title>
<para>Before you configure individual nodes for Neutron, you must
<para os="debian">When you install a Neutron node, you must configure it
for API endpoints, RabbitMQ, <code>keystone_authtoken</code>, and the database.
This is done through <systemitem class="library">debconf</systemitem>, like for the rest of OpenStack,
when installing any package for the Networking service.</para>
<para os="debian">When installing a Neutron package, <systemitem class="library">debconf</systemitem>
will prompt you to choose configuration options including the plug-in to use:</para>
<mediaobject>
<imageobject>
<imagedata scale="50" fileref="figures/debconf-screenshots/neutron_1_plugin_selection.png"/>
</imageobject>
</mediaobject>
<para>This parameter sets the for the <parameter>core_plugin</parameter> option value in the
<filename>/etc/neutron/neutron.conf</filename> file.</para>
<note><para>When you install the <systemitem class="service">neutron-common</systemitem> package,
all plug-ins are installed by default.</para></note>
<para>The following table lists the values for the
<parameter>core_plugin</parameter> option. These values depend on your
answer to the debconf prompt.</para>
<table rules="all">
<caption>Plug-ins and the core_plugin option</caption>
<thead>
<tr>
<th>Plug-in name</th>
<th>core_plugin value in neutron.conf</th>
</tr>
</thead>
<tbody>
<tr>
<td><para>OpenVSwitch</para></td>
<td><para>neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2</para></td>
</tr>
<tr>
<td><para>LinuxBridge</para></td>
<td><para>neutron.plugins.linuxbridge.lb_neutron_plugin.LinuxBridgePluginV2</para></td>
</tr>
<tr>
<td><para>ml2</para></td>
<td><para>neutron.plugins.ml2.plugin.Ml2Plugin</para></td>
</tr>
<tr>
<td><para>RYU</para></td>
<td><para>neutron.plugins.ryu.ryu_neutron_plugin.RyuNeutronPluginV2</para></td>
</tr>
<tr>
<td><para>PLUMgrid</para></td>
<td><para>neutron.plugins.plumgrid.plumgrid_nos_plugin.plumgrid_plugin.NeutronPluginPLUMgridV2</para></td>
</tr>
<tr>
<td><para>Brocade</para></td>
<td><para>neutron.plugins.brocade.NeutronPlugin.BrocadePluginV2</para></td>
</tr>
<tr>
<td><para>Hyper-V</para></td>
<td><para>neutron.plugins.hyperv.hyperv_neutron_plugin.HyperVNeutronPlugin</para></td>
</tr>
<tr>
<td><para>BigSwitch</para></td>
<td><para>neutron.plugins.bigswitch.plugin.NeutronRestProxyV2</para></td>
</tr>
<tr>
<td><para>Cisco</para></td>
<td><para>neutron.plugins.cisco.network_plugin.PluginV2</para></td>
</tr>
<tr>
<td><para>Midonet</para></td>
<td><para>neutron.plugins.midonet.plugin.MidonetPluginV2</para></td>
</tr>
<tr>
<td><para>Nec</para></td>
<td><para>neutron.plugins.nec.nec_plugin.NECPluginV2</para></td>
</tr>
<tr>
<td><para>MetaPlugin</para></td>
<td><para>neutron.plugins.metaplugin.meta_neutron_plugin.MetaPluginV2</para></td>
</tr>
<tr>
<td><para>Mellanox</para></td>
<td><para>neutron.plugins.mlnx.mlnx_plugin.MellanoxEswitchPlugin</para></td>
</tr>
</tbody>
</table>
<para>Depending on the value of <parameter>core_plugin</parameter>, the
start-up scripts start the daemons by using the corresponding plugin configuration file
as parameter directly. For example, if you selected the Open vSwitch
plugin, then <code>neutron-server</code> will be launched with
<code>--config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</code>
automatically.</para>
<para os="debian">The <systemitem class="library">neutron-common</systemitem> package
also prompt you for the default network configuration that you wish to use:
<mediaobject>
<imageobject>
<imagedata scale="50" fileref="figures/debconf-screenshots/neutron_2_networking_type.png"/>
</imageobject>
</mediaobject>
<mediaobject>
<imageobject>
<imagedata scale="50" fileref="figures/debconf-screenshots/neutron_3_hypervisor_ip.png"/>
</imageobject>
</mediaobject>
</para>
<para os="rhel;centos;fedora;opensuse;sles;ubuntu">Before you configure individual nodes for Neutron, you must
perform the initial setup required for any OpenStack component:
creating a user, a service, endpoint(s), and a database. Once you
have completed the steps below, follow the subsections of this
guide to set up each of your OpenStack nodes for Neutron.</para>
<note os="debian">
<title>Note for Debian users</title>
<para>As for the rest of OpenStack, you must configure Networking
Services through the <filename>debconf</filename> file. You do
not need to manually configure the database or create the
Keystone endpoint. You can skip the following steps can. If you
must reconfigure the Networking Service, run the following
command:</para>
<screen><prompt>#</prompt> <userinput>dpkg-reconfigure -plow neutron-common</userinput></screen>
<para>Alternatively, edit the configuration files and manually
restart the daemons. Remember that if your database server is
installed remotely, you must run the following command before
you install the Networking Service:
<screen><prompt>#</prompt> <userinput>apt-get install dbconfig-common &amp;&amp; \
dpkg-reconfigure -plow dbconfig-common</userinput></screen></para>
</note>
<procedure>
<procedure os="rhel;centos;fedora;opensuse;sles;ubuntu">
<step>
<!-- TODO(sross): change this to use `openstack-db` once it supports Neutron -->
<!-- TODO(sross): move this into its own section -->
@ -112,8 +196,13 @@ IDENTIFIED BY '<replaceable>NEUTRON_DBPASS</replaceable>';</userinput></screen>
<screen os="rhel;centos;fedora"><prompt>#</prompt> <userinput>yum install openstack-neutron</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-neutron openstack-neutron-l3-agent openstack-neutron-dhcp-agent</userinput></screen>
</step>
<step>
<para>Make sure basic Neturon-related service are set to start at boot time:</para>
<step os="debian">
<para>Answer the <systemitem class="library">debconf</systemitem> prompts about the database setup, the
<literal>[keystone_authtoken]</literal>, the RabbitMQ credentials,
and the API endpoing configuration.</para>
</step>
<step os="rhel;centos;fedora;opensuse;sles">
<para>Make sure basic Neutron-related service are set to start at boot time:</para>
<screen><prompt>#</prompt> <userinput>for s in neutron-{dhcp,l3}-agent; do chkconfig $s on; done</userinput></screen>
</step>
<step>
@ -132,16 +221,8 @@ net.ipv4.conf.default.rp_filter=0</programlisting>
<screen os="ubuntu"><prompt>#</prompt> <userinput>service networking restart</userinput></screen>
<screen os="rhel;centos;fedora;opensuse;sles"><prompt>#</prompt> <userinput>service network restart</userinput></screen>
</note>
<note os="debian">
<title>Note for Debian users</title>
<para>Because this configuration is automated in the Debian
packages through debconf, you do not need to manually
configure the <literal>[keystone_authtoken]</literal>, the
<literal>[database]</literal> , or the RabbitMQ sections
of the Neutron configuration files.</para>
</note>
</step>
<step>
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Configure the core networking components. Edit the
<filename>/etc/neutron/neutron.conf</filename> file and
copying the following under the
@ -154,14 +235,14 @@ admin_tenant_name = service
admin_user = neutron
admin_password = <replaceable>NEUTRON_PASS</replaceable></programlisting>
</step>
<step>
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Tell Neutron how to connect to the database by editing
<literal>[database]</literal> section in the same
file:</para>
<programlisting language="ini">[database]
connection = mysql://neutron:<replaceable>NEUTRON_DBPASS</replaceable>@controller/neutron</programlisting>
</step>
<step>
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Edit the <filename>/etc/neutron/api-paste.ini</filename>
file by copying the following statements under
<literal>[filter:authtoken]</literal> section:</para>
@ -173,7 +254,11 @@ admin_user=neutron
admin_tenant_name=service
admin_password=<replaceable>NEUTRON_PASS</replaceable></programlisting>
</step>
<step>
<step os="debian"><para>Make sure you have configured your network
plug-in throughout the <link linkend="install-neutron.install-plug-in">instructions</link>
for it in the linked section, and then return here.</para>
</step>
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Now, you can install, and then configure, a networking
plug-in. The networking plug-in is what Neutron uses to
perform the actual software-defined networking. There are
@ -217,32 +302,6 @@ admin_password=<replaceable>NEUTRON_PASS</replaceable></programlisting>
<title>Install the Open vSwitch (OVS) plug-in</title>
<procedure>
<step>
<note os="debian">
<title>Note for Debian users</title>
<para>Debian systems do not have specific plug-in
packages. Instead, the
<literal>neutron-common</literal> package installs
all plug-ins by default. Set an option in the
<filename>debconf</filename> file to choose a
plug-in. The package automatically modifies the
<literal>core_plugin</literal> directive to reflect
your choice. Depending on the value of the
<literal>core_plugin</literal> directive after you
set up the <literal>neutron-common</literal> package,
the init script of the Neutron daemons automatically
chooses which plug-in configuration file to load from
the <filename>/etc/neutron/plugins</filename> folder.
Also, the OpenStack Networking Service is already
configured to be working directly with OVS, so you do
not need to modify the
<filename>/etc/neutron/neutron.conf</filename> file
to work with it (but you might need to edit it if you
wish to use another plug-in).</para>
<para>However, you must set up the OVS bridges manually,
and install the
<literal>neutron-openvswitch-agent</literal> as
follows.</para>
</note>
<para>Install the Open vSwitch plug-in and its
dependencies:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install neutron-plugin-openvswitch-agent openvswitch-switch</userinput></screen>
@ -315,7 +374,7 @@ GATEWAY=EXTERNAL_INTERFACE_GATEWAY</programlisting>
(respectively):</para>
<programlisting language="ini">interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver</programlisting>
</step>
<step>
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Similarly, you must also tell Neutron core to use
<acronym>OVS</acronym> by editing
<filename>/etc/neutron/neutron.conf</filename>:</para>
@ -336,7 +395,7 @@ GATEWAY=EXTERNAL_INTERFACE_GATEWAY</programlisting>
above files again:</para>
<programlisting language="ini" os="rhel;centos">ovs_use_veth = True</programlisting>
</step>
<step>
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Tell the <acronym>OVS</acronym> plug-in how to
connect to the database. To do so, edit the
<filename>/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</filename>
@ -697,7 +756,7 @@ net.ipv4.conf.default.rp_filter=0</programlisting>
linkend="install-neutron.install-plugin-compute"/>.
</para>
</step>
<step>
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Configure the core components of Neutron. Edit the
<filename>/etc/neutron/neutron.conf</filename>
file:</para>
@ -710,7 +769,7 @@ auth_strategy = keystone
rpc_backend = <replaceable>YOUR_RPC_BACKEND</replaceable>
<replaceable>PUT_YOUR_RPC_BACKEND_SETTINGS_HERE_TOO</replaceable></programlisting>
</step>
<step>
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Edit the database URL under the
<literal>[database]</literal> section in the above file,
to tell Neutron how to connect to the database:</para>
@ -734,7 +793,7 @@ admin_password=<replaceable>NEUTRON_PASS</replaceable></programlisting>
the networking plug-in</link>.</para>
</step>
</procedure>
<section xml:id="install-neutron.install-plugin-compute">
<section xml:id="install-neutron.install-plugin-compute">
<title>Install and configure the Neutron plug-ins on a dedicated
compute node</title>
<section xml:id="install-neutron.install-plugin-compute.ovs">
@ -762,7 +821,7 @@ admin_password=<replaceable>NEUTRON_PASS</replaceable></programlisting>
bridge, which connects to the VMs.</para>
<screen><prompt>#</prompt> <userinput>ovs-vsctl add-br br-int</userinput></screen>
</step>
<step>
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Similarly, there are some common configuration
options to be set. You must tell Neutron core to use
<acronym>OVS</acronym>. Edit the
@ -770,7 +829,7 @@ admin_password=<replaceable>NEUTRON_PASS</replaceable></programlisting>
file:</para>
<programlisting language="ini">core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2</programlisting>
</step>
<step>
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Tell the <acronym>OVS</acronym> plug-in how to
connect to the database. Edit the
<filename>/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</filename>

View File

@ -123,7 +123,7 @@
<listitem>
<para>RabbitMQ is running with default guest and its password</para>
</listitem>
<listitem>
<listitem os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>MySQL server (user is <emphasis role="bold">root</emphasis> and
password is <emphasis role="bold">root</emphasis>)</para>
</listitem>
@ -141,7 +141,7 @@
<listitem>
<para>Install the Networking server.</para>
</listitem>
<listitem>
<listitem os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Create database <emphasis role="bold"
>ovs_neutron</emphasis>.</para>
</listitem>
@ -149,7 +149,7 @@
<para>Update the Networking configuration file, <filename>
/etc/neutron/neutron.conf</filename>, with plug-in choice
and Identity Service user as necessary:</para>
<programlisting language="ini">[DEFAULT]
<programlisting language="ini" os="rhel;centos;fedora;opensuse;sles;ubuntu">[DEFAULT]
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
control_exchange = neutron
rabbit_host = controller
@ -159,20 +159,26 @@ notification_driver = neutron.openstack.common.notifier.rabbit_notifier
admin_tenant_name=service
admin_user=neutron
admin_password=<replaceable>NEUTRON_PASS</replaceable>
</programlisting>
<programlisting language="ini" os="debian">[DEFAULT]
control_exchange = neutron
rabbit_host = controller
notification_driver = neutron.openstack.common.notifier.rabbit_notifier
</programlisting>
</listitem>
<listitem>
<listitem os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Update the plug-in configuration file,
<filename>/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</filename>:</para>
<programlisting language="ini">[database]
connection = mysql://root:root@controlnode:3306/ovs_neutron?charset=utf8
[ovs]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
enable_tunneling = True
</programlisting>
</listitem>
<listitem>
<listitem os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Start the Networking server</para>
<para>The Networking server can be a service of the operating
system. The command to start the service depends on your

View File

@ -85,7 +85,7 @@
<listitem>
<para>RabbitMQ is running with default guest and its password</para>
</listitem>
<listitem>
<listitem os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>MySQL server (user is <emphasis role="bold">root</emphasis> and
password is <emphasis role="bold">root</emphasis>)</para>
</listitem>
@ -105,13 +105,16 @@
<listitem>
<para><emphasis role="bold">Controller node - Networking server</emphasis><orderedlist>
<listitem>
<para>Install the Networking server.</para>
<para os="rhel;centos;fedora;opensuse;sles;ubuntu">Install the Networking server.</para>
<para os="debian">Install the Networking server and answer to the
<systemitem class="library">debconf</systemitem> prompts
for configuring the database, the <code>keystone_authtoken</code> and the RabbitMQ credentials.</para>
</listitem>
<listitem>
<listitem os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Create database <emphasis role="bold"
>ovs_neutron</emphasis>.</para>
</listitem>
<listitem>
<listitem os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Update the Networking configuration file, <filename>
/etc/neutron/neutron.conf</filename> setting plugin choice
and Identity Service user as necessary:</para>