From c695afba33c538032af751dd02748f83ff4c877c Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Fri, 22 Apr 2016 15:38:45 +0200 Subject: Copy OPNFV docs dir as documentation base. Armband Fuel for aarch64 is very similar to amd64 in both configuration and deployment, with a small difference in the build process. Therefore it makes sense to base our documentation on Jonas' work in OPNFV Fuel. (cherry picked from commit 719cf0300eb2c63375dde152851d6ba73ca99498) Change-Id: I34e7b1ef7bc2f7928ebb04c39ed0a1d48c3a4b54 --- docs/build-instruction.rst | 291 ++++++++++++++++ docs/conf.py | 28 ++ docs/configguide/installerconfig.rst | 332 +++++++++++++++++++ docs/configguide/postinstall.rst | 23 ++ docs/img/addnodes.png | Bin 0 -> 24624 bytes docs/img/compute.png | Bin 0 -> 49919 bytes docs/img/computelist.png | Bin 0 -> 70343 bytes docs/img/fuelmenu1.png | Bin 0 -> 8766 bytes docs/img/fuelmenu2.png | Bin 0 -> 9679 bytes docs/img/fuelmenu3.png | Bin 0 -> 9634 bytes docs/img/fuelmenu4.png | Bin 0 -> 9843 bytes docs/img/fuelmenu5.png | Bin 0 -> 22548 bytes docs/img/fuelmenu6.png | Bin 0 -> 10703 bytes docs/img/grub-1.png | Bin 0 -> 381031 bytes docs/img/health.png | Bin 0 -> 54348 bytes docs/img/interfaceconf.png | Bin 0 -> 58890 bytes docs/img/interfaces.png | Bin 0 -> 58851 bytes docs/img/network.png | Bin 0 -> 53472 bytes docs/img/neutronl3.png | Bin 0 -> 71846 bytes docs/img/newenv.png | Bin 0 -> 37483 bytes docs/img/nodes.png | Bin 0 -> 9155 bytes docs/img/other.png | Bin 0 -> 71641 bytes docs/img/plugin_install.png | Bin 0 -> 17431 bytes docs/img/plugins.png | Bin 0 -> 39118 bytes docs/img/verifynet.png | Bin 0 -> 61499 bytes docs/index.rst | 19 ++ docs/installation-instruction.rst | 626 +++++++++++++++++++++++++++++++++++ docs/release-notes.rst | 232 +++++++++++++ 28 files changed, 1551 insertions(+) create mode 100644 docs/build-instruction.rst create mode 100644 docs/conf.py create mode 100644 docs/configguide/installerconfig.rst create mode 100644 docs/configguide/postinstall.rst create mode 100644 docs/img/addnodes.png create mode 100644 docs/img/compute.png create mode 100644 docs/img/computelist.png create mode 100644 docs/img/fuelmenu1.png create mode 100644 docs/img/fuelmenu2.png create mode 100644 docs/img/fuelmenu3.png create mode 100644 docs/img/fuelmenu4.png create mode 100644 docs/img/fuelmenu5.png create mode 100644 docs/img/fuelmenu6.png create mode 100644 docs/img/grub-1.png create mode 100644 docs/img/health.png create mode 100644 docs/img/interfaceconf.png create mode 100644 docs/img/interfaces.png create mode 100644 docs/img/network.png create mode 100644 docs/img/neutronl3.png create mode 100644 docs/img/newenv.png create mode 100644 docs/img/nodes.png create mode 100644 docs/img/other.png create mode 100644 docs/img/plugin_install.png create mode 100644 docs/img/plugins.png create mode 100644 docs/img/verifynet.png create mode 100644 docs/index.rst create mode 100644 docs/installation-instruction.rst create mode 100644 docs/release-notes.rst diff --git a/docs/build-instruction.rst b/docs/build-instruction.rst new file mode 100644 index 00000000..254c0d3f --- /dev/null +++ b/docs/build-instruction.rst @@ -0,0 +1,291 @@ +================================================================================================= +OPNFV Build instruction for the Brahmaputra release of OPNFV when using Fuel as a deployment tool +================================================================================================= + +License +======= + +This work is licensed under a Creative Commons Attribution 4.0 +International License. .. http://creativecommons.org/licenses/by/4.0 .. +(c) Jonas Bjurel (Ericsson AB) and others + +Abstract +======== + +This document describes how to build the Fuel deployment tool for the +Brahmaputra release of OPNFV build system, dependencies and required +system resources. + +Introduction +============ + +This document describes the build system used to build the Fuel +deployment tool for the Brahmaputra release of OPNFV, required +dependencies and minimum requirements on the host to be used for the +build system. + +The Fuel build system is designed around Docker containers such that +dependencies outside of the build system can be kept to a minimum. It +also shields the host from any potential dangerous operations +performed by the build system. + +The audience of this document is assumed to have good knowledge in +network and Unix/Linux administration. + +Requirements +============ + +Minimum Hardware Requirements +----------------------------- + +- ~30 GB available disc + +- 4 GB RAM + +Minimum Software Requirements +----------------------------- + +The build host should run Ubuntu 14.04 operating system. + +On the host, the following packages must be installed: + +- An x86_64 host (Bare-metal or VM) with Ubuntu 14.04 LTS installed + + - A kernel equal- or later than 3.19 (Vivid) (simply available through sudo apt-get install linux-generic-lts-vivid) + + - **Note:** Builds on Wily (Ubuntu 15.x) are currently not supported + +- docker - see https://docs.docker.com/engine/installation/ubuntulinux/ for installation notes for Ubuntu 14.04. Tested against version 1.9.x and greater + +- git (simply available through $ sudo apt-get install git) + +- make (simply available through $ sudo apt-get install make) + +- curl (simply available through $ sudo apt-get install curl) + +Preparations +============ + +Setting up the Docker build container +------------------------------------- +After having installed Docker, add yourself to the docker group: + +$ sudo usermod -a -G docker [userid] + +Also make sure to define relevant DNS servers part of the global +DNS chain in your configuration file. +Uncomment, and modify the values appropriately. + +For example: + + + +Then restart docker: + +.. code-block:: console + + $ sudo service docker restart + +Setting up OPNFV Gerrit in order to being able to clone the code +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- Start setting up OPNFV gerrit by creating a SSH key (unless you + don't already have one), create one with ssh-keygen + +- Add your generated public key in OPNFV Gerrit + (this requires a Linux foundation account, create one if you do not + already have one) + +- Select "SSH Public Keys" to the left and then "Add Key" and paste + your public key in. + +Clone the OPNFV code Git repository with your SSH key +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Now it is time to clone the code repository: + +$ git clone ssh://@gerrit.opnfv.org:29418/fuel + +Now you should have the OPNFV fuel repository with the Fuel +directories stored locally on your build host. + +Check out the Brahmaputra release: +$ cd fuel +$ git checkout brahmaputra.1.0 + +Clone the OPNFV code Git repository without a SSH key +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +You can also opt to clone the code repository without a SSH key: + +$ git clone https://gerrit.opnfv.org:29418/gerrit/fuel + +Make sure to checkout the release tag as described above. + +Support for building behind a http/https/rsync proxy +---------------------------------------------------- + +The build system is able to make use of a web proxy setup if the +http_proxy, https_proxy, no_proxy (if needed) and RSYNC_PROXY or +RSYNC_CONNECT_PROG environment variables have been set before invoking make. + +The proxy setup must permit port 80 (http), 443 (https) and 873 +(rsync). + +Important note about the host Docker daemon settings +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Docker daemon on the host must be configured to use the http proxy +for it to be able to pull the base Ubuntu 14.04 image from the Docker +registry before invoking make! In Ubuntu this is done by adding a line +like: + +export http_proxy="http://10.0.0.1:8888/" + +to /etc/default/docker and restarting the Docker daemon. + +Setting proxy environment variables prior to build +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The build system will make use the following environment variables +that needs to be exported to subshells by using export (bash) or +setenv (csh/tcsh). + +| http_proxy (or HTTP_PROXY) +| https_proxy (or HTTP_PROXY) +| no_proxy (or NO_PROXY) +| RSYNC_PROXY +| RSYNC_CONNECT_PROG + +As an example, these are the settings that were put in the user's +.bashrc when verifying the proxy build functionality: + +| export RSYNC_PROXY=10.0.0.1:8888 +| export http_proxy=http://10.0.0.1:8888 +| export https_proxy=http://10.0.0.1:8888 +| export no_proxy=localhost,127.0.0.1,.consultron.com,.sock + +Using a ssh proxy for the rsync connection +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If the proxy setup is not allowing the rsync protocol, an alternative +solution is to use a SSH tunnel to a machine capable of accessing the +outbound port 873. Set the RSYNC_CONNECT_PROG according to the rsync +manual page (for example to "ssh @ nc %H 873") +to enable this. Also note that netcat needs to be installed on the +remote system! + +Make sure that the ssh command also refers to the user on the remote +system, as the command itself will be run from the Docker build container +as the root user (but with the invoking user's SSH keys). + +Disabling the Ubuntu repo cache if rsync is not allowed +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +During the build phase, a local Ubuntu package repository is fetched +from upstream in order to be added to the OPNFV Fuel ISO and for parts +of this process rsync is used. + +If neither of the two available methods for proxying rsync are +available, the last resort is to turn off the caching of the Ubuntu +packages in the build system. This is done by removing the +"f_repobuild" from SUBDIRS in the beginning of +the fuel/build/f_isoroot/Makefile. + +Note! Doing this will require the Fuel master node to have Internet +access when installing the ISO artifact built as no Ubuntu package +cache will be on the ISO! + +Configure your build environment +-------------------------------- + +** Configuring the build environment should not be performed if building +standard Brahmaputra release ** + +Select the versions of the components you want to build by editing the +fuel/build/config.mk file. + +Non official build: Selecting which plugins to build +---------------------------------------------------- +In order to cut the build time for unofficial builds (made by an +individual developer locally), the selection if which Fuel plugins to +build (if any) can be done by environment variable +"BUILD_FUEL_PLUGINS" prior to building. + +Only the plugin targets from fuel/build/f_isoroot/Makefile that are +specified in the environment variable will then be built. In order to +completely disable the building of plugins, the environment variable +is set to " ". When using this functionality, the resulting iso file +will be prepended with the prefix "unofficial-" to clearly indicate +that this is not a full build. + +This method of plugin selection is not meant to be used from within +Gerrit! + +Building +======== + +There are two methods available for building Fuel: + +- A low level method using Make + +- An abstracted method using build.sh + +Low level build method using make +--------------------------------- +The low level method is based on Make: + +From the directory, invoke + +Following targets exist: + +- none/all - this will: + + - Initialize the docker build environment + + - Build Fuel from upstream (as defined by fuel-build/config-spec) + + - Build the OPNFV defined plugins/features from upstream + + - Build the defined additions to fuel (as defined by the structure + of this framework) + + - Apply changes and patches to fuel (as defined by the structure of + this framework) + + - Reconstruct a fuel .iso image + +- clean - this will remove all artifacts from earlier builds. + +- debug - this will simply enter the build container without starting a build, from here you can start a build by enter "make iso" + +If the build is successful, you will find the generated ISO file in +the subdirectory! + +Abstracted build method using build.sh +-------------------------------------- +The abstracted build method uses the script which +allows you to: + +- Create and use a build cache - significantly speeding up the + build time if upstream repositories have not changed. + +- push/pull cache and artifacts to an arbitrary URI (http(s):, file:, ftp:) + +For more info type . + +Artifacts +========= + +The artifacts produced are: + +- - Which represents the bootable Fuel image, XXXX is + replaced with the build identity provided to the build system + +- - Which holds version metadata. + +References +========== + +1) OPNFV Installation instruction for the Brahmaputra release of OPNFV when using Fuel as a deployment tool + +2) OPNFV Build instruction for the Brahmaputra release of OPNFV when using Fuel as a deployment tool + +3) OPNFV Release Note for the Brahmaputra release of OPNFV when using Fuel as a deployment tool diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 00000000..6cd69313 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,28 @@ +# SPDX-license-identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2016 Linux Foundation and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +# Copied from releng/docs/etc/conf.py +extensions = ['sphinxcontrib.httpdomain', + 'sphinx.ext.autodoc', + 'sphinx.ext.viewcode', + 'sphinx.ext.napoleon'] + +needs_sphinx = '1.3' +master_doc = 'index' +pygments_style = 'sphinx' + +html_use_index = False +numfig = True +html_logo = 'opnfv-logo.png' + +latex_domain_indices = False +latex_logo = 'opnfv-logo.png' + +# addtional config +latex_elements = {'figure_align': 'H'} diff --git a/docs/configguide/installerconfig.rst b/docs/configguide/installerconfig.rst new file mode 100644 index 00000000..60ffadf1 --- /dev/null +++ b/docs/configguide/installerconfig.rst @@ -0,0 +1,332 @@ +.. This document is protected/licensed under the following conditions +.. (c) Jonas Bjurel (Ericsson AB) +.. Licensed under a Creative Commons Attribution 4.0 International License. +.. You should have received a copy of the license along with this work. +.. If not, see . + +Fuel configuration +================== +This section provides guidelines on how to install and +configure the Brahmaputra release of OPNFV when using Fuel as a +deployment tool including required software and hardware +configurations. + +For detailed instructions on how to install the Brahmaputra release using +Fuel, see *Reference 13* in section *"Fuel associated references"* below. + +Pre-configuration activities +---------------------------- + +Planning the deployment + +Before starting the installation of the Brahmaputra release of +OPNFV when using Fuel as a deployment tool, some planning must be +done. + +Familiarize yourself with the Fuel by reading the +following documents: + +- Fuel planning guide, please see *Reference: 8* in section *"Fuel associated references"* below. + +- Fuel user guide, please see *Reference: 9* in section *"Fuel associated references"* below. + +- Fuel operations guide, please see *Reference: 10* in section *"Fuel associated references"* below. + +- Fuel Plugin Developers Guide, please see *Reference: 11* in section *"Fuel associated references"* below. + +Before the installation can start, a number of deployment specific parameters must be collected, those are: + +#. Provider sub-net and gateway information + +#. Provider VLAN information + +#. Provider DNS addresses + +#. Provider NTP addresses + +#. Network overlay you plan to deploy (VLAN, VXLAN, FLAT) + +#. Monitoring Options you want to deploy (Ceilometer, Syslog, etc.) + +#. How many nodes and what roles you want to deploy (Controllers, Storage, Computes) + +#. Other options not covered in the document are available in the links above + + +Retrieving the ISO image +^^^^^^^^^^^^^^^^^^^^^^^^ +First of all, the Fuel deployment ISO image needs to be retrieved, the +Fuel .iso image of the Brahmaputra release can be found at *Reference: 2* + +Alternatively, you may build the .iso from source by cloning the +opnfv/fuel git repository. Detailed instructions on how to build +a Fuel OPNFV .iso can be found in *Reference: 14* at section *"Fuel associated references"* below. + +Hardware requirements +--------------------- +Following high level hardware requirements must be met: + ++--------------------+------------------------------------------------------+ +| **HW Aspect** | **Requirement** | +| | | ++====================+======================================================+ +| **# of nodes** | Minimum 5 (3 for non redundant deployment): | +| | | +| | - 1 Fuel deployment master (may be virtualized) | +| | | +| | - 3(1) Controllers (1 colocated mongo/ceilometer | +| | role, 2 Ceph-OSD roles) | +| | | +| | - 1 Compute (1 co-located Ceph-OSD role) | +| | | ++--------------------+------------------------------------------------------+ +| **CPU** | Minimum 1 socket x86_AMD64 with Virtualization | +| | support | ++--------------------+------------------------------------------------------+ +| **RAM** | Minimum 16GB/server (Depending on VNF work load) | +| | | ++--------------------+------------------------------------------------------+ +| **Disk** | Minimum 256GB 10kRPM spinning disks | +| | | ++--------------------+------------------------------------------------------+ +| **Networks** | 4 Tagged VLANs (PUBLIC, MGMT, STORAGE, PRIVATE) | +| | | +| | 1 Un-Tagged VLAN for PXE Boot - ADMIN Network | +| | | +| | note: These can be run on single NIC - or spread out | +| | over other nics as your hardware supports | ++--------------------+------------------------------------------------------+ + +For information on compatible hardware types available for use, please see +*Reference: 11* in section *"Fuel associated references"* below. + +Top of the rack (TOR) Configuration requirements +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The switching infrastructure provides connectivity for the OPNFV +infrastructure operations, tenant networks (East/West) and provider +connectivity (North/South); it also provides needed +connectivity for the Storage Area Network (SAN). To avoid traffic +congestion, it is strongly suggested that three physically separated +networks are used, that is: 1 physical network for administration and +control, one physical network for tenant private and public networks, +and one physical network for SAN. The switching connectivity can (but +does not need to) be fully redundant, in such case it and comprises a +redundant 10GE switch pair for each of the three physically separated +networks. + +The physical TOR switches are **not** automatically configured from +the OPNFV reference platform. All the networks involved in the OPNFV +infrastructure as well as the provider networks and the private tenant +VLANs needs to be manually configured. + +Jumphost configuration +---------------------- +The Jumphost server, also known as the "Fuel master" provides needed +services/functions to deploy an OPNFV/OpenStack cluster as well functions +for cluster life-cycle management (extensions, repair actions and upgrades). + +The Jumphost server requires 2 (4 if redundancy is required) Ethernet +interfaces - one for external management of the OPNFV installation, +and another for jump-host communication with the OPNFV cluster. + +Install the Fuel jump-host +^^^^^^^^^^^^^^^^^^^^^^^^^^ +Mount the Fuel Brahmaputra ISO file as a boot device to the jump host +server, reboot it, and install the Fuel Jumphost in accordance with installation instructions, see *Reference 13* in section *"Fuel associated references"* +below. + + +Platform components configuration +--------------------------------- + +Fuel-Plugins +^^^^^^^^^^^^ +Fuel plugins enable you to install and configure additional capabilities for +your Fuel OPNFV based cloud, such as additional storage types, networking +functionality, or NFV features developed by OPNFV. + +Fuel offers an open source framework for creating these plugins, so there’s +a wide range of capabilities that you can enable Fuel to add to your OpenStack +clouds. + +The OPNFV Brahmaputra version of Fuel provides a set of pre-packaged plugins +developed by OPNFV: + ++--------------------+------------------------------------------------------+ +| **Plugin name** | **Short description** | +| | | ++====================+======================================================+ +| OpenDaylight | OpenDaylight provides an open-source SDN Controller | +| | providing networking features such as L2 and L3 | +| | network control, "Service Function Chaining", | +| | routing, networking policies, etc. | +| | More information on OpenDaylight in the OPNFV | +| | Brahmaputra release can be found in a separate | +| | section in this document. | ++--------------------+------------------------------------------------------+ +| ONOS | ONOS is another open-source SDN controller which | +| | in essense fill the same role as OpenDaylight. | +| | More information on ONOS in the OPNFV | +| | Brahmaputra release can be found in a separate | +| | section in this document. | +| | | ++--------------------+------------------------------------------------------+ +| BGP-VPN | BGP-VPN provides an BGP/MPLS VPN service | +| | More information on BGP-VPN in the OPNFV | +| | Brahmaputra release can be found in a separate | +| | section in this document. | +| | | ++--------------------+------------------------------------------------------+ +| OVS-NSH | OVS-NSH provides a variant of Open-vSwitch | +| | which supports "Network Service Headers" needed | +| | for the "Service function chaining" feature | +| | More information on "Service Function Chaining" | +| | in the OPNFV Brahmaputra release can be found in a | +| | in a separate section in this document. | +| | | ++--------------------+------------------------------------------------------+ +| OVS-NFV | OVS-NFV provides a variant of Open-vSwitch | +| | with carrier grade characteristics essential for | +| | NFV workloads. | +| | More information on OVS-NFV | +| | in the OPNFV Brahmaputra release can be found in a | +| | in a separate section in this document. | +| | | ++--------------------+------------------------------------------------------+ +| KVM-NFV | KVM-NFV provides a variant of KVM with improved | +| | virtualization characteristics essential for NFV | +| | workloads. | +| | More information on KVM-NFV | +| | in the OPNFV Brahmaputra release can be found in a | +| | in a separate section in this document. | +| | | ++--------------------+------------------------------------------------------+ +| VSPERF | VSPERF provides a networking characteristics test | +| | bench that facilitates characteristics/performance | +| | evaluation of vSwithches | +| | More information on VSPERF | +| | in the OPNFV Brahmaputra release can be found in a | +| | in a separate section in this document. | +| | | ++--------------------+------------------------------------------------------+ + +*Additional third-party plugins can be found here:* +*https://www.mirantis.com/products/openstack-drivers-and-plugins/fuel-plugins/* +**Note: Plugins are not necessarilly compatible with each other, see section +"Configuration options, OPNFV scenarios" for compatibility information** + +The plugins come prepackaged, ready to install. To do so follow the +installation instructions provided in *Reference 13* provided in section +*"Fuel associated references"* below. + +Fuel environment +^^^^^^^^^^^^^^^^ +A Fuel environment is an OpenStack instance managed by Fuel, +one Fuel instance can manage several OpenStack instances/environments +with different configurations, etc. + +To create a Fuel instance, follow the instructions provided in the installation +instructions, see *Reference 13* in section *"Fuel associated references"* below. + +Provisioning of aditional features and services +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Although the plugins have already previously been installed, +they are not per default enabled for the environment we just created. +The plugins of your choice need to be enabled and configured. + +To enable a plugin, follow the installation instructions found in +*Reference 13*, provided in section *"Fuel associated references"* below. + +For configuration of the plugins, please see section "Feature Configuration". + +Networking +^^^^^^^^^^ +All the networking aspects need to be configured in terms of: +- Interfaces/NICs +- VLANs +- Sub-nets +- Gateways +- User network segmentation (VLAN/VXLAN) +- DNS +- NTP +- etc. + +For guidelines on how to configure networking, please refer to the +installation instructions found in *Reference 13* provided in section +*"Fuel associated references"* below. + +Node allocation +^^^^^^^^^^^^^^^ +Now, it is time to allocate the nodes in your OPNFV cluster to OpenStack-, +SDN-, and other feature/service roles. Some roles may require redundancy, +while others don't; Some roles may be co-located with other roles, while +others may not. The Fuel GUI will guide you in the allocation of roles and +will not permit you to perform invalid allocations. + +For detailed guide-lines on node allocation, please refer to the installation instructions found in *Reference 13*, provided in section *"Fuel associated references"* below. + +Off-line deployment +^^^^^^^^^^^^^^^^^^^ +The OPNFV Brahmaputra version of Fuel can be deployed using on-line upstream +repositories (default) or off-line using built-in local repositories on the +Fuel jump-start server. + +For instructions on how to configure Fuel for off-line deployment, please +refer to the installation instructions found in, *Reference 13*, provided +in section *"Fuel associated references"* below. + +Deployment +^^^^^^^^^^ +You should now be ready to deploy your OPNFV Brahmaputra environment - but before doing so you may want to verify your network settings. + +For further details on network verification and deployment, please refer to +the installation instructions found in, *Reference 13*, provided in section +*"Fuel associated references"* below. + +Fuel associated references +-------------------------- + +OPNFV +~~~~~ + +1) `OPNFV Home Page `_ + +2) `OPNFV documentation- and software downloads `_ + +OpenStack +~~~~~~~~~ + +3) `OpenStack Liberty Release artifacts `_ + +4) `OpenStack documentation `_ + +OpenDaylight +~~~~~~~~~~~~ + +5) `OpenDaylight artifacts `_ + +Fuel +~~~~ + +6) `The Fuel OpenStack project `_ + +7) `Fuel documentation overview `_ + +8) `Fuel planning guide `_ + +9) `Fuel user guide `_ + +10) `Fuel operations guide `_ + +11) `Fuel Plugin Developers Guide `_ + +12) `Fuel OpenStack Hardware Compatibility List `_ + +Fuel in OPNFV +~~~~~~~~~~~~~ + +13) OPNFV Installation instruction for the Brahmaputra release of OPNFV when using Fuel as a deployment tool + +14) OPNFV Build instruction for the Brahmaputra release of OPNFV when using Fuel as a deployment tool + +15) OPNFV Release Note for the Brahmaputra release of OPNFV when using Fuel as a deployment tool diff --git a/docs/configguide/postinstall.rst b/docs/configguide/postinstall.rst new file mode 100644 index 00000000..e80d72aa --- /dev/null +++ b/docs/configguide/postinstall.rst @@ -0,0 +1,23 @@ +.. This document is protected/licensed under the following conditions +.. (c) Jonas Bjurel (Ericsson AB) +.. Licensed under a Creative Commons Attribution 4.0 International License. +.. You should have received a copy of the license along with this work. +.. If not, see . + +Fuel post installation procedures +================================= + +Automated post installation activities +-------------------------------------- +Fuel provides a fairly broad coverage of built in automated health checks. +These validate the installation in terms of configuration, services, +networking, storage, policies, etc. +The execution of the full range of health checks takes less than 30 minutes. + +For instructions on how to run health-checks, please refer to the Fuel installation instructions. + +Platform components validation +------------------------------ +Consult the feature sections in this document for any post-install +feature specific validation/health-checks. + diff --git a/docs/img/addnodes.png b/docs/img/addnodes.png new file mode 100644 index 00000000..15730db9 Binary files /dev/null and b/docs/img/addnodes.png differ diff --git a/docs/img/compute.png b/docs/img/compute.png new file mode 100644 index 00000000..fd7811f3 Binary files /dev/null and b/docs/img/compute.png differ diff --git a/docs/img/computelist.png b/docs/img/computelist.png new file mode 100644 index 00000000..a4453d95 Binary files /dev/null and b/docs/img/computelist.png differ diff --git a/docs/img/fuelmenu1.png b/docs/img/fuelmenu1.png new file mode 100644 index 00000000..15fccc43 Binary files /dev/null and b/docs/img/fuelmenu1.png differ diff --git a/docs/img/fuelmenu2.png b/docs/img/fuelmenu2.png new file mode 100644 index 00000000..1f87c53e Binary files /dev/null and b/docs/img/fuelmenu2.png differ diff --git a/docs/img/fuelmenu3.png b/docs/img/fuelmenu3.png new file mode 100644 index 00000000..c9fa2795 Binary files /dev/null and b/docs/img/fuelmenu3.png differ diff --git a/docs/img/fuelmenu4.png b/docs/img/fuelmenu4.png new file mode 100644 index 00000000..1bc9c041 Binary files /dev/null and b/docs/img/fuelmenu4.png differ diff --git a/docs/img/fuelmenu5.png b/docs/img/fuelmenu5.png new file mode 100644 index 00000000..11247986 Binary files /dev/null and b/docs/img/fuelmenu5.png differ diff --git a/docs/img/fuelmenu6.png b/docs/img/fuelmenu6.png new file mode 100644 index 00000000..9ff62c79 Binary files /dev/null and b/docs/img/fuelmenu6.png differ diff --git a/docs/img/grub-1.png b/docs/img/grub-1.png new file mode 100644 index 00000000..7488503a Binary files /dev/null and b/docs/img/grub-1.png differ diff --git a/docs/img/health.png b/docs/img/health.png new file mode 100644 index 00000000..71675069 Binary files /dev/null and b/docs/img/health.png differ diff --git a/docs/img/interfaceconf.png b/docs/img/interfaceconf.png new file mode 100644 index 00000000..e8b45578 Binary files /dev/null and b/docs/img/interfaceconf.png differ diff --git a/docs/img/interfaces.png b/docs/img/interfaces.png new file mode 100644 index 00000000..291e434f Binary files /dev/null and b/docs/img/interfaces.png differ diff --git a/docs/img/network.png b/docs/img/network.png new file mode 100644 index 00000000..04c67d38 Binary files /dev/null and b/docs/img/network.png differ diff --git a/docs/img/neutronl3.png b/docs/img/neutronl3.png new file mode 100644 index 00000000..dd8d7954 Binary files /dev/null and b/docs/img/neutronl3.png differ diff --git a/docs/img/newenv.png b/docs/img/newenv.png new file mode 100644 index 00000000..d6bc2827 Binary files /dev/null and b/docs/img/newenv.png differ diff --git a/docs/img/nodes.png b/docs/img/nodes.png new file mode 100644 index 00000000..771e4813 Binary files /dev/null and b/docs/img/nodes.png differ diff --git a/docs/img/other.png b/docs/img/other.png new file mode 100644 index 00000000..4e740eb0 Binary files /dev/null and b/docs/img/other.png differ diff --git a/docs/img/plugin_install.png b/docs/img/plugin_install.png new file mode 100644 index 00000000..ff50633e Binary files /dev/null and b/docs/img/plugin_install.png differ diff --git a/docs/img/plugins.png b/docs/img/plugins.png new file mode 100644 index 00000000..bfe8781e Binary files /dev/null and b/docs/img/plugins.png differ diff --git a/docs/img/verifynet.png b/docs/img/verifynet.png new file mode 100644 index 00000000..5932bc22 Binary files /dev/null and b/docs/img/verifynet.png differ diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 00000000..6bba3aaf --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,19 @@ +.. This document is protected/licensed under the following conditions +.. (c) Jonas Bjurel (Ericsson AB) +.. Licensed under a Creative Commons Attribution 4.0 International License. +.. You should have received a copy of the license along with this work. +.. If not, see . + +********** +Fuel@OPNFV +********** + +.. toctree:: + :maxdepth: 4 + + build-instruction.rst + installation-instruction.rst + release-notes.rst + +.. :titlesonly: + diff --git a/docs/installation-instruction.rst b/docs/installation-instruction.rst new file mode 100644 index 00000000..f7125816 --- /dev/null +++ b/docs/installation-instruction.rst @@ -0,0 +1,626 @@ +======================================================================================================== +OPNFV Installation instruction for the Brahmaputra release of OPNFV when using Fuel as a deployment tool +======================================================================================================== + +License +======= + +This work is licensed under a Creative Commons Attribution 4.0 International +License. .. http://creativecommons.org/licenses/by/4.0 .. +(c) Jonas Bjurel (Ericsson AB) and others + +Abstract +======== + +This document describes how to install the Brahmaputra release of +OPNFV when using Fuel as a deployment tool, covering it's usage, +limitations, dependencies and required system resources. + +Introduction +============ + +This document provides guidelines on how to install and +configure the Brahmaputra release of OPNFV when using Fuel as a +deployment tool, including required software and hardware configurations. + +Although the available installation options give a high degree of +freedom in how the system is set-up, including architecture, services +and features, etc., said permutations may not provide an OPNFV +compliant reference architecture. This instruction provides a +step-by-step guide that results in an OPNFV Brahmaputra compliant +deployment. + +The audience of this document is assumed to have good knowledge in +networking and Unix/Linux administration. + +Preface +======= +Before starting the installation of the Brahmaputra release of +OPNFV, using Fuel as a deployment tool, some planning must be +done. + +Retrieving the ISO image +------------------------ + +First of all, the Fuel deployment ISO image needs to be retrieved, the +Fuel .iso image of the Brahmaputra release can be found at *Reference: 2* + +Building the ISO image +---------------------- + +Alternatively, you may build the Fuel .iso from source by cloning the +opnfv/fuel git repository. To retrieve the repository for the Brahmaputra release use the following command: + +$git clone https://@gerrit.opnf.org/gerrit/fuel + +Check-out the Brahmaputra release tag to set the branch to the +baseline required to replicate the Brahmaputra release: + +$ git checkout brahmaputra.1.0 + +Go to the fuel directory and build the .iso: + +$ cd fuel/build; make all + +For more information on how to build, please see *Reference: 14* + +Other preparations +------------------ + +Next, familiarize yourself with Fuel by reading the following documents: + +- Fuel planning guide, please see *Reference: 8* + +- Fuel user guide, please see *Reference: 9* + +- Fuel operations guide, please see *Reference: 10* + +- Fuel Plugin Developers Guide, please see *Reference: 11* + +Prior to installation, a number of deployment specific parameters must be collected, those are: + +#. Provider sub-net and gateway information + +#. Provider VLAN information + +#. Provider DNS addresses + +#. Provider NTP addresses + +#. Network overlay you plan to deploy (VLAN, VXLAN, FLAT) + +#. How many nodes and what roles you want to deploy (Controllers, Storage, Computes) + +#. Monitoring options you want to deploy (Ceilometer, Syslog, erc.). + +#. Other options not covered in the document are available in the links above + + +This information will be needed for the configuration procedures +provided in this document. + +Hardware requirements +===================== + +The following minimum hardware requirements must be met for the +installation of Brahmaputra using Fuel: + ++--------------------+------------------------------------------------------+ +| **HW Aspect** | **Requirement** | +| | | ++====================+======================================================+ +| **# of nodes** | Minimum 5 (3 for non redundant deployment): | +| | | +| | - 1 Fuel deployment master (may be virtualized) | +| | | +| | - 3(1) Controllers (1 colocated mongo/ceilometer | +| | role, 2 Ceph-OSD roles) | +| | | +| | - 1 Compute (1 co-located Ceph-OSD role) | +| | | ++--------------------+------------------------------------------------------+ +| **CPU** | Minimum 1 socket x86_AMD64 with Virtualization | +| | support | ++--------------------+------------------------------------------------------+ +| **RAM** | Minimum 16GB/server (Depending on VNF work load) | +| | | ++--------------------+------------------------------------------------------+ +| **Disk** | Minimum 256GB 10kRPM spinning disks | +| | | ++--------------------+------------------------------------------------------+ +| **Networks** | 4 Tagged VLANs (PUBLIC, MGMT, STORAGE, PRIVATE) | +| | | +| | 1 Un-Tagged VLAN for PXE Boot - ADMIN Network | +| | | +| | Note: These can be allocated to a single NIC - | +| | or spread out over multiple NICs as your hardware | +| | supports. | ++--------------------+------------------------------------------------------+ + +Help with Hardware Requirements +=============================== + +Calculate hardware requirements: + +For information on compatible hardware types available for use, please see *Reference: 11*. + +When choosing the hardware on which you will deploy your OpenStack +environment, you should think about: + +- CPU -- Consider the number of virtual machines that you plan to deploy in your cloud environment and the CPU per virtual machine. + +- Memory -- Depends on the amount of RAM assigned per virtual machine and the controller node. + +- Storage -- Depends on the local drive space per virtual machine, remote volumes that can be attached to a virtual machine, and object storage. + +- Networking -- Depends on the Choose Network Topology, the network bandwidth per virtual machine, and network storage. + + +Top of the rack (TOR) Configuration requirements +================================================ + +The switching infrastructure provides connectivity for the OPNFV +infrastructure operations, tenant networks (East/West) and provider +connectivity (North/South); it also provides needed connectivity for +the Storage Area Network (SAN). +To avoid traffic congestion, it is strongly suggested that three +physically separated networks are used, that is: 1 physical network +for administration and control, one physical network for tenant private +and public networks, and one physical network for SAN. +The switching connectivity can (but does not need to) be fully redundant, +in such case it comprises a redundant 10GE switch pair for each of the +three physically separated networks. + +The physical TOR switches are **not** automatically configured from +the Fuel OPNFV reference platform. All the networks involved in the OPNFV +infrastructure as well as the provider networks and the private tenant +VLANs needs to be manually configured. + +Manual configuration of the Brahmaputra hardware platform should +be carried out according to the OPNFV Pharos specification: + + +OPNFV Software installation and deployment +========================================== + +This section describes the installation of the OPNFV installation +server (Fuel master) as well as the deployment of the full OPNFV +reference platform stack across a server cluster. + +Install Fuel master +------------------- +#. Mount the Brahmaputra Fuel ISO file/media as a boot device to the jump host server. + +#. Reboot the jump host to establish the Fuel server. + + - The system now boots from the ISO image. + + - Select "Fuel Install (Static IP)" (See figure below) + + - Press [Enter]. + + .. figure:: img/grub-1.png + +#. Wait until screen Fuel setup is shown (Note: This can take up to 30 minutes). + +#. In the "Fuel User" section - Confirm/change the default password (See figure below) + + - Enter "admin" in the Fuel password input + + - Enter "admin" in the Confirm password input + + - Select "Check" and press [Enter] + + .. figure:: img/fuelmenu1.png + +#. 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). + + - Configure eth1 or other network interfaces here as well (if you have them present on your FUEL server). + + .. figure:: img/fuelmenu2.png + +#. In the "PXE Setup" section (see figure below) - Change the following fields to appropriate values (example below): + + - DHCP Pool Start 10.20.0.3 + + - DHCP Pool End 10.20.0.254 + + - DHCP Pool Gateway 10.20.0.2 (IP address of Fuel node) + + .. figure:: img/fuelmenu3.png + +#. In the "DNS & Hostname" section (see figure below) - Change the following fields to appropriate values: + + - Hostname + + - Domain + + - Search Domain + + - External DNS + + - Hostname to test DNS + + - Select and press [Enter] + + .. figure:: img/fuelmenu4.png + + +#. 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) + + - Navigate to "HTTP proxy" and enter your http proxy address + + - Select and press [Enter] + + .. figure:: img/fuelmenu5.png + +#. In the "Time Sync" section (see figure below) - Change the following fields to appropriate values: + + - NTP Server 1 + + - NTP Server 2 + + - NTP Server 3 + + .. figure:: img/fuelmenu6.png + +#. Start the installation. + + - Select Quit Setup and press Save and Quit. + + - Installation starts, wait until the login screen is shown. + + +Boot the Node Servers +--------------------- + +After the Fuel Master node has rebooted from the above steps and is at +the login prompt, you should boot the Node Servers (Your +Compute/Control/Storage blades (nested or real) with a PXE booting +scheme so that the FUEL Master can pick them up for control. + +#. Enable PXE booting + + - 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. + +#. Reboot all the control and compute blades. + +#. Wait for the availability of nodes showing up in the Fuel GUI. + + - Connect to the FUEL UI via the URL provided in the Console (default: https://10.20.0.2:8443) + + - Wait until all nodes are displayed in top right corner of the Fuel GUI: Total nodes and Unallocated nodes (see figure below). + + .. figure:: img/nodes.png + + +Install additional Plugins/Features on the FUEL node +---------------------------------------------------- + +#. SSH to your FUEL node (e.g. root@10.20.0.2 pwd: r00tme) + +#. Select wanted plugins/features from the /opt/opnfv/ directory. + +#. Install the wanted plugin with the command "fuel plugins --install /opt/opnfv/-..rpm" + Expected output: "Plugin ....... was successfully installed." (see figure below) + + .. figure:: img/plugin_install.png + +Create an OpenStack Environment +------------------------------- + +#. Connect to Fuel WEB UI with a browser (default: https://10.20.0.2:8443) (login admin/admin) + +#. Create and name a new OpenStack environment, to be installed. + + .. figure:: img/newenv.png + +#. Select "" and press + +#. Select "compute virtulization method". + + - Select "QEMU-KVM as hypervisor" and press + +#. Select "network mode". + + - Select "Neutron with ML2 plugin" + + - Select "Neutron with tunneling segmentation" (Required when using the ODL or ONOS plugins) + + - Press + +#. Select "Storage Back-ends". + + - Select "Ceph for block storage" and press + +#. Select "additional services" you wish to install. + + - Check option "Install Celiometer (OpenStack Telemetry)" and press + +#. Create the new environment. + + - Click Button + +Configure the network environment +--------------------------------- + +#. Open the environment you previously created. + +#. Open the networks tab and select the "default Node Networks group to" on the left pane (see figure below). + + .. figure:: img/network.png + +#. Update the Public network configuration and change the following fields to appropriate values: + + - CIDR to + + - IP Range Start to + + - IP Range End to + + - Gateway to + + - Check . + + - Set appropriate VLAN id. + +#. Update the Storage Network Configuration + + - Set CIDR to appropriate value (default 192.168.1.0/24) + + - Set IP Range Start to appropriate value (default 192.168.1.1) + + - Set IP Range End to appropriate value (default 192.168.1.254) + + - Set vlan to appropriate value (default 102) + +#. Update the Management network configuration. + + - Set CIDR to appropriate value (default 192.168.0.0/24) + + - Set IP Range Start to appropriate value (default 192.168.0.1) + + - Set IP Range End to appropriate value (default 192.168.0.254) + + - Check . + + - Set appropriate VLAN id. (default 101) + +#. Update the Private Network Information + + - Set CIDR to appropriate value (default 192.168.2.0/24 + + - Set IP Range Start to appropriate value (default 192.168.2.1) + + - Set IP Range End to appropriate value (default 192.168.2.254) + + - Check . + + - Set appropriate VLAN tag (default 103) + +#. Select the "Neutron L3 Node Networks group" on the left pane. + + .. figure:: img/neutronl3.png + +#. Update the Floating Network configuration. + + - Set the Floating IP range start (default 172.16.0.130) + + - Set the Floating IP range end (default 172.16.0.254) + + - Set the Floating network name (default admin_floating_net) + +#. Update the Internal Network configuration. + + - Set Internal network CIDR to an appropriate value (default 192.168.111.0/24) + + - Set Internal network gateway to an appropriate value + + - Set the Internal network name (default admin_internal_net) + +#. Update the Guest OS DNS servers. + + - Set Guest OS DNS Server values appropriately + +#. Save Settings. + +#. Select the "Other Node Networks group" on the left pane(see figure below). + + .. figure:: img/other.png + +#. Update the Public network assignment. + + - Check the box for "Assign public network to all nodes" (Required by OpenDaylight) + +#. Update Host OS DNS Servers. + + - Provide the DNS server settings + +#. Update Host OS NTP Servers. + + - Provide the NTP server settings + +Select Hypervisor type +---------------------- + +#. In the FUEL UI of your Environment, click the "Settings" Tab + +#. Select Compute on the left side pane (see figure below) + + - Check the KVM box and press "Save settings" + + .. figure:: img/compute.png + +Enable Plugins +-------------- + +#. In the FUEL UI of your Environment, click the "Settings" Tab + +#. Select Other on the left side pane (see figure below) + + - Enable and configure the plugins of your choice + + .. figure:: img/plugins.png + +Allocate nodes to environment and assign functional roles +--------------------------------------------------------- + +#. Click on the "Nodes" Tab in the FUEL WEB UI (see figure below). + + .. figure:: img/addnodes.png + +#. Assign roles (see figure below). + + - Click on the <+Add Nodes> button + + - Check , and optionally an SDN Controller role (OpenDaylight controller/ONOS) in the Assign Roles Section. + + - Check one node which you want to act as a Controller from the bottom half of the screen + + - Click . + + - Click on the <+Add Nodes> button + + - Check the and roles. + + - Check the two next nodes you want to act as Controllers from the bottom half of the screen + + - Click + + - Click on <+Add Nodes> button + + - Check the and roles. + + - Check the Nodes you want to act as Computes from the bottom half of the screen + + - Click . + + .. figure:: img/computelist.png + +#. Configure interfaces (see figure below). + + - Check Select to select all allocated nodes + + - Click + + - Assign interfaces (bonded) for mgmt-, admin-, private-, public- + and storage networks + + - Click + + .. figure:: img/interfaceconf.png + + +OPTIONAL - Set Local Mirror Repos +--------------------------------- + +The following steps can be executed if you are in an environment with +no connection to the Internet. The Fuel server delivers a local repo +that can be used for installation / deployment of openstack. + +#. In the Fuel UI of your Environment, click the Settings Tab and select General from the left pane. + + - Replace the URI values for the "Name" values outlined below: + + - "ubuntu" URI="deb http://:8080/mirrors/ubuntu/ trusty main" + + - "ubuntu-security" URI="deb http://:8080/mirrors/ubuntu/ trusty-security main" + + - "ubuntu-updates" URI="deb http://:8080/mirrors/ubuntu/ trusty-updates main" + + - "mos" URI="deb http://::8080/liberty-8.0/ubuntu/x86_64 mos8.0 main restricted" + + - "Auxiliary" URI="deb http://:8080/liberty-8.0/ubuntu/auxiliary auxiliary main restricted" + + - Click at the bottom to Save your changes + +Verify Networks +--------------- + +It is important that the Verify Networks action is performed as it will verify +that communicate works for the networks you have setup, as well as check that +packages needed for a successful deployment can be fetched. + +#. From the FUEL UI in your Environment, Select the Networks Tab and select "Connectivity check" on the left pane (see figure below) + + - Select + + - Continue to fix your topology (physical switch, etc) until the "Verification Succeeded" and "Your network is configured correctly" message is shown + + .. figure:: img/verifynet.png + + +Deploy Your Environment +----------------------- + +38. Deploy the environment. + + - In the Fuel GUI, click on the "Dashboard" Tab. + + - Click on in the "Ready to Deploy?" section + + - Examine any information notice that pops up and click + + Wait for your deployment to complete, you can view the "Dashboard" + Tab to see the progress and status of your deployment. + +Installation health-check +========================= + +#. Perform system health-check (see figure below) + + - Click the "Health Check" tab inside your Environment in the FUEL Web UI + + - Check