Merge "deploy.sh: accept a timeout flag (-T)"
[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
39 Before starting the installation of the Colorado release of
40 OPNFV, using Fuel as a deployment tool, some planning must be
41 done.
42
43 Retrieving the ISO image
44 ------------------------
45
46 First of all, the Fuel deployment ISO image needs to be retrieved, the
47 Fuel .iso image of the Colorado release can be found at *Reference: 2*
48
49 Building the ISO image
50 ----------------------
51
52 Alternatively, you may build the Fuel .iso from source by cloning the
53 opnfv/fuel git repository. To retrieve the repository for the Colorado
54 release use the following command:
55
56 .. code-block:: bash
57
58     $ git clone https://gerrit.opnfv.org/gerrit/fuel
59
60 Check-out the Colorado release tag to set the HEAD to the
61 baseline required to replicate the Colorado release:
62
63 .. code-block:: bash
64
65     $ git checkout colorado.1.0
66
67 Go to the fuel directory and build the .iso:
68
69 .. code-block:: bash
70
71     $ cd fuel/build; make all
72
73 For more information on how to build, please see *Reference: 14*
74
75 Other preparations
76 ------------------
77
78 Next, familiarize yourself with Fuel by reading the following documents:
79
80 - Fuel Installation Guide, please see *Reference: 8*
81
82 - Fuel User Guide, please see *Reference: 9*
83
84 - Fuel Developer Guide, please see *Reference: 10*
85
86 - Fuel Plugin Developers Guide, please see *Reference: 11*
87
88 Prior to installation, a number of deployment specific parameters must be collected, those are:
89
90 #.     Provider sub-net and gateway information
91
92 #.     Provider VLAN information
93
94 #.     Provider DNS addresses
95
96 #.     Provider NTP addresses
97
98 #.     Network overlay you plan to deploy (VLAN, VXLAN, FLAT)
99
100 #.     How many nodes and what roles you want to deploy (Controllers, Storage, Computes)
101
102 #.     Monitoring options you want to deploy (Ceilometer, Syslog, etc.).
103
104 #.     Other options not covered in the document are available in the links above
105
106
107 This information will be needed for the configuration procedures
108 provided in this document.
109
110 Hardware requirements
111 =====================
112
113 The following minimum hardware requirements must be met for the
114 installation of Colorado using Fuel:
115
116 +--------------------+------------------------------------------------------+
117 | **HW Aspect**      | **Requirement**                                      |
118 |                    |                                                      |
119 +====================+======================================================+
120 | **# of nodes**     | Minimum 5 (3 for non redundant deployment):          |
121 |                    |                                                      |
122 |                    | - 1 Fuel deployment master (may be virtualized)      |
123 |                    |                                                      |
124 |                    | - 3(1) Controllers (1 colocated mongo/ceilometer     |
125 |                    |   role, 2 Ceph-OSD roles)                            |
126 |                    |                                                      |
127 |                    | - 1 Compute (1 co-located Ceph-OSD role)             |
128 |                    |                                                      |
129 +--------------------+------------------------------------------------------+
130 | **CPU**            | Minimum 1 socket x86_AMD64 with Virtualization       |
131 |                    | support                                              |
132 +--------------------+------------------------------------------------------+
133 | **RAM**            | Minimum 16GB/server (Depending on VNF work load)     |
134 |                    |                                                      |
135 +--------------------+------------------------------------------------------+
136 | **Disk**           | Minimum 256GB 10kRPM spinning disks                  |
137 |                    |                                                      |
138 +--------------------+------------------------------------------------------+
139 | **Networks**       | 4 Tagged VLANs (PUBLIC, MGMT, STORAGE, PRIVATE)      |
140 |                    |                                                      |
141 |                    | 1 Un-Tagged VLAN for PXE Boot - ADMIN Network        |
142 |                    |                                                      |
143 |                    | Note: These can be allocated to a single NIC -       |
144 |                    | or spread out over multiple NICs as your hardware    |
145 |                    | supports.                                            |
146 +--------------------+------------------------------------------------------+
147
148 Help with Hardware Requirements
149 ===============================
150
151 Calculate hardware requirements:
152
153 For information on compatible hardware types available for use, please see *Reference: 11*.
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 Colorado 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 Colorado 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 the Fuel setup screen 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    - The installation will now start, 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
313
314     .. code-block:: bash
315
316         $ fuel plugins --install /opt/opnfv/<plugin-name>-<version>.<arch>.rpm
317
318     Expected output (see figure below):
319
320     .. code-block:: bash
321
322         Plugin ....... was successfully installed.
323
324    .. figure:: img/plugin_install.png
325
326 Create an OpenStack Environment
327 -------------------------------
328
329 #. Connect to Fuel WEB UI with a browser (default: https://10.20.0.2:8443) (login: admin/admin)
330
331 #. Create and name a new OpenStack environment, to be installed.
332
333    .. figure:: img/newenv.png
334
335 #. Select "<Mitaka on Ubuntu 14.04>" and press <Next>
336
337 #. Select "compute virtulization method".
338
339    - Select "QEMU-KVM as hypervisor" and press <Next>
340
341 #. Select "network mode".
342
343    - Select "Neutron with ML2 plugin"
344
345    - Select "Neutron with tunneling segmentation" (Required when using the ODL or ONOS plugins)
346
347    - Press <Next>
348
349 #. Select "Storage Back-ends".
350
351    - Select "Ceph for block storage" and press <Next>
352
353 #. Select "additional services" you wish to install.
354
355    - Check option "Install Ceilometer and Aodh" and press <Next>
356
357 #. Create the new environment.
358
359    - Click <Create> Button
360
361 Configure the network environment
362 ---------------------------------
363
364 #. Open the environment you previously created.
365
366 #. Open the networks tab and select the "default" Node Networks group to on the left pane (see figure below).
367
368    .. figure:: img/network.png
369
370 #. Update the Public network configuration and change the following fields to appropriate values:
371
372    - CIDR to <CIDR for Public IP Addresses>
373
374    - IP Range Start to <Public IP Address start>
375
376    - IP Range End to <Public IP Address end>
377
378    - Gateway to <Gateway for Public IP Addresses>
379
380    - Check <VLAN tagging>.
381
382    - Set appropriate VLAN id.
383
384 #. Update the Storage Network Configuration
385
386    - Set CIDR to appropriate value  (default 192.168.1.0/24)
387
388    - Set IP Range Start to appropriate value (default 192.168.1.1)
389
390    - Set IP Range End to appropriate value (default 192.168.1.254)
391
392    - Set vlan to appropriate value  (default 102)
393
394 #. Update the Management network configuration.
395
396    - Set CIDR to appropriate value (default 192.168.0.0/24)
397
398    - Set IP Range Start to appropriate value (default 192.168.0.1)
399
400    - Set IP Range End to appropriate value (default 192.168.0.254)
401
402    - Check <VLAN tagging>.
403
404    - Set appropriate VLAN id. (default 101)
405
406 #. Update the Private Network Information
407
408    - Set CIDR to appropriate value (default 192.168.2.0/24
409
410    - Set IP Range Start to appropriate value (default 192.168.2.1)
411
412    - Set IP Range End to appropriate value (default 192.168.2.254)
413
414    - Check <VLAN tagging>.
415
416    - Set appropriate VLAN tag (default 103)
417
418 #. Select the "Neutron L3" Node Networks group on the left pane.
419
420    .. figure:: img/neutronl3.png
421
422 #. Update the Floating Network configuration.
423
424    - Set the Floating IP range start (default 172.16.0.130)
425
426    - Set the Floating IP range end (default 172.16.0.254)
427
428    - Set the Floating network name (default admin_floating_net)
429
430 #. Update the Internal Network configuration.
431
432    - Set Internal network CIDR to an appropriate value (default 192.168.111.0/24)
433
434    - Set Internal network gateway to an appropriate value
435
436    - Set the Internal network name (default admin_internal_net)
437
438 #. Update the Guest OS DNS servers.
439
440    - Set Guest OS DNS Server values appropriately
441
442 #. Save Settings.
443
444 #. Select the "Other" Node Networks group on the left pane (see figure below).
445
446    .. figure:: img/other.png
447
448 #. Update the Public network assignment.
449
450    - Check the box for "Assign public network to all nodes" (Required by OpenDaylight)
451
452 #. Update Host OS DNS Servers.
453
454    - Provide the DNS server settings
455
456 #. Update Host OS NTP Servers.
457
458    - Provide the NTP server settings
459
460 Select Hypervisor type
461 ----------------------
462
463 #. In the FUEL UI of your Environment, click the "Settings" Tab
464
465 #. Select "Compute" on the left side pane (see figure below)
466
467    - Check the KVM box and press "Save settings"
468
469    .. figure:: img/compute.png
470
471 Enable Plugins
472 --------------
473
474 #. In the FUEL UI of your Environment, click the "Settings" Tab
475
476 #. Select Other on the left side pane (see figure below)
477
478    - Enable and configure the plugins of your choice
479
480    .. figure:: img/plugins.png
481
482 Allocate nodes to environment and assign functional roles
483 ---------------------------------------------------------
484
485 #. Click on the "Nodes" Tab in the FUEL WEB UI (see figure below).
486
487     .. figure:: img/addnodes.png
488
489 #. Assign roles (see figure below).
490
491     - Click on the <+Add Nodes> button
492
493     - Check <Controller>, <Telemetry - MongoDB>  and optionally an SDN Controller role (OpenDaylight controller/ONOS) in the "Assign Roles" Section.
494
495     - Check one node which you want to act as a Controller from the bottom half of the screen
496
497     - Click <Apply Changes>.
498
499     - Click on the <+Add Nodes> button
500
501     - Check the <Controller> and <Storage - Ceph OSD> roles.
502
503     - Check the two next nodes you want to act as Controllers from the bottom half of the screen
504
505     - Click <Apply Changes>
506
507     - Click on <+Add Nodes> button
508
509     - Check the <Compute> and <Storage - Ceph OSD> roles.
510
511     - Check the Nodes you want to act as Computes from the bottom half of the screen
512
513     - Click <Apply Changes>.
514
515     .. figure:: img/computelist.png
516
517 #. Configure interfaces (see figure below).
518
519     - Check Select <All> to select all allocated nodes
520
521     - Click <Configure Interfaces>
522
523     - Assign interfaces (bonded) for mgmt-, admin-, private-, public- and storage networks
524
525     - Click <Apply>
526
527     .. figure:: img/interfaceconf.png
528
529
530 OPTIONAL - Set Local Mirror Repos
531 ---------------------------------
532
533 The following steps must be executed if you are in an environment with
534 no connection to the Internet. The Fuel server delivers a local repo
535 that can be used for installation / deployment of openstack.
536
537 #. In the Fuel UI of your Environment, click the Settings Tab and select General from the left pane.
538
539    - Replace the URI values for the "Name" values outlined below:
540
541    - "ubuntu" URI="deb http://<ip-of-fuel-server>:8080/mirrors/ubuntu/ trusty main"
542
543    - "ubuntu-security" URI="deb http://<ip-of-fuel-server>:8080/mirrors/ubuntu/ trusty-security main"
544
545    - "ubuntu-updates" URI="deb http://<ip-of-fuel-server>:8080/mirrors/ubuntu/ trusty-updates main"
546
547    - "mos" URI="deb http://<ip-of-fuel-server>::8080/mitaka-9.0/ubuntu/x86_64 mos9.0 main restricted"
548
549    - "Auxiliary" URI="deb http://<ip-of-fuel-server>:8080/mitaka-9.0/ubuntu/auxiliary auxiliary main restricted"
550
551    - Click <Save Settings> at the bottom to Save your changes
552
553 Target specific configuration
554 -----------------------------
555
556 #. Set up targets for provisioning with non-default "Offloading Modes"
557
558    Some target nodes may require additional configuration after they are
559    PXE booted (bootstrapped); the most frequent changes are in defaults
560    for ethernet devices' "Offloading Modes" settings (e.g. some targets'
561    ethernet drivers may strip VLAN traffic by default).
562
563    If your target ethernet drivers have wrong "Offloading Modes" defaults,
564    in "Configure interfaces" page (described above), expand affected
565    interface's "Offloading Modes" and [un]check the relevant settings
566    (see figure below):
567
568    .. figure:: img/offloadingmodes.png
569
570 #. Set up targets for "Verify Networks" with non-default "Offloading Modes"
571
572    **NOTE**: Check *Reference 15* for an updated and comprehensive list of
573    known issues and/or limitations, including "Offloading Modes" not being
574    applied during "Verify Networks" step.
575
576    Setting custom "Offloading Modes" in Fuel GUI will only apply those settings
577    during provisiong and **not** during "Verify Networks", so if your targets
578    need this change, you have to apply "Offloading Modes" settings by hand
579    to bootstrapped nodes.
580
581    **E.g.**: Our driver has "rx-vlan-filter" default "on" (expected "off") on
582    the Openstack interface(s) "eth1", preventing VLAN traffic from passing
583    during "Verify Networks".
584
585    - From Fuel master console identify target nodes admin IPs (see figure below):
586
587      .. code-block:: bash
588
589          $ fuel nodes
590
591      .. figure:: img/fuelconsole1.png
592
593    - SSH into each of the target nodes and disable "rx-vlan-filter" on the
594      affected physical interface(s) allocated for OpenStack traffic (eth1):
595
596      .. code-block:: bash
597
598          $ ssh root@10.20.0.6 ethtool -K eth1 rx-vlan-filter off
599
600    - Repeat the step above for all affected nodes/interfaces in the POD.
601
602 Verify Networks
603 ---------------
604
605 It is important that the Verify Networks action is performed as it will verify
606 that communicate works for the networks you have setup, as well as check that
607 packages needed for a successful deployment can be fetched.
608
609 #. From the FUEL UI in your Environment, Select the Networks Tab and select "Connectivity check" on the left pane (see figure below)
610
611    - Select <Verify Networks>
612
613    - Continue to fix your topology (physical switch, etc) until the "Verification Succeeded" and "Your network is configured correctly" message is shown
614
615    .. figure:: img/verifynet.png
616
617
618 Deploy Your Environment
619 -----------------------
620
621 #. Deploy the environment.
622
623     - In the Fuel GUI, click on the "Dashboard" Tab.
624
625     - Click on <Deploy Changes> in the "Ready to Deploy?" section
626
627     - Examine any information notice that pops up and click <Deploy>
628
629     Wait for your deployment to complete, you can view the "Dashboard"
630     Tab to see the progress and status of your deployment.
631
632 Installation health-check
633 =========================
634
635 #. Perform system health-check (see figure below)
636
637     - Click the "Health Check" tab inside your Environment in the FUEL Web UI
638
639     - Check <Select All> and Click <Run Tests>
640
641     - Allow tests to run and investigate results where appropriate
642
643     .. figure:: img/health.png
644
645 References
646 ==========
647
648 OPNFV
649 -----
650
651 1) `OPNFV Home Page <http://www.opnfv.org>`_: http://www.opnfv.org
652
653 2) `OPNFV documentation- and software downloads <https://www.opnfv.org/software/download>`_: https://www.opnfv.org/software/download
654
655 OpenStack
656 ---------
657
658 3) `OpenStack Mitaka Release artifacts <http://www.openstack.org/software/mitaka>`_: http://www.openstack.org/software/mitaka
659
660 4) `OpenStack documentation <http://docs.openstack.org>`_: http://docs.openstack.org
661
662 OpenDaylight
663 ------------
664
665 5) `OpenDaylight artifacts <http://www.opendaylight.org/software/downloads>`_: http://www.opendaylight.org/software/downloads
666
667 Fuel
668 ----
669 6) `The Fuel OpenStack project <https://wiki.openstack.org/wiki/Fuel>`_: https://wiki.openstack.org/wiki/Fuel
670
671 7) `Fuel documentation overview <http://docs.openstack.org/developer/fuel-docs>`_: http://docs.openstack.org/developer/fuel-docs
672
673 8) `Fuel Installation Guide <http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-install-guide.html>`_: http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-install-guide.html
674
675 9) `Fuel User Guide <http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide.html>`_: http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide.html
676
677 10) `Fuel Developer Guide <http://docs.openstack.org/developer/fuel-docs/devdocs/develop.html>`_: http://docs.openstack.org/developer/fuel-docs/devdocs/develop.html
678
679 11) `Fuel Plugin Developers Guide <http://docs.openstack.org/developer/fuel-docs/plugindocs/fuel-plugin-sdk-guide.html>`_: http://docs.openstack.org/developer/fuel-docs/plugindocs/fuel-plugin-sdk-guide.html
680
681 12) `Fuel OpenStack Hardware Compatibility List <https://www.mirantis.com/products/openstack-drivers-and-plugins/hardware-compatibility-list>`_: https://www.mirantis.com/products/openstack-drivers-and-plugins/hardware-compatibility-list
682
683 Fuel in OPNFV
684 -------------
685
686 13) `OPNFV Installation instruction for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/installationprocedure/index.html>`_: http://artifacts.opnfv.org/fuel/colorado/docs/installationprocedure/index.html
687
688 14) `OPNFV Build instruction for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/buildprocedure/index.html>`_: http://artifacts.opnfv.org/fuel/colorado/docs/buildprocedure/index.html
689
690 15) `OPNFV Release Note for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/releasenotes/index.html>`_: http://artifacts.opnfv.org/fuel/colorado/docs/releasenotes/index.html