summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiruna Paun <Miruna.Paun@enea.com>2018-09-18 17:16:13 +0200
committerMiruna Paun <Miruna.Paun@enea.com>2018-09-18 17:16:13 +0200
commit5b64df00a64989d746b759b6bc09f453652bda24 (patch)
treeba3159c74861ed4f74589a026345dee5d1407b81
parentbe1c9f7a7abfb624cb741986283bd004d784988a (diff)
downloaddoc-enea-nfv-5b64df00a64989d746b759b6bc09f453652bda24.tar.gz
USERDOCAP-351 Adding a new chapter Provider Scripts to the UG
-rw-r--r--book-enea-nfv-core-installation-guide/doc/book.xml1
-rw-r--r--book-enea-nfv-core-installation-guide/doc/provider_scripts.xml177
2 files changed, 178 insertions, 0 deletions
diff --git a/book-enea-nfv-core-installation-guide/doc/book.xml b/book-enea-nfv-core-installation-guide/doc/book.xml
index 6744769..0308e84 100644
--- a/book-enea-nfv-core-installation-guide/doc/book.xml
+++ b/book-enea-nfv-core-installation-guide/doc/book.xml
@@ -16,5 +16,6 @@
16 <xi:include href="tacker.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 16 <xi:include href="tacker.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
17 <xi:include href="high_availability.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 17 <xi:include href="high_availability.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
18 <xi:include href="mixed_arch.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 18 <xi:include href="mixed_arch.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
19 <xi:include href="provider_scripts.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
19<!-- <xi:include href="use_cases_per_target_node.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> --> 20<!-- <xi:include href="use_cases_per_target_node.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
20</book> 21</book>
diff --git a/book-enea-nfv-core-installation-guide/doc/provider_scripts.xml b/book-enea-nfv-core-installation-guide/doc/provider_scripts.xml
new file mode 100644
index 0000000..2ba9b39
--- /dev/null
+++ b/book-enea-nfv-core-installation-guide/doc/provider_scripts.xml
@@ -0,0 +1,177 @@
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4<chapter id="provider_scripts">
5 <title>Provider Scripts</title>
6
7 <para>INSERT INTRO TEXT HERE AND REPLACE THIS</para>
8
9 <section id="provider_net">
10 <title>Provider Networks</title>
11
12 <para>For the best results it is recommended to run this playbook as soon
13 as the deploy+provision segments in Fuel successfully finish or if there
14 are no modifications made to the networking/neutron/openvswitch components
15 on the POD.</para>
16
17 <para>Things to consider:</para>
18
19 <itemizedlist>
20 <listitem>
21 <para>All node types (computes and controllers) are viable and can
22 sustain a provider network.</para>
23 </listitem>
24
25 <listitem>
26 <para>DPDK is not mandatory. If a DPDK is not detected on a node, the
27 interface type will be <literal>OVSPort</literal> for the provider
28 network bridge, therefore DPDK is not checked during the pre-run
29 Ansible stages.</para>
30 </listitem>
31 </itemizedlist>
32
33 <para><emphasis role="bold">How to run the Provider Networks
34 Playbook</emphasis></para>
35
36 <orderedlist>
37 <listitem>
38 <para>Log into the Fuel master.</para>
39 </listitem>
40
41 <listitem>
42 <para>Install ansible: <programlisting>yum install ansible</programlisting></para>
43 </listitem>
44
45 <listitem>
46 <para>Run the initial script: <programlisting>&gt; cd /opt/enea/postdeployscripts/provider-net
47&gt; ./init.sh</programlisting></para>
48
49 <para>This will create a hosts file that will be used by Ansible to
50 associate the nodes into groups and to access them. It will also
51 create a file named <filename>samplenetworks.json</filename>, which
52 will contain a single network in which all nodes (computes and
53 controllers) are plugged in.</para>
54
55 <para>The <filename>samplenetworks.json</filename> file will have the
56 following content:<programlisting> {
57 "networks": [
58 {
59 "name": "prov-net",
60 "nodes": [
61 {
62 "interfaces": [],
63 "name": "node-1"
64 },
65 [...] # all other controller and compute nodes: node-X
66 ]
67 }
68 }</programlisting></para>
69
70 <note>
71 <para>The interface list is empty and has to be populated by the
72 user. If the interface lists are left empty the node will simply not
73 be processed, though it will attempt to pass any checks.</para>
74 </note>
75
76 <para>To use this file the user has to copy its contents into the
77 following location:<programlisting>mv samplenetworks.json /opt/enea/postdeployscripts/provider-net/files/networks.json</programlisting></para>
78 </listitem>
79
80 <listitem>
81 <para>Populate the <filename>networks.json</filename> file which is
82 located in
83 <literal>/opt/enea/postdeployscripts/provider-net/files/networks.json</literal>.</para>
84
85 <para>The <filename>networks.json</filename> file will be used in the
86 playbook to know which interfaces on which nodes are used in which
87 networks. Various checks are in place to minimize user error.</para>
88
89 <para>Below you can see a sample <filename>networks.json</filename>
90 file, similar to step 2, with some interfaces
91 included:<programlisting> {
92 "networks":[
93 {
94 "name":"prov-net",
95 "nodes":[
96 {
97 "name":"node-4",
98 "interfaces":[
99 "em2p1s0f5"
100 ]
101 },
102 {
103 "name":"node-5",
104 "interfaces":[
105 "em2p1s0f5"
106 ]
107 }
108 ]
109 }
110 ]
111 }</programlisting>The snippet shown above infers the following:</para>
112
113 <itemizedlist>
114 <listitem>
115 <para>There is a provider network named
116 <filename>prov-net</filename>.</para>
117 </listitem>
118
119 <listitem>
120 <para>Two nodes (node-4 and node-5) are connected to this
121 network.</para>
122 </listitem>
123
124 <listitem>
125 <para>Each of these nodes have an interface plugged into said
126 network.</para>
127 </listitem>
128 </itemizedlist>
129
130 <para>All of these components are <literal>lists</literal>, and can be
131 scaled accordingly, making it possible for there to be potentially X
132 networks with Y nodes with Z interfaces.</para>
133
134 <para>Make sure to check the following before the
135 <filename>networks.json</filename> file is populated:</para>
136
137 <itemizedlist>
138 <listitem>
139 <para>Check that the node names in the file match the actual
140 hostnames of the nodes.</para>
141 </listitem>
142
143 <listitem>
144 <para>Check that the interfaces on the nodes in the file match the
145 ones on the actual machines and aren't using the DPDK
146 driver.</para>
147 </listitem>
148 </itemizedlist>
149 </listitem>
150
151 <listitem>
152 <para>Run the playbook:<programlisting>ansible-playbook deploy.yaml</programlisting><literal><filename>deploy.yaml</filename></literal>
153 is located:
154 <literal>/opt/enea/postdeployscripts/provider-net/deploy.yaml</literal>.</para>
155
156 <note>
157 <para>After the playbook is executed the nodes will be
158 rebooted.</para>
159 </note>
160
161 <para>On the processed nodes there should be new OVS bridges with the
162 following interface(s):<programlisting>Bridge br-prov-net
163 Controller "tcp:127.0.0.1:6633"
164 is_connected: true
165 fail_mode: secure
166 Port phy-br-prov-net
167 Interface phy-br-prov-net
168 type: patch
169 options: {peer=int-br-prov-net}
170 Port br-prov-net
171 Interface br-prov-net
172 type: internal
173 ovs_version: "2.9.0"</programlisting></para>
174 </listitem>
175 </orderedlist>
176 </section>
177</chapter> \ No newline at end of file