diff options
author | Miruna Paun <Miruna.Paun@enea.com> | 2018-09-18 17:16:13 +0200 |
---|---|---|
committer | Miruna Paun <Miruna.Paun@enea.com> | 2018-09-18 17:16:13 +0200 |
commit | 5b64df00a64989d746b759b6bc09f453652bda24 (patch) | |
tree | ba3159c74861ed4f74589a026345dee5d1407b81 /book-enea-nfv-core-installation-guide/doc | |
parent | be1c9f7a7abfb624cb741986283bd004d784988a (diff) | |
download | doc-enea-nfv-5b64df00a64989d746b759b6bc09f453652bda24.tar.gz |
USERDOCAP-351 Adding a new chapter Provider Scripts to the UG
Diffstat (limited to 'book-enea-nfv-core-installation-guide/doc')
-rw-r--r-- | book-enea-nfv-core-installation-guide/doc/book.xml | 1 | ||||
-rw-r--r-- | book-enea-nfv-core-installation-guide/doc/provider_scripts.xml | 177 |
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>> cd /opt/enea/postdeployscripts/provider-net | ||
47 | > ./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 | ||