From ac32f3ac9482eeeb3263bee51c097cb040eda0b5 Mon Sep 17 00:00:00 2001 From: Thomas Goirand Date: Fri, 1 Nov 2013 14:44:34 +0800 Subject: [PATCH] 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 --- .../neutron_1_plugin_selection.png | Bin 0 -> 49734 bytes .../neutron_2_networking_type.png | Bin 0 -> 24859 bytes .../neutron_3_hypervisor_ip.png | Bin 0 -> 11068 bytes doc/install-guide/section_neutron-install.xml | 189 ++++++++++++------ ...r-tenant-routers-with-private-networks.xml | 16 +- .../section_neutron-single-flat.xml | 11 +- 6 files changed, 142 insertions(+), 74 deletions(-) create mode 100644 doc/install-guide/figures/debconf-screenshots/neutron_1_plugin_selection.png create mode 100644 doc/install-guide/figures/debconf-screenshots/neutron_2_networking_type.png create mode 100644 doc/install-guide/figures/debconf-screenshots/neutron_3_hypervisor_ip.png diff --git a/doc/install-guide/figures/debconf-screenshots/neutron_1_plugin_selection.png b/doc/install-guide/figures/debconf-screenshots/neutron_1_plugin_selection.png new file mode 100644 index 0000000000000000000000000000000000000000..27b5e75835a5405a33418afa28816baed1382016 GIT binary patch literal 49734 zcmagG1yozz*C$L%k>aHVikDIf6n8DOxKrGrxVw9cJH?AjaCdhI?iSqLf(Ake3_Q>O z{pOol^Uh?gth??#H|N~#`?vSG3H>1_j)_KuhJb*8DJdbMh=A~N@9FD-iu`mX{P9@j z>F~-?NKzT~>EnfJ6!LUV=p?G{q-1O2jXyZ5I{iq zfFLRIUD++|c*WJ}-Rx55IrudHMu>=l!s+Fd$`27<#aG`wz@nlr@?JlD`yTTpEa%rt zzmH)dSxmCuQbIz)Fkgv$vk($OJ6JHffm53F#9Fy<3&mSU2OSsd!*@~AsiQ>u{3lF5uVLABoc8ysdMD@ww#)?OM9w{TY+=| zI2H?amIS1{PTxvqQ>@1a27azIUq_IAMT-=RvlZlVWDKBr!vraQ-FcKco+$Hzh@r0d z?g!V5KMs@la(bQ70cLKlu>%ip!rB}2MSYVcL5K&tu2_l=8?yquFxpCJC{;>Q zw@hZM>gMRBL&A{HQ1E~n)(CKg{^zQmF`Gm=IED(pv;6Uy1Y^yKH&dx!_ zRd>>Cf3Ap#W2Lq?{XWRuwtU0N>5E*(cW&OJ3G;Nb>t0kbXKRTPEX-R|puNG%izK~R zM;*!86}rZcSVY`4_T*R@)*}Kn{Y|hjH^i5I=(2hShGM7`R?Kc^A8bU{*6*&5MAjO= z%gA6%PELx5i(kUXebrYwgoCj#NVq#|nb#^e-j1d54BK|VgLErUIwvP%)b_>(8<nYjQM6oXpBBv5%VlZxyzC43T%DbBS-3 zJ!qAGksmiR*LEQzt>%Nx{U2Nm|D9J2Im->EtgW1rHCuCI11`5V{nuh+Q_)tSh5_p;TFM0b7iJ% zf$!8Ae~BG+8u~;T^?`SdEI6G%mZS=J7N%hDJ>I-bx1bA9N|$pmHaL_THo|+C|P>3!tm@s%*qmv z{Q>?7@|E#G+{VZwJyv?EQoGxcnhRqM3uOQfaASS_o1GnVSC_jloX*M~iwFIxNGZS4 z5@chu+G@Ud3I>n2w|N#S4_@4VdbTssYWSgO&bZFUMtkbJMm`67(8twf&(~`~fQM9Z ziA~Hk3DBh!GjvoFW`7bFVkXiK9J{|_KfHU9C485J^&Q^j@&HFe9lt(47FUk z6Wg9XbvY^o1r9yg5iHVVqtRRDxu~aFzHJaWY~P-KKjzbdW{TbMa!-H!k7lFU`Z0kX zz~07>lWOcrqhmup+wr=et?>;xL+Y;*JxV!S-(X&Aa+R6({%Sq&+!ieafke4n#UA(ksv{6r`)k<|HOi2G;~|0_?k%Mm!%vL3drJ9 zrf#4qz!cSPps9AlK@5NPQQDVRMSgU(XXN7Y>>RPvY^3jx_t&*$)yJwgS%V8}lXaiX z_duHqS4Cbdc*;q!g?!)QGT1IpGLPCH9}FrFmW~=hM{!K``Q9dfbuCHw2j$>+@@pAk zi|k2n%%+^P7GS}5l|pD9eu@^?Z%V3T*3~a%yzU6@IoFvzY|o zkp7?9#a6qEgJYNF#MMfb`~s+hD3 zza>8Z#dq#oW;8JKI80FC=}(N*r=|KNV*8t#9sH0Vx7Ik}TQ`CaKkvfXn28)8j;L<# zE=*)oS?#Aj)%fBD`Vs8^62aWsWS>} z5rQA204Bn&%^eR|ZyxvU&z**oOu(5%5jMwNognJV>xCbObHh#TwvSqtle{3{G}kZ3 zWHF*fvwe-})O6o`1wbg@imnb2aNs_zAxcepouY#D;bHqR+c}ImbtzxQ4Q($3R`_NE zsdJS}4d5Ks`!vB@T4b{GnX3I0ByD!(kG+pkHFZ9}sT6NmqD2uZEpC8bqbIw>0R^f( zfjU|fP3#oxG@tZ{q)nj-wdVTJckvZ*!bAnJY(;N*5`jz{dw%6F#ZXAwPkAAa_*!uQ9Dzi7X9p8er^a6aai=;Ig=|^8HoP!di>P<6yu!^=VRp3d6Rc2p8X7`BLsEt z#abFnCHU(dw|;{+1e&744RQ17N~R%nUGuXw z(cDI;$?B)o2>r``+nQ513?Es~xF@CBP|9XEJ03%f>#sbAgBSknOCJTr+#VP}PqC@V z+$&!WgDU#FR$dE37*>7vut~gHQqw7XYIRJjugyjDItK0{hoSdw7!Qv-9XCfZ+C(i% zlsQCik|on%a8n;t8<_$-Yy?&|9jV;YhYTLr{XNif#)_@4w5=yq1$n*XB*`AbR{vba z@%vJIt@(pj>5iwrJST9v@(X*BLSQ|GPi{eO3=TPPEm*MNBz_RO$uRunof~0A?w^$Z(?iJA8FIakJ1EEL)!}MEfr{zzT|s=9ouum z*td1OoPE>4N&3$Skz;sjnPDQeDH6aT_hFz;|HEcF5WUfv4b9)5I)mb-ifV%ZA&o>j z{}k!uQZK%?Z2jBRXy!a|=J#s|$GOvJlM^7z8*R~~OcuN>Zr*MR*n+w&;cnV!Q!?

Zmv+ezOCOB*HUwf$0VV`U1u(k}d)95gq<>-2TXOiECOZg~^AHHd zqltr@T;OREe^arrt%(SjwAc4+8ywDL(7G57@%2y7_hzouu}D3Vw7AOuB*%t)-;1hI z6TSb4dt$+;)Ny))Y|cf|+cscjzuIii?a9@qqgsVZaq7^*j=b#TkyeMyPK4>w#)$f;V+tpQvO+MK+-C-9e4t{LSt2^P$gfO@a*E86u| zQG#SvVH{Cnj%3yE!@u&hTD_zLSWYxZ+uj8QzS-YF`!zS%Fk-M+3q{W$`dTb<0V!rr zE=y&V1-INBn9d1CWn@q(+I&BD|A(PD`(drzHxLNplxbcbH_LJpxTt0?j5vz0%n;SE z#G}gRn(0iHZyJ(YLhi`1>W^*3!J_JH4b|yTivL1xJNR7;w6lu0j17uU0Y0P`>>e44J4Mc1^EQ{-XAT1EInfyJ~B|)`%O4c^wMHXk1%U?q9Y) zpO1?>m|G6ceB>6M8GWTqC&FwtMdC3t4yCH77xO5 z&VEV6P~Q&uW^r^C{9OdfRqdeDHaz+?ej?$Y42!j1@nb8^KUVq`6h;tc$&Lp`PAO3# zQ}zyP7P^_uf5%cC?>@3Y)%;S&3>PYCx%V%9^m%H3;vN|uvRE&Y6bCDJe%~|G{ELV| zc8=kEG?TCShtK!aHyT>eI{Y@XtxzgGp;FaU`g%x)NAw3^ke-Y!u#tStbg?Czkp028 zmB)@>p?`HR4++e?ez^c08kXS+^}J<^IGM<_=(0%@XbfwrXcvx_eMCgF-HOe*(mc-@ zK}sI%u=lOth)CO%->hRRO%_brQ&rvbFE}j1YkyLD1rz0#-Q`i~g>I7do&;()j{}q$ zyK#-)Izsl}cs&FNhYVxjh;bkr*dahgFU{oYV%+Rad<_Hh2a!65gel(J3mI#2)$#{S z{JKv&cc$6{SnFjLy7)J=r7I-bAK$A1<5c=>DsxptbFgi*q}I;ap?63Ek#hPHm3$rL zJl|&pDvH!l3cdx&{{>DIY;wEo7 zH3&&lxL7@HC&bSeH;!7X+>x%ANofZ{+M`o-8;&^wc`Q-hwUpQYU~LDNs+D)GEWZ5d z<@K@EGayFCaj`%#>GginO`ZB~<*K{0PhmR`tBKqg>j98#FUYc~R7u6~G zQap6r_gmP8!kG2E{I@ukzz6eH&6cmcz4_%X`vs=?FY7#=MjH*DUFEZ#HuXGZ

CfhaB3p6yfmeet&_E0z$ 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 S0T;Xi0B@y~fHe|^LH`HLQL(Q8 literal 0 HcmV?d00001 diff --git a/doc/install-guide/section_neutron-install.xml b/doc/install-guide/section_neutron-install.xml index 765032a681..e6b4168533 100644 --- a/doc/install-guide/section_neutron-install.xml +++ b/doc/install-guide/section_neutron-install.xml @@ -6,28 +6,112 @@ xmlns:svg="http://www.w3.org/2000/svg" xmlns:html="http://www.w3.org/1999/xhtml" version="5.0"> Install Networking Services - Before you configure individual nodes for Neutron, you must + When you install a Neutron node, you must configure it + for API endpoints, RabbitMQ, keystone_authtoken, and the database. + This is done through debconf, like for the rest of OpenStack, + when installing any package for the Networking service. + When installing a Neutron package, debconf + will prompt you to choose configuration options including the plug-in to use: + + + + + + This parameter sets the for the core_plugin option value in the + /etc/neutron/neutron.conf file. + When you install the neutron-common package, + all plug-ins are installed by default. + The following table lists the values for the + core_plugin option. These values depend on your + answer to the debconf prompt. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Plug-ins and the core_plugin option
Plug-in namecore_plugin value in neutron.conf
OpenVSwitchneutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
LinuxBridgeneutron.plugins.linuxbridge.lb_neutron_plugin.LinuxBridgePluginV2
ml2neutron.plugins.ml2.plugin.Ml2Plugin
RYUneutron.plugins.ryu.ryu_neutron_plugin.RyuNeutronPluginV2
PLUMgridneutron.plugins.plumgrid.plumgrid_nos_plugin.plumgrid_plugin.NeutronPluginPLUMgridV2
Brocadeneutron.plugins.brocade.NeutronPlugin.BrocadePluginV2
Hyper-Vneutron.plugins.hyperv.hyperv_neutron_plugin.HyperVNeutronPlugin
BigSwitchneutron.plugins.bigswitch.plugin.NeutronRestProxyV2
Cisconeutron.plugins.cisco.network_plugin.PluginV2
Midonetneutron.plugins.midonet.plugin.MidonetPluginV2
Necneutron.plugins.nec.nec_plugin.NECPluginV2
MetaPluginneutron.plugins.metaplugin.meta_neutron_plugin.MetaPluginV2
Mellanoxneutron.plugins.mlnx.mlnx_plugin.MellanoxEswitchPlugin
+ Depending on the value of core_plugin, 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 neutron-server will be launched with + --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini + automatically. + The neutron-common package + also prompt you for the default network configuration that you wish to use: + + + + + + + + + + + + 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. - - Note for Debian users - As for the rest of OpenStack, you must configure Networking - Services through the debconf 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: - # dpkg-reconfigure -plow neutron-common - 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: - # apt-get install dbconfig-common && \ - dpkg-reconfigure -plow dbconfig-common - - + @@ -112,8 +196,13 @@ IDENTIFIED BY 'NEUTRON_DBPASS'; # yum install openstack-neutron # zypper install openstack-neutron openstack-neutron-l3-agent openstack-neutron-dhcp-agent - - Make sure basic Neturon-related service are set to start at boot time: + + Answer the debconf prompts about the database setup, the + [keystone_authtoken], the RabbitMQ credentials, + and the API endpoing configuration. + + + Make sure basic Neutron-related service are set to start at boot time: # for s in neutron-{dhcp,l3}-agent; do chkconfig $s on; done @@ -132,16 +221,8 @@ net.ipv4.conf.default.rp_filter=0 # service networking restart # service network restart - - Note for Debian users - Because this configuration is automated in the Debian - packages through debconf, you do not need to manually - configure the [keystone_authtoken], the - [database] , or the RabbitMQ sections - of the Neutron configuration files. - - + Configure the core networking components. Edit the /etc/neutron/neutron.conf file and copying the following under the @@ -154,14 +235,14 @@ admin_tenant_name = service admin_user = neutron admin_password = NEUTRON_PASS - + Tell Neutron how to connect to the database by editing [database] section in the same file: [database] connection = mysql://neutron:NEUTRON_DBPASS@controller/neutron - + Edit the /etc/neutron/api-paste.ini file by copying the following statements under [filter:authtoken] section: @@ -173,7 +254,11 @@ admin_user=neutron admin_tenant_name=service admin_password=NEUTRON_PASS - + Make sure you have configured your network + plug-in throughout the instructions + for it in the linked section, and then return here. + + 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=NEUTRON_PASS Install the Open vSwitch (OVS) plug-in - - Note for Debian users - Debian systems do not have specific plug-in - packages. Instead, the - neutron-common package installs - all plug-ins by default. Set an option in the - debconf file to choose a - plug-in. The package automatically modifies the - core_plugin directive to reflect - your choice. Depending on the value of the - core_plugin directive after you - set up the neutron-common package, - the init script of the Neutron daemons automatically - chooses which plug-in configuration file to load from - the /etc/neutron/plugins folder. - Also, the OpenStack Networking Service is already - configured to be working directly with OVS, so you do - not need to modify the - /etc/neutron/neutron.conf file - to work with it (but you might need to edit it if you - wish to use another plug-in). - However, you must set up the OVS bridges manually, - and install the - neutron-openvswitch-agent as - follows. - Install the Open vSwitch plug-in and its dependencies: # apt-get install neutron-plugin-openvswitch-agent openvswitch-switch @@ -315,7 +374,7 @@ GATEWAY=EXTERNAL_INTERFACE_GATEWAY (respectively): interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver - + Similarly, you must also tell Neutron core to use OVS by editing /etc/neutron/neutron.conf: @@ -336,7 +395,7 @@ GATEWAY=EXTERNAL_INTERFACE_GATEWAY above files again:
ovs_use_veth = True - + Tell the OVS plug-in how to connect to the database. To do so, edit the /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini @@ -697,7 +756,7 @@ net.ipv4.conf.default.rp_filter=0 linkend="install-neutron.install-plugin-compute"/>. - + Configure the core components of Neutron. Edit the /etc/neutron/neutron.conf file: @@ -710,7 +769,7 @@ auth_strategy = keystone rpc_backend = YOUR_RPC_BACKEND PUT_YOUR_RPC_BACKEND_SETTINGS_HERE_TOO - + Edit the database URL under the [database] section in the above file, to tell Neutron how to connect to the database: @@ -734,7 +793,7 @@ admin_password=NEUTRON_PASS the networking plug-in. -

+
Install and configure the Neutron plug-ins on a dedicated compute node
@@ -762,7 +821,7 @@ admin_password=NEUTRON_PASS bridge, which connects to the VMs. # ovs-vsctl add-br br-int - + Similarly, there are some common configuration options to be set. You must tell Neutron core to use OVS. Edit the @@ -770,7 +829,7 @@ admin_password=NEUTRON_PASS file: core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2 - + Tell the OVS plug-in how to connect to the database. Edit the /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini diff --git a/doc/install-guide/section_neutron-per-tenant-routers-with-private-networks.xml b/doc/install-guide/section_neutron-per-tenant-routers-with-private-networks.xml index abb56992cc..99bfb92bef 100644 --- a/doc/install-guide/section_neutron-per-tenant-routers-with-private-networks.xml +++ b/doc/install-guide/section_neutron-per-tenant-routers-with-private-networks.xml @@ -123,7 +123,7 @@ RabbitMQ is running with default guest and its password - + MySQL server (user is root and password is root) @@ -141,7 +141,7 @@ Install the Networking server. - + Create database ovs_neutron. @@ -149,7 +149,7 @@ Update the Networking configuration file, /etc/neutron/neutron.conf, with plug-in choice and Identity Service user as necessary: - [DEFAULT] + [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=NEUTRON_PASS + + [DEFAULT] +control_exchange = neutron +rabbit_host = controller +notification_driver = neutron.openstack.common.notifier.rabbit_notifier - + Update the plug-in configuration file, /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.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 - + Start the Networking server The Networking server can be a service of the operating system. The command to start the service depends on your diff --git a/doc/install-guide/section_neutron-single-flat.xml b/doc/install-guide/section_neutron-single-flat.xml index 10d6964be8..2c3fe3e41c 100644 --- a/doc/install-guide/section_neutron-single-flat.xml +++ b/doc/install-guide/section_neutron-single-flat.xml @@ -85,7 +85,7 @@ RabbitMQ is running with default guest and its password - + MySQL server (user is root and password is root) @@ -105,13 +105,16 @@ Controller node - Networking server - Install the Networking server. + Install the Networking server. + Install the Networking server and answer to the + debconf prompts + for configuring the database, the keystone_authtoken and the RabbitMQ credentials. - + Create database ovs_neutron. - + Update the Networking configuration file, /etc/neutron/neutron.conf setting plugin choice and Identity Service user as necessary: