Merge "build: Allow MIRROR_MOS_UBUNTU override" into stable/colorado
[fuel.git] / docs / installationprocedure / installation.instruction.rst
1 ========================================================================================================
2 OPNFV Installation instruction for the Colorado release of OPNFV when using Fuel as a deployment tool
3 ========================================================================================================
4
5 License
6 =======
7
8 This work is licensed under a Creative Commons Attribution 4.0 International
9 License. .. http://creativecommons.org/licenses/by/4.0 ..
10 (c) Jonas Bjurel (Ericsson AB) and others
11
12 Abstract
13 ========
14
15 This document describes how to install the Colorado release of
16 OPNFV when using Fuel as a deployment tool, covering  it's usage,
17 limitations, dependencies and required system resources.
18
19 Introduction
20 ============
21
22 This document provides guidelines on how to install and
23 configure the Colorado release of OPNFV when using Fuel as a
24 deployment tool, including required software and hardware configurations.
25
26 Although the available installation options give a high degree of
27 freedom in how the system is set-up, including architecture, services
28 and features, etc., said permutations may not provide an OPNFV
29 compliant reference architecture. This instruction provides a
30 step-by-step guide that results in an OPNFV Colorado compliant
31 deployment.
32
33 The audience of this document is assumed to have good knowledge in
34 networking and Unix/Linux administration.
35
36 Preface
37 =======
38 Before starting the installation of the Colorado release of
39 OPNFV, using Fuel as a deployment tool, some planning must be
40 done.
41
42 Retrieving the ISO image
43 ------------------------
44
45 First of all, the Fuel deployment ISO image needs to be retrieved, the
46 Fuel .iso image of the Colorado release can be found at *Reference: 2*
47
48 Building the ISO image
49 ----------------------
50
51 Alternatively, you may build the Fuel .iso from source by cloning the
52 opnfv/fuel git repository.  To retrieve the repository for the Colorado release use the following command:
53
54 .. code-block:: bash
55
56     $ git clone https://gerrit.opnfv.org/gerrit/fuel
57
58 Check-out the Colorado release tag to set the HEAD to the
59 baseline required to replicate the Colorado release:
60
61 .. code-block:: bash
62
63     $ git checkout colorado.1.0
64
65 Go to the fuel directory and build the .iso:
66
67 .. code-block:: bash
68
69     $ cd fuel/build; make all
70
71 For more information on how to build, please see *Reference: 14*
72
73 Other preparations
74 ------------------
75
76 Next, familiarize yourself with Fuel by reading the following documents:
77
78 - Fuel Installation Guide, please see *Reference: 8*
79
80 - Fuel User Guide, please see *Reference: 9*
81
82 - Fuel Developer Guide, please see *Reference: 10*
83
84 - Fuel Plugin Developers Guide, please see *Reference: 11*
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 Colorado 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 For information on compatible hardware types available for use, please see *Reference: 11*.
152
153 When choosing the hardware on which you will deploy your OpenStack
154 environment, you should think about:
155
156 - CPU -- Consider the number of virtual machines that you plan to deploy in your cloud environment and the CPU per virtual machine.
157
158 - Memory -- Depends on the amount of RAM assigned per virtual machine and the controller node.
159
160 - Storage -- Depends on the local drive space per virtual machine, remote volumes that can be attached to a virtual machine, and object storage.
161
162 - Networking -- Depends on the Choose Network Topology, the network bandwidth per virtual machine, and network storage.
163
164
165 Top of the rack (TOR) Configuration requirements
166 ================================================
167
168 The switching infrastructure provides connectivity for the OPNFV
169 infrastructure operations, tenant networks (East/West) and provider
170 connectivity (North/South); it also provides needed connectivity for
171 the Storage Area Network (SAN).
172 To avoid traffic congestion, it is strongly suggested that three
173 physically separated networks are used, that is: 1 physical network
174 for administration and control, one physical network for tenant private
175 and public networks, and one physical network for SAN.
176 The switching connectivity can (but does not need to) be fully redundant,
177 in such case it comprises a redundant 10GE switch pair for each of the
178 three physically separated networks.
179
180 The physical TOR switches are **not** automatically configured from
181 the Fuel OPNFV reference platform. All the networks involved in the OPNFV
182 infrastructure as well as the provider networks and the private tenant
183 VLANs needs to be manually configured.
184
185 Manual configuration of the Colorado hardware platform should
186 be carried out according to the OPNFV Pharos specification:
187 <https://wiki.opnfv.org/pharos/pharos_specification>
188
189 OPNFV Software installation and deployment
190 ==========================================
191
192 This section describes the installation of the OPNFV installation
193 server (Fuel master) as well as the deployment of the full OPNFV
194 reference platform stack across a server cluster.
195
196 Install Fuel master
197 -------------------
198 #. Mount the Colorado Fuel ISO file/media as a boot device to the jump host server.
199
200 #. Reboot the jump host to establish the Fuel server.
201
202    - The system now boots from the ISO image.
203
204    - Select "Fuel Install (Static IP)" (See figure below)
205
206    - Press [Enter].
207
208    .. figure:: img/grub-1.png
209
210 #. Wait until screen Fuel setup is shown (Note: This can take up to 30 minutes).
211
212 #. In the "Fuel User" section - Confirm/change the default password (See figure below)
213
214    - Enter "admin" in the Fuel password input
215
216    - Enter "admin" in the Confirm password input
217
218    - Select "Check" and press [Enter]
219
220    .. figure:: img/fuelmenu1.png
221
222 #. 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).
223
224    - Configure eth1 or other network interfaces here as well (if you have them present on your FUEL server).
225
226    .. figure:: img/fuelmenu2.png
227
228 #. In the "PXE Setup" section (see figure below) - Change the following fields to appropriate values (example below):
229
230    - DHCP Pool Start 10.20.0.3
231
232    - DHCP Pool End 10.20.0.254
233
234    - DHCP Pool Gateway  10.20.0.2 (IP address of Fuel node)
235
236    .. figure:: img/fuelmenu3.png
237
238 #. In the "DNS & Hostname" section (see figure below) - Change the following fields to appropriate values:
239
240    - Hostname
241
242    - Domain
243
244    - Search Domain
245
246    - External DNS
247
248    - Hostname to test DNS
249
250    - Select <Check> and press [Enter]
251
252    .. figure:: img/fuelmenu4.png
253
254
255 #. 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)
256
257    - Navigate to "HTTP proxy" and enter your http proxy address
258
259    - Select <Check> and press [Enter]
260
261    .. figure:: img/fuelmenu5.png
262
263 #. In the "Time Sync" section (see figure below) - Change the following fields to appropriate values:
264
265    - NTP Server 1 <Customer NTP server 1>
266
267    - NTP Server 2 <Customer NTP server 2>
268
269    - NTP Server 3 <Customer NTP server 3>
270
271    .. figure:: img/fuelmenu6.png
272
273 #. Start the installation.
274
275    - Select Quit Setup and press Save and Quit.
276
277    - Installation starts, wait until the login screen is shown.
278
279
280 Boot the Node Servers
281 ---------------------
282
283 After the Fuel Master node has rebooted from the above steps and is at
284 the login prompt, you should boot the Node Servers (Your
285 Compute/Control/Storage blades (nested or real) with a PXE booting
286 scheme so that the FUEL Master can pick them up for control.
287
288 #. Enable PXE booting
289
290    - 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.
291
292 #. Reboot all the control and compute blades.
293
294 #. Wait for the availability of nodes showing up in the Fuel GUI.
295
296    - Connect to the FUEL UI via the URL provided in the Console (default: https://10.20.0.2:8443)
297
298    - Wait until all nodes are displayed in top right corner of the Fuel GUI: Total nodes and Unallocated nodes (see figure below).
299
300    .. figure:: img/nodes.png
301
302
303 Install additional Plugins/Features on the FUEL node
304 ----------------------------------------------------
305
306 #. SSH to your FUEL node (e.g. root@10.20.0.2  pwd: r00tme)
307
308 #. Select wanted plugins/features from the /opt/opnfv/ directory.
309
310 #. Install the wanted plugin with the command
311
312     .. code-block:: bash
313
314         $ fuel plugins --install /opt/opnfv/<plugin-name>-<version>.<arch>.rpm
315
316     Expected output (see figure below):
317
318     .. code-block:: bash
319
320         Plugin ....... was successfully installed.
321
322    .. figure:: img/plugin_install.png
323
324 Create an OpenStack Environment
325 -------------------------------
326
327 #. Connect to Fuel WEB UI with a browser (default: https://10.20.0.2:8443) (login admin/admin)
328
329 #. Create and name a new OpenStack environment, to be installed.
330
331    .. figure:: img/newenv.png
332
333 #. Select "<Mitaka on Ubuntu 14.04>" and press <Next>
334
335 #. Select "compute virtulization method".
336
337    - Select "QEMU-KVM as hypervisor" and press <Next>
338
339 #. Select "network mode".
340
341    - Select "Neutron with ML2 plugin"
342
343    - Select "Neutron with tunneling segmentation" (Required when using the ODL or ONOS plugins)
344
345    - Press <Next>
346
347 #. Select "Storage Back-ends".
348
349    - Select "Ceph for block storage" and press <Next>
350
351 #. Select "additional services" you wish to install.
352
353    - Check option "Install Ceilometer (OpenStack Telemetry)" and press <Next>
354
355 #. Create the new environment.
356
357    - Click <Create> Button
358
359 Configure the network environment
360 ---------------------------------
361
362 #. Open the environment you previously created.
363
364 #. Open the networks tab and select the "default Node Networks group to" on the left pane (see figure below).
365
366    .. figure:: img/network.png
367
368 #. Update the Public network configuration and change the following fields to appropriate values:
369
370    - CIDR to <CIDR for Public IP Addresses>
371
372    - IP Range Start to <Public IP Address start>
373
374    - IP Range End to <Public IP Address end>
375
376    - Gateway to <Gateway for Public IP Addresses>
377
378    - Check <VLAN tagging>.
379
380    - Set appropriate VLAN id.
381
382 #. Update the Storage Network Configuration
383
384    - Set CIDR to appropriate value  (default 192.168.1.0/24)
385
386    - Set IP Range Start to appropriate value (default 192.168.1.1)
387
388    - Set IP Range End to appropriate value (default 192.168.1.254)
389
390    - Set vlan to appropriate value  (default 102)
391
392 #. Update the Management network configuration.
393
394    - Set CIDR to appropriate value (default 192.168.0.0/24)
395
396    - Set IP Range Start to appropriate value (default 192.168.0.1)
397
398    - Set IP Range End to appropriate value (default 192.168.0.254)
399
400    - Check <VLAN tagging>.
401
402    - Set appropriate VLAN id. (default 101)
403
404 #. Update the Private Network Information
405
406    - Set CIDR to appropriate value (default 192.168.2.0/24
407
408    - Set IP Range Start to appropriate value (default 192.168.2.1)
409
410    - Set IP Range End to appropriate value (default 192.168.2.254)
411
412    - Check <VLAN tagging>.
413
414    - Set appropriate VLAN tag (default 103)
415
416 #. Select the "Neutron L3 Node Networks group" on the left pane.
417
418    .. figure:: img/neutronl3.png
419
420 #. Update the Floating Network configuration.
421
422    - Set the Floating IP range start (default 172.16.0.130)
423
424    - Set the Floating IP range end (default 172.16.0.254)
425
426    - Set the Floating network name (default admin_floating_net)
427
428 #. Update the Internal Network configuration.
429
430    - Set Internal network CIDR to an appropriate value (default 192.168.111.0/24)
431
432    - Set Internal network gateway to an appropriate value
433
434    - Set the Internal network name (default admin_internal_net)
435
436 #. Update the Guest OS DNS servers.
437
438    - Set Guest OS DNS Server values appropriately
439
440 #. Save Settings.
441
442 #. Select the "Other Node Networks group" on the left pane(see figure below).
443
444    .. figure:: img/other.png
445
446 #. Update the Public network assignment.
447
448    - Check the box for "Assign public network to all nodes" (Required by OpenDaylight)
449
450 #. Update Host OS DNS Servers.
451
452    - Provide the DNS server settings
453
454 #. Update Host OS NTP Servers.
455
456    - Provide the NTP server settings
457
458 Select Hypervisor type
459 ----------------------
460
461 #. In the FUEL UI of your Environment, click the "Settings" Tab
462
463 #. Select Compute on the left side pane (see figure below)
464
465    - Check the KVM box and press "Save settings"
466
467    .. figure:: img/compute.png
468
469 Enable Plugins
470 --------------
471
472 #. In the FUEL UI of your Environment, click the "Settings" Tab
473
474 #. Select Other on the left side pane (see figure below)
475
476    - Enable and configure the plugins of your choice
477
478    .. figure:: img/plugins.png
479
480 Allocate nodes to environment and assign functional roles
481 ---------------------------------------------------------
482
483 #. Click on the "Nodes" Tab in the FUEL WEB UI (see figure below).
484
485     .. figure:: img/addnodes.png
486
487 #. Assign roles (see figure below).
488
489     - Click on the <+Add Nodes> button
490
491     - Check <Controller>, <Telemetry - MongoDB>  and optionally an SDN Controller role (OpenDaylight controller/ONOS) in the Assign Roles Section.
492
493     - Check one node which you want to act as a Controller from the bottom half of the screen
494
495     - Click <Apply Changes>.
496
497     - Click on the <+Add Nodes> button
498
499     - Check the <Controller> and <Storage - Ceph OSD> roles.
500
501     - Check the two next nodes you want to act as Controllers from the bottom half of the screen
502
503     - Click <Apply Changes>
504
505     - Click on <+Add Nodes> button
506
507     - Check the <Compute> and <Storage - Ceph OSD> roles.
508
509     - Check the Nodes you want to act as Computes from the bottom half of the screen
510
511     - Click <Apply Changes>.
512
513     .. figure:: img/computelist.png
514
515 #. Configure interfaces (see figure below).
516
517     - Check Select <All> to select all allocated nodes
518
519     - Click <Configure Interfaces>
520
521     - Assign interfaces (bonded) for mgmt-, admin-, private-, public-
522       and storage networks
523
524     - Click <Apply>
525
526     .. figure:: img/interfaceconf.png
527
528
529 OPTIONAL - Set Local Mirror Repos
530 ---------------------------------
531
532 The following steps can be executed if you are in an environment with
533 no connection to the Internet. The Fuel server delivers a local repo
534 that can be used for installation / deployment of openstack.
535
536 #. In the Fuel UI of your Environment, click the Settings Tab and select General from the left pane.
537
538    - Replace the URI values for the "Name" values outlined below:
539
540    - "ubuntu" URI="deb http://<ip-of-fuel-server>:8080/mirrors/ubuntu/ trusty main"
541
542    - "ubuntu-security" URI="deb http://<ip-of-fuel-server>:8080/mirrors/ubuntu/ trusty-security main"
543
544    - "ubuntu-updates" URI="deb http://<ip-of-fuel-server>:8080/mirrors/ubuntu/ trusty-updates main"
545
546    - "mos" URI="deb http://<ip-of-fuel-server>::8080/mitaka-9.0/ubuntu/x86_64 mos8.0 main restricted"
547
548    - "Auxiliary" URI="deb http://<ip-of-fuel-server>:8080/mitaka-9.0/ubuntu/auxiliary auxiliary main restricted"
549
550    - Click <Save Settings> at the bottom to Save your changes
551
552 Target specific configuration
553 -----------------------------
554
555 #. Set up targets for provisioning with non-default "Offloading Modes"
556
557    Some target nodes may require additional configuration after they are
558    PXE booted (bootstrapped); the most frequent changes are in defaults
559    for ethernet devices' "Offloading Modes" settings (e.g. some targets'
560    ethernet drivers may strip VLAN traffic by default).
561
562    If your target ethernet drivers have wrong "Offloading Modes" defaults,
563    in "Configure interfaces" page (described above), expand affected
564    interface's "Offloading Modes" and [un]check the relevant settings
565    (see figure below):
566
567    .. figure:: img/offloadingmodes.png
568
569 #. Set up targets for "Verify Networks" with non-default "Offloading Modes"
570
571    **NOTE**: Check *Reference 15* for an updated and comprehensive list of
572    known issues and/or limitations, including "Offloading Modes" not being
573    applied during "Verify Networks" step.
574
575    Setting custom "Offloading Modes" in Fuel GUI will only apply those settings
576    during provisiong and **not** during "Verify Networks", so if your targets
577    need this change, you have to apply "Offloading Modes" settings by hand
578    to bootstrapped nodes.
579
580    **E.g.**: Our driver has "rx-vlan-filter" default "on" (expected "off") on
581    the Openstack interface(s) "eth1", preventing VLAN traffic from passing
582    during "Verify Networks".
583
584    - From Fuel master console identify target nodes admin IPs (see figure below):
585
586      .. code-block:: bash
587
588          $ fuel nodes
589
590      .. figure:: img/fuelconsole1.png
591
592    - SSH into each of the target nodes and disable "rx-vlan-filter" on the
593      affected physical interface(s) allocated for OpenStack traffic (eth1):
594
595      .. code-block:: bash
596
597          $ ssh root@10.20.0.6 ethtool -K eth1 rx-vlan-filter off
598
599    - Repeat the step above for all affected nodes/interfaces in the POD.
600
601 Verify Networks
602 ---------------
603
604 It is important that the Verify Networks action is performed as it will verify
605 that communicate works for the networks you have setup, as well as check that
606 packages needed for a successful deployment can be fetched.
607
608 #. From the FUEL UI in your Environment, Select the Networks Tab and select "Connectivity check" on the left pane (see figure below)
609
610    - Select <Verify Networks>
611
612    - Continue to fix your topology (physical switch, etc) until the "Verification Succeeded" and "Your network is configured correctly" message is shown
613
614    .. figure:: img/verifynet.png
615
616
617 Deploy Your Environment
618 -----------------------
619
620 38. Deploy the environment.
621
622     - In the Fuel GUI, click on the "Dashboard" Tab.
623
624     - Click on <Deploy Changes> in the "Ready to Deploy?" section
625
626     - Examine any information notice that pops up and click <Deploy>
627
628     Wait for your deployment to complete, you can view the "Dashboard"
629     Tab to see the progress and status of your deployment.
630
631 Installation health-check
632 =========================
633
634 #. Perform system health-check (see figure below)
635
636     - Click the "Health Check" tab inside your Environment in the FUEL Web UI
637
638     - Check <Select All> and Click <Run Tests>
639
640     - Allow tests to run and investigate results where appropriate
641
642     .. figure:: img/health.png
643
644 References
645 ==========
646
647 OPNFV
648 -----
649
650 1) `OPNFV Home Page <http://www.opnfv.org>`_
651
652 2) `OPNFV documentation- and software downloads <https://www.opnfv.org/software/download>`_
653
654 OpenStack
655 ---------
656
657 3) `OpenStack Mitaka Release artifacts <http://www.openstack.org/software/mitaka>`_
658
659 4) `OpenStack documentation <http://docs.openstack.org>`_
660
661 OpenDaylight
662 ------------
663
664 5) `OpenDaylight artifacts <http://www.opendaylight.org/software/downloads>`_
665
666 Fuel
667 ----
668 6) `The Fuel OpenStack project <https://wiki.openstack.org/wiki/Fuel>`_
669
670 7) `Fuel documentation overview <http://docs.openstack.org/developer/fuel-docs>`_
671
672 8) `Fuel Installation Guide <http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-install-guide.html>`_
673
674 9) `Fuel User Guide <http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide.html>`_
675
676 10) `Fuel Developer Guide <http://docs.openstack.org/developer/fuel-docs/devdocs/develop.html>`_
677
678 11) `Fuel Plugin Developers Guide <http://docs.openstack.org/developer/fuel-docs/plugindocs/fuel-plugin-sdk-guide.html>`_
679
680 12) `Fuel OpenStack Hardware Compatibility List <https://www.mirantis.com/products/openstack-drivers-and-plugins/hardware-compatibility-list>`_
681
682 Fuel in OPNFV
683 -------------
684
685 13) `OPNFV Installation instruction for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/installation-instruction.html>`_
686
687 14) `OPNFV Build instruction for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/build-instruction.html>`_
688
689 15) `OPNFV Release Note for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/release-notes.html>`_