Documentation according to new template provided by the Docs team
[fuel.git] / docs / installation-instruction.rst
1 ========================================================================================================
2 OPNFV Installation instruction for the Brahmaputra release of OPNFV when using Fuel as a deployment tool
3 ========================================================================================================
4
5 .. contents:: Table of Contents
6    :backlinks: none
7
8 Abstract
9 ========
10 This document describes how to install the Brahmaputra release of
11 OPNFV when using Fuel as a deployment tool, covering  it's usage,
12 limitations, dependencies and required system resources.
13
14 License
15 =======
16 Brahmaputra release of OPNFV when using Fuel as a deployment tool
17 Docs (c) by Jonas Bjurel (Ericsson AB)
18
19 This document is licensed under a Creative Commons Attribution 4.0
20 International License. You should have received a copy of the license
21 along with this document. If not, see
22 <http://creativecommons.org/licenses/by/4.0/>.
23
24 Introduction
25 ============
26
27 This document provides guidelines on how to install and
28 configure the Brahmaputra release of OPNFV when using Fuel as a
29 deployment tool, including required software and hardware configurations.
30
31 Although the available installation options give a high degree of
32 freedom in how the system is set-up, including architecture, services
33 and features, etc., said permutations may not provide an OPNFV
34 compliant reference architecture. This instruction provides a
35 step-by-step guide that results in an OPNFV Brahmaputra compliant
36 deployment.
37
38 The audience of this document is assumed to have good knowledge in
39 networking and Unix/Linux administration.
40
41 Preface
42 =======
43 Before starting the installation of the Brahmaputra release of
44 OPNFV, using Fuel as a deployment tool, some planning must be
45 done.
46
47 Retrieving the ISO image
48 ------------------------
49
50 First of all, the Fuel deployment ISO image needs to be retrieved, the
51 Fuel .iso image of the Brahmaputra release can be found at <TODO>
52
53 Building the ISO image
54 ----------------------
55
56 Alternatively, you may build the Fuel .iso from source by cloning the
57 opnfv/fuel git repository.  To retrieve the repository for the Brahmaputra
58 release use the following command:
59
60 $git clone https://<linux foundation uid>@gerrit.opnf.org/gerrit/fuel
61
62 Check-out the Brahmaputra release tag to set the branch to the
63 baseline required to replicate the Brahmaputra release:
64
65 $ git checkout stable/<TODO>
66
67 Go to the fuel directory and build the .iso:
68
69 $ cd fuel/build; make all
70
71 For more information on how to build, please see "OPNFV Build
72 instructions for - Brahmaputra release of OPNFV when using Fuel as
73 a deployment tool which you retrieved with the repository at
74 </fuel/fuel/docs/src/build-instructions.rst> <TODO>
75
76 Next, familiarize yourself with Fuel by reading the following documents:
77
78 - Fuel planning guide <https://docs.mirantis.com/openstack/fuel/fuel-7.0/planning-guide.html>
79
80 - Fuel user guide <http://docs.mirantis.com/openstack/fuel/fuel-7.0/user-guide.html>
81
82 - Fuel operations guide <http://docs.mirantis.com/openstack/fuel/fuel-7.0/operations.html>
83
84 - Fuel Plugin Developers Guide <https://wiki.openstack.org/wiki/Fuel/Plugins>
85
86 Prior to installation, a number of deployment specific parameters must be collected, those are:
87
88 #.     Provider sub-net and gateway information
89
90 #.     Provider VLAN information
91
92 #.     Provider DNS addresses
93
94 #.     Provider NTP addresses
95
96 #.     Network overlay you plan to deploy (VLAN, VXLAN, FLAT)
97
98 #.     How many nodes and what roles you want to deploy (Controllers, Storage, Computes)
99
100 #.     Monitoring options you want to deploy (Ceilometer, Syslog, erc.).
101
102 #.     Other options not covered in the document are available in the links above
103
104
105 This information will be needed for the configuration procedures
106 provided in this document.
107
108 Hardware requirements
109 =====================
110
111 The following minimum hardware requirements must be met for the
112 installation of Brahmaputra using Fuel:
113
114 +--------------------+------------------------------------------------------+
115 | **HW Aspect**      | **Requirement**                                      |
116 |                    |                                                      |
117 +--------------------+------------------------------------------------------+
118 | **# of nodes**     | Minimum 5 (3 for non redundant deployment):          |
119 |                    |                                                      |
120 |                    | - 1 Fuel deployment master (may be virtualized)      |
121 |                    |                                                      |
122 |                    | - 3(1) Controllers (1 colocated mongo/ceilometer     |
123 |                    |   role, 2 Ceph-OSD roles)                            |
124 |                    |                                                      |
125 |                    | - 1 Compute (1 co-located Ceph-OSD role)             |
126 |                    |                                                      |
127 +--------------------+------------------------------------------------------+
128 | **CPU**            | Minimum 1 socket x86_AMD64 with Virtualization       |
129 |                    | support                                              |
130 +--------------------+------------------------------------------------------+
131 | **RAM**            | Minimum 16GB/server (Depending on VNF work load)     |
132 |                    |                                                      |
133 +--------------------+------------------------------------------------------+
134 | **Disk**           | Minimum 256GB 10kRPM spinning disks                  |
135 |                    |                                                      |
136 +--------------------+------------------------------------------------------+
137 | **Networks**       | 4 Tagged VLANs (PUBLIC, MGMT, STORAGE, PRIVATE)      |
138 |                    |                                                      |
139 |                    | 1 Un-Tagged VLAN for PXE Boot - ADMIN Network        |
140 |                    |                                                      |
141 |                    | Note: These can be allocated to a single NIC -       |
142 |                    | or spread out over multiple NICs as your hardware    |
143 |                    | supports.                                            |
144 +--------------------+------------------------------------------------------+
145
146 Help with Hardware Requirements
147 ===============================
148
149 Calculate hardware requirements:
150
151 Refer to the OpenStack Hardware Compatibility List:
152 <https://www.mirantis.com/products/openstack-drivers-and-plugins/hardware-compatibility-list/>
153 for more information on various hardware types available for use.
154
155 When choosing the hardware on which you will deploy your OpenStack
156 environment, you should think about:
157
158 - CPU -- Consider the number of virtual machines that you plan to deploy in your cloud environment and the CPU per virtual machine.
159
160 - Memory -- Depends on the amount of RAM assigned per virtual machine and the controller node.
161
162 - Storage -- Depends on the local drive space per virtual machine, remote volumes that can be attached to a virtual machine, and object storage.
163
164 - Networking -- Depends on the Choose Network Topology, the network bandwidth per virtual machine, and network storage.
165
166
167 Top of the rack (TOR) Configuration requirements
168 ================================================
169
170 The switching infrastructure provides connectivity for the OPNFV
171 infrastructure operations, tenant networks (East/West) and provider
172 connectivity (North/South); it also provides needed connectivity for
173 the storage Area Network (SAN).
174 To avoid traffic congestion, it is strongly suggested that three
175 physically separated networks are used, that is: 1 physical network
176 for administration and control, one physical network for tenant private
177 and public networks, and one physical network for SAN.
178 The switching connectivity can (but does not need to) be fully redundant,
179 in such case it comprises a redundant 10GE switch pair for each of the
180 three physically separated networks.
181
182 The physical TOR switches are **not** automatically configured from
183 the Fuel OPNFV reference platform. All the networks involved in the OPNFV
184 infrastructure as well as the provider networks and the private tenant
185 VLANs needs to be manually configured.
186
187 Manual configuration of the Brahmaputra hardware platform should
188 be carried out according to the OPNFV Pharos specification:
189 <https://wiki.opnfv.org/pharos/pharos_specification>
190
191 OPNFV Software installation and deployment
192 ==========================================
193
194 This section describes the installation of the OPNFV installation
195 server (Fuel master) as well as the deployment of the full OPNFV
196 reference platform stack across a server cluster.
197
198 Install Fuel master
199 -------------------
200 #. Mount the Brahmaputra Fuel ISO file/media as a boot device to the jump host server.
201
202 #. Reboot the jump host to establish the Fuel server.
203
204    - The system now boots from the ISO image.
205
206    - Select "Fuel Install (Static IP)" (See figure below)
207
208    - Press [Enter].
209
210    .. figure:: img/grub-1.png
211
212 #. Wait until screen Fuel setup is shown (Note: This can take up to 30 minutes).
213
214 #. In the "Fuel User" section - Confirm/change the default password (See figure below)
215
216    - Enter "admin" in the Fuel password input
217
218    - Enter "admin" in the Confirm password input
219
220    - Select "Check" and press [Enter]
221
222    .. figure:: img/fuelmenu1.png
223
224 #. In the "Network Setup" section - Configure DHCP/Static IP information for your FUEL node - For example, ETH0 is 10.20.0.2/24 for FUEL booting and ETH1 is DHCP in your corporate/lab network (see figure below).
225
226    - Configure eth1 or other network interfaces here as well (if you have them present on your FUEL server).
227
228    .. figure:: img/fuelmenu2.png
229
230 #. In the "PXE Setup" section (see figure below) - Change the following fields to appropriate values (example below):
231
232    - DHCP Pool Start 10.20.0.3
233
234    - DHCP Pool End 10.20.0.254
235
236    - DHCP Pool Gateway  10.20.0.2 (IP address of Fuel node)
237
238    .. figure:: img/fuelmenu3.png
239
240 #. In the "DNS & Hostname" section (see figure below) - Change the following fields to appropriate values:
241
242    - Hostname
243
244    - Domain
245
246    - Search Domain
247
248    - External DNS
249
250    - Hostname to test DNS
251
252    - Select <Check> and press [Enter]
253
254    .. figure:: img/fuelmenu4.png
255
256
257 #. OPTION TO ENABLE PROXY SUPPORT - In the "Bootstrap Image" section (see figure below), edit the following fields to define a proxy. (**NOTE:** cannot be used in tandem with local repository support)
258
259    - Navigate to "HTTP proxy" and enter your http proxy address
260
261    - Select <Check> and press [Enter]
262
263    .. figure:: img/fuelmenu5.png
264
265 #. In the "Time Sync" section (see figure below) - Change the following fields to appropriate values:
266
267    - NTP Server 1 <Customer NTP server 1>
268
269    - NTP Server 2 <Customer NTP server 2>
270
271    - NTP Server 3 <Customer NTP server 3>
272
273    .. figure:: img/fuelmenu6.png
274
275 #. Start the installation.
276
277    - Select Quit Setup and press Save and Quit.
278
279    - Installation starts, wait until the login screen is shown.
280
281
282 Boot the Node Servers
283 ---------------------
284
285 After the Fuel Master node has rebooted from the above steps and is at
286 the login prompt, you should boot the Node Servers (Your
287 Compute/Control/Storage blades (nested or real) with a PXE booting
288 scheme so that the FUEL Master can pick them up for control.
289
290 #. Enable PXE booting
291
292    - For every controller and compute server: enable PXE Booting as the first boot device in the BIOS boot order menu and hard disk as the second boot device in the same menu.
293
294 #. Reboot all the control and compute blades.
295
296 #. Wait for the availability of nodes showing up in the Fuel GUI.
297
298    - Connect to the FUEL UI via the URL provided in the Console (default: https://10.20.0.2:8443)
299
300    - Wait until all nodes are displayed in top right corner of the Fuel GUI: Total nodes and Unallocated nodes (see figure below).
301
302    .. figure:: img/nodes.png
303
304
305 Install additional Plugins/Features on the FUEL node
306 ----------------------------------------------------
307
308 #. SSH to your FUEL node (e.g. root@10.20.0.2  pwd: r00tme)
309
310 #. Select wanted plugins/features from the /opt/opnfv/ directory.
311
312 #. Install the wanted plugin with the command "fuel plugins --install /opt/opnfv/<plugin-name>-<version>.<arch>.rpm"
313    Expected output: "Plugin ....... was successfully installed." (see figure below)
314
315    .. figure:: img/plugin_install.png
316
317 Create an OpenStack Environment
318 -------------------------------
319
320 #. Connect to Fuel WEB UI with a browser (default: https://10.20.0.2:8443) (login admin/admin)
321
322 #. Create and name a new OpenStack environment, to be installed.
323
324    .. figure:: img/newenv.png
325
326 #. Select "<Liberty on Ubuntu 14.04>" and press <Next>
327
328 #. Select "compute virtulization method".
329
330    - Select "QEMU-KVM as hypervisor" and press <Next>
331
332 #. Select "network mode".
333
334    - Select "Neutron with ML2 plugin"
335
336    - Select "Neutron with tunneling segmentation" (Required when using the ODL or ONOS plugins)
337
338    - Press <Next>
339
340 #. Select "Storage Back-ends".
341
342    - Select "Ceph for block storage" and press <Next>
343
344 #. Select "additional services" you wish to install.
345
346    - Check option "Install Celiometer (OpenStack Telemetry)" and press <Next>
347
348 #. Create the new environment.
349
350    - Click <Create> Button
351
352 Configure the network environment
353 ---------------------------------
354
355 #. Open the environment you previously created.
356
357 #. Open the networks tab and select the "default Node Networks group to" on the left pane (see figure below).
358
359    .. figure:: img/network.png
360
361 #. Update the Public network configuration and change the following fields to appropriate values:
362
363    - CIDR to <CIDR for Public IP Addresses>
364
365    - IP Range Start to <Public IP Address start>
366
367    - IP Range End to <Public IP Address end>
368
369    - Gateway to <Gateway for Public IP Addresses>
370
371    - Check <VLAN tagging>.
372
373    - Set appropriate VLAN id.
374
375 #. Update the Storage Network Configuration
376
377    - Set CIDR to appropriate value  (default 192.168.1.0/24)
378
379    - Set IP Range Start to appropriate value (default 192.168.1.1)
380
381    - Set IP Range End to appropriate value (default 192.168.1.254)
382
383    - Set vlan to appropriate value  (default 102)
384
385 #. Update the Management network configuration.
386
387    - Set CIDR to appropriate value (default 192.168.0.0/24)
388
389    - Set IP Range Start to appropriate value (default 192.168.0.1)
390
391    - Set IP Range End to appropriate value (default 192.168.0.254)
392
393    - Check <VLAN tagging>.
394
395    - Set appropriate VLAN id. (default 101)
396
397 #. Update the Private Network Information
398
399    - Set CIDR to appropriate value (default 192.168.2.0/24
400
401    - Set IP Range Start to appropriate value (default 192.168.2.1)
402
403    - Set IP Range End to appropriate value (default 192.168.2.254)
404
405    - Check <VLAN tagging>.
406
407    - Set appropriate VLAN tag (default 103)
408
409 #. Select the "Neutron L3 Node Networks group" on the left pane.
410
411    .. figure:: img/neutronl3.png
412
413 #. Update the Floating Network configuration.
414
415    - Set the Floating IP range start (default 172.16.0.130)
416
417    - Set the Floating IP range end (default 172.16.0.254)
418
419    - Set the Floating network name (default admin_floating_net)
420
421 #. Update the Internal Network configuration.
422
423    - Set Internal network CIDR to an appropriate value (default 192.168.111.0/24)
424
425    - Set Internal network gateway to an appropriate value
426
427    - Set the Internal network name (default admin_internal_net)
428
429 #. Update the Guest OS DNS servers.
430
431    - Set Guest OS DNS Server values appropriately
432
433 #. Save Settings.
434
435 #. Select the "Other Node Networks group" on the left pane(see figure below).
436
437    .. figure:: img/other.png
438
439 #. Update the Public network assignment.
440
441    - Check the box for "Assign public network to all nodes" (Required by OpenDaylight)
442
443 #. Update Host OS DNS Servers.
444
445    - Provide the DNS server settings
446
447 #. Update Host OS NTP Servers.
448
449    - Provide the NTP server settings
450
451 Select Hypervisor type
452 ----------------------
453
454 #. In the FUEL UI of your Environment, click the "Settings" Tab
455
456 #. Select Compute on the left side pane (see figure below)
457
458    - Check the KVM box and press "Save settings"
459
460    .. figure:: img/compute.png
461
462 Enable Plugins
463 --------------
464
465 #. In the FUEL UI of your Environment, click the "Settings" Tab
466
467 #. Select Other on the left side pane (see figure below)
468
469    - Enable and configure the plugins of your choice
470
471    .. figure:: img/plugins.png
472
473 Allocate nodes to environment and assign functional roles
474 ---------------------------------------------------------
475
476 #. Click on the "Nodes" Tab in the FUEL WEB UI (see figure below).
477
478     .. figure:: img/addnodes.png
479
480 #. Assign roles (see figure below).
481
482     - Click on the <+Add Nodes> button
483
484     - Check <Controller>, <Telemetry - MongoDB>  and optionally an SDN Controller role (OpenDaylight controller/ONOS) in the Assign Roles Section.
485
486     - Check one node which you want to act as a Controller from the bottom half of the screen
487
488     - Click <Apply Changes>.
489
490     - Click on the <+Add Nodes> button
491
492     - Check the <Controller> and <Storage - Ceph OSD> roles.
493
494     - Check the two next nodes you want to act as Controllers from the bottom half of the screen
495
496     - Click <Apply Changes>
497
498     - Click on <+Add Nodes> button
499
500     - Check the <Compute> and <Storage - Ceph OSD> roles.
501
502     - Check the Nodes you want to act as Computes from the bottom half of the screen
503
504     - Click <Apply Changes>.
505
506     .. figure:: img/computelist.png
507
508 #. Configure interfaces (see figure below).
509
510     - Check Select <All> to select all allocated nodes
511
512     - Click <Configure Interfaces>
513
514     - Assign interfaces (bonded) for mgmt-, admin-, private-, public-
515       and storage networks
516
517     - Click <Apply>
518
519     .. figure:: img/interfaceconf.png
520
521
522 OPTIONAL - Set Local Mirror Repos
523 ---------------------------------
524
525 The following steps can be executed if you are in an environment with
526 no connection to the Internet. The Fuel server delivers a local repo
527 that can be used for installation / deployment of openstack.
528
529 #. In the Fuel UI of your Environment, click the Settings Tab and select General from the left pane.
530
531    - Replace the URI values for the "Name" values outlined below:
532
533    - "ubuntu" URI="deb http://<ip-of-fuel-server>:8080/ubuntu-part trusty main"
534
535    - "ubuntu-security" URI="deb http://<ip-of-fuel-server>:8080/ubuntu-part trusty main"
536
537    - "ubuntu-updates" URI="deb http://<ip-of-fuel-server>:8080/ubuntu-part trusty main"
538
539    - "mos-updates"  URI="deb http://<ip-of-fuel-server>:8080/mos-ubuntu mos8.0-updates main restricted"
540
541    - "mos-security" URI="deb http://<ip-of-fuel-server>:8080/mos-ubuntu mos8.0-security main restricted"
542
543    - "mos-holdback" URI="deb http://<ip-of-fuel-server>:8080/mos-ubuntu mos8.0-holdback main restricted"
544
545    - Click <Save Settings> at the bottom to Save your changes
546
547 Verify Networks
548 ---------------
549
550 It is important that the Verify Networks action is performed as it will verify
551 that communicate works for the networks you have setup, as well as check that
552 packages needed for a successful deployment can be fetched.
553
554 #. From the FUEL UI in your Environment, Select the Networks Tab and select "Connectivity check" on the left pane (see figure below)
555
556    - Select <Verify Networks>
557
558    - Continue to fix your topology (physical switch, etc) until the "Verification Succeeded" and "Your network is configured correctly" message is shown
559
560    .. figure:: img/verifynet.png
561
562
563 Deploy Your Environment
564 -----------------------
565
566 38. Deploy the environment.
567
568     - In the Fuel GUI, click on the "Dashboard" Tab.
569
570     - Click on <Deploy Changes> in the "Ready to Deploy?" section
571
572     - Examine any information notice that pops up and click <Deploy>
573
574     Wait for your deployment to complete, you can view the "Dashboard"
575     Tab to see the progress and status of your deployment.
576
577 Installation health-check
578 =========================
579
580 #. Perform system health-check (see figure below)
581
582     - Click the "Health Check" tab inside your Environment in the FUEL Web UI
583
584     - Check <Select All> and Click <Run Tests>
585
586     - Allow tests to run and investigate results where appropriate
587
588     .. figure:: img/health.png
589
590 References
591 ==========
592
593 OPNFV
594 -----
595
596 `OPNFV Home Page <www.opnfv.org>`_
597
598 OpenStack
599 ---------
600
601 `OpenStack Liberty Release artifacts <http://www.openstack.org/software/liberty>`_
602
603 `OpenStack documentation <http://docs.openstack.org>`_
604
605 OpenDaylight
606 ------------
607
608 `OpenDaylight artifacts <http://www.opendaylight.org/software/downloads>`_
609
610 Fuel
611 ----
612
613 `Fuel documentation <https://wiki.openstack.org/wiki/Fuel>`_