Change Amsterdam by Beijing
[doc.git] / docs / guides / onap-developer / settingup / fullonap.rst
index 5436cc6..d8529ef 100644 (file)
@@ -1,12 +1,15 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. This work is licensed under a Creative Commons Attribution 4.0
+   International License.
    http://creativecommons.org/licenses/by/4.0
-   Copyright 2017 ONAP
+   Copyright 2017-2018 ONAP
 
 
 .. contents::
    :depth: 2
 ..
 
+.. index:: Setting Up Full ONAP
+
 
 ========================
 **Setting Up Full ONAP**
 
 **Context**
 ===========
-ONAP may be deployed in different contexts depending on your requirements. The recommended installation for Amsterdam Release is currently based on OpenStack.
+ONAP may be deployed in different contexts depending on your requirements.
+The recommended installation for Beijng Release over virtual machines is based
+on OpenStack HEAT Template.
+
+Using the Beijing HEAT Template installer, ONAP can be deployed in a single
+tenant or multiple tenants. One tenant for all the components except DCAE, and
+another tenant dedicated to the DCAE components.
+
+The VNFs managed by ONAP may be deployed in different OpenStack tenants or
+based on top of VMware based infrastructure. For details, refer
+:ref:`to MultiCloud project<index-multicloud>`.
 
-Using the Amsterdam Release installer, ONAP components may be deployed in a single tenant or multiple tenants. One tenant for all the components except DCAE, and another tenant dedicated to the DCAE components.
+The current installation is based on the single tenant deployment (all the ONAP
+components will be hosted in a unique tenant) with DCAE components deployed in
+High Availability mode.
 
-The VNFs managed by ONAP may be deployed in different OpenStack tenants or based on top of VMware based infrastructure (cf MultiCloud project).
+The installation requires some manual tasks to setup the DCAE components.
 
-The current installation is based on the single tenant deployment (all the ONAP components will be hosted in a unique tenant) with DCAE componntes deployed in High Availability mode.
+.. _demo-installing-running-onap-requirements:
 
 **Requirements**
 ================
 
 OpenStack
 ---------
-ONAP installation is validated on `OpenStack Ocata <https://releases.openstack.org/ocata/>`_ or latter release.
+ONAP installation is validated on
+`OpenStack Ocata <https://releases.openstack.org/ocata/>`_ or latter release.
 
-The following Open Stack components must be deployed in the infrastructure:
+You can use various Cloud providers offering OpenStack based solutions.
+A list of available Cloud providers on the
+`OpenStack marketplace <https://www.openstack.org/marketplace/public-clouds/>`_.
+
+You can use your private Cloud infrastructure.
+
+The following OpenStack components must be deployed in the infrastructure:
  - *Cinder*
  - *Designate*
  - *Glance*
@@ -42,17 +64,35 @@ The following Open Stack components must be deployed in the infrastructure:
  - *Nova*
 
 To deploy OpenStack, you can use various solutions:
- - `OpenStack installer <https://docs.openstack.org/install-guide/>`_
+ - `OpenStack installation guide <https://docs.openstack.org/install-guide/>`_
  - `OPNFV Cross Community Continuous Integration - XCI installer <http://docs.opnfv.org/en/latest/infrastructure/xci.html>`_
+ - `OpenStack Ocata installation guide <https://docs.openstack.org/ocata/install/>`_
+
+.. tip::
+ - Notice the documentation version mentioned in the URL, e.g. ocata/, pike/,
+   latest/ ...
+ - The installation is pretty huge, some automated scripts have been created by
+   the community:
+
+  - `OpenStack installation with Ansible (All openstack services) <https://docs.openstack.org/openstack-ansible/latest/>`_
+  - `OpenStack Ocata installation scripts for testing environment(DO NOT install Heat, Designate and Cinder Volume services) <https://github.com/reachsrirams/openstack-scripts>`_
+
+Use the procedure below to deploy and configure *Designate* manually
 
-*Designate* component is usually not deployed using standard OpenStack installers.
-Please find a guide to deploy and configure *Designate*.
+.. toctree::
+   :maxdepth:   1
 
-The OpenStack infrastructure must enable internet access.
+   install-designate.rst
+
+
+The OpenStack infrastructure must enable internet access and you need to have
+an "External network" already configured properly.
+The External network ID will have to be provided in the Heat environment file.
 
 ONAP components
 ---------------
-The following table presents the mapping between the created VM and the ONAP components, and provides informtaion about he VM (flavor and image):
+The following table presents the mapping between the created VM and the ONAP
+components, and provides VM information (flavor and image):
 
     ===================  =================   =======  ============
     VM name              ONAP project(s)     Flavor   Image
@@ -95,55 +135,350 @@ The ONAP installation requires the following footprint:
  - 148 vCPU
  - 336 GB RAM
  - 3 TB Storage
- - 29 floating IP
+ - 29 floating IP addresses
 
-.. Note: the default flavor size may be optimized. The ONAP community is working to provide adpted flavors for basic ONAP installation.
+.. Note: The default flavor size may be optimized. The ONAP community is
+   working to update flavors of basic ONAP installation.
 
-.. Note: you should also reserve some resourcse for the VNFs to be deployed.
+.. Note: You should also reserve some resources for the VNFs to be deployed.
 
 Artifacts
 ---------
-The following artifacts must be deployed on the OpenStack infrastructure.
+The following artifacts must be deployed on the OpenStack infrastructure:
  - a public SSH key to access the various VM
  - private SSH key and public key SSH key for the DCAE VM
- - Ubuntu 14.04 image
- - Ubuntu 16.04 image
- - CentOS 7 image
+ - Ubuntu 14.04 image (https://cloud-images.ubuntu.com/releases/14.04/14.04/)
+ - Ubuntu 16.04 image (https://cloud-images.ubuntu.com/releases/16.04/release/)
+ - CentOS 7 image (http://cloud.centos.org/centos/7/images/)
  - Set of flavors: small, medium, large, medium, large, xlarge, xxlarge
 
-.. Note that floating IP may be private IP.
+.. Note: The floating IP may be private IP.
 
-.. Note Basic flavors can reuse the default flavors as defined by `OpenStack <https://docs.openstack.org/horizon/latest/admin/manage-flavors.html>`_
-   The xxlarge flavor should be confiured using the following values: 12 vCPU, 64 GB RAM and 120 GB storage.
+.. Note: Basic flavors can reuse the default flavors as defined by
+   OpenStack
+   <https://docs.openstack.org/horizon/latest/admin/manage-flavors.html>`_
+   The xxlarge flavor should be configured using the following values:
+   12 vCPU, 64 GB RAM and 120 GB storage.
 
 Security
 --------
-The default installation assumes that the Default security group is configured to enable full access between the ONAP components.
-Depending on your environment, we may need to open some security groups (eg when using the portal from your desktop).
-
-The following tables presents the ports exposed by the various components:
+The default installation assumes that the Default security group is configured
+to enable full access between the ONAP components.
+Depending on your environment, we may need to open some security groups
+(eg when using the portal from your desktop).
 
-TODO list the ports
+The list of various services and ports used can be found on the
+`ONAP wiki - ports <https://wiki.onap.org/display/DW/ONAP+Services+List#ONAPServicesList-ONAPServices>`_.
 
 **Deployment**
 ==============
 
+Source files
+------------
+
+Both following files must be downloaded and configured to match your
+configuration:
+
+- Template file:
+  https://git.onap.org/demo/plain/heat/ONAP/onap_openstack.yaml
+- Environment file:
+  https://git.onap.org/demo/plain/heat/ONAP/onap_openstack.env
+
+The environment file must be customized as described in the following sections.
+
+.. Note Beijing release files
+
+Description
+-----------
+
+The ONAP HEAT template spins up all the components expect the DCAE.
+The template, onap_openstack.yaml, comes with an environment file,
+onap_openstack.env, in which all the default values are defined.
+
+The HEAT template is composed of two sections: (i) parameters, and (ii)
+resources.
+The parameter section contains the declaration and
+description of the parameters that will be used to spin up ONAP, such as
+public network identifier, URLs of code and artifacts repositories, etc.
+The default values of these parameters can be found in the environment
+file.
+
+The resource section contains the definition of:
+
+- ONAP Private Management Network, which ONAP components use to communicate
+  with each other and with VNFs
+- ONAP Virtual Machines (VMs)
+- Public/private key pair used to access ONAP VMs
+- Virtual interfaces towards the ONAP Private Management Network
+- Disk volumes
+
+Each VM specification includes Operating System image name, VM size
+(i.e. flavor), VM name, etc. Each VM has two virtual network interfaces:
+one towards the public network and one towards the ONAP Private
+Management network, as described above. Furthermore, each VM runs a
+post-instantiation script that downloads and installs software
+dependencies (e.g. Java JDK, gcc, make, Python, ...) and ONAP software
+packages and Docker containers from remote repositories.
+
+When the HEAT template is executed, the OpenStack HEAT engine creates
+the resources defined in the HEAT template, based on the parameters
+values defined in the environment file.
+
+Environment file
+----------------
+
+Before running HEAT, it is necessary to customize the environment file.
+Indeed, some parameters, namely public_net_id, pub_key,
+openstack_tenant_id, openstack_username, and openstack_api_key,
+need to be set depending on the user's environment:
+
+**Global parameters**
+
+::
+
+ public_net_id:       PUT YOUR NETWORK ID/NAME HERE
+ pub_key:             PUT YOUR PUBLIC KEY HERE
+ openstack_tenant_id: PUT YOUR OPENSTACK PROJECT ID HERE
+ openstack_username:  PUT YOUR OPENSTACK USERNAME HERE
+ openstack_api_key:   PUT YOUR OPENSTACK PASSWORD HERE
+ horizon_url:         PUT THE HORIZON URL HERE
+ keystone_url:        PUT THE KEYSTONE URL HERE (do not include version number)
+
+openstack_region parameter is set to RegionOne (OpenStack default). If
+your OpenStack is using another Region, please modify this parameter.
+
+public_net_id is the unique identifier (UUID) or name of the public
+network of the cloud provider. To get the public_net_id, use the
+following OpenStack CLI command (ext is the name of the external
+network, change it with the name of the external network of your
+installation)
+
+::
+
+ openstack network list  | grep ext |  awk '{print $2}'
+
+pub_key is string value of the public key that will be installed in
+each ONAP VM. To create a public/private key pair in Linux, please
+execute the following instruction:
+
+::
+
+ user@ubuntu:~$ ssh-keygen -t rsa
+
+The following operations create the public/private key pair:
+
+::
+
+ Generating public/private rsa key pair.
+ Enter file in which to save the key (/home/user/.ssh/id_rsa):
+ Created directory '/home/user/.ssh'.
+ Enter passphrase (empty for no passphrase):
+ Enter same passphrase again:
+ Your identification has been saved in /home/user/.ssh/id_rsa.
+ Your public key has been saved in /home/user/.ssh/id_rsa.pub.
+
+openstack_username, openstack_tenant_id (password), and
+openstack_api_key are user's credentials to access the
+OpenStack-based cloud.
+
+**Images and flavors parameters**
+
+::
+
+ ubuntu_1404_image:  PUT THE UBUNTU 14.04 IMAGE NAME HERE
+ ubuntu_1604_image:  PUT THE UBUNTU 16.04 IMAGE NAME HERE
+ flavor_small:       PUT THE SMALL FLAVOR NAME HERE
+ flavor_medium:      PUT THE MEDIUM FLAVOR NAME HERE
+ flavor_large:       PUT THE LARGE FLAVOR NAME HERE
+ flavor_xlarge:      PUT THE XLARGE FLAVOR NAME HERE
+ flavor_xxlarge:     PUT THE XXLARGE FLAVOR NAME HERE
+
+To get the images in your OpenStack environment, use the following
+OpenStack CLI command:
+
+::
+
+        openstack image list | grep 'ubuntu'
+
+To get the flavor names used in your OpenStack environment, use the
+following OpenStack CLI command:
+
+::
+
+        openstack flavor list
+
+**Network parameters**
+
+::
+
+ dns_list: PUT THE ADDRESS OFTHE EXTERNAL DNS HERE (e.g. a comma-separated list
+ of IP addresses in your /etc/resolv.conf in UNIX-based Operating Systems).
+ THIS LIST MUST INCLUDE THE DNS SERVER THAT OFFERS DNS AS AS SERVICE
+ see DCAE section below for more details)
+ external_dns: PUT THE FIRST ADDRESS OF THE EXTERNAL DNS LIST HERE
+ oam_network_cidr: 10.0.0.0/16
+ dns_forwarder: PUT THE IP OF DNS FORWARDER FOR ONAP DEPLOYMENT'S OWN DNS SERVER
+ oam_network_cidr: 10.0.0.0/16
+
+You can use the Google Public DNS 8.8.8.8 and 4.4.4.4 address or your internal
+DNS servers.
+
+ONAP installs a DNS server used to resolve IP addresses in the ONAP OAM private
+network.
+ONAP Beijing Release also requires OpenStack Designate DNS support for the
+DCAE platform, so as to allow IP address discovery and communication among
+DCAE elements.
+This is required because the ONAP HEAT template only installs the DCAE
+bootstrap container, which will in turn install the entire DCAE platform.
+As such, at installation time, the IP addresses of the DCAE components are
+unknown.
+
+The DNS server that ONAP installs needs to be connected to the Designate DNS to
+allow communication between the DCAE elements and the other ONAP components.
+To this end, dns\_list, external\_dns, and dns\_forwarder should all have the
+IP address of the Designate DNS.
+These three parameters are redundant, but still required for Beijing Release.
+Originally, dns\_list and external\_dns were both used to circumvent some
+limitations of older OpenStack versions.
+In future releases, the DNS settings and parameters in HEAT will be
+consolidated.
+The Designate DNS is configured to access the external DNS.
+As such, the ONAP DNS will forward to the Designate DNS the queries from ONAP
+components to the external world.
+The Designate DNS will then forward those queries to the external DNS.
+
+**DCAE Parameters**
+
+DCAE spins up ONAP's data collection and analytics system in two phases.
+
+The first phase consists of launching a bootstrap VM that is specified in the
+ONAP HEAT template, as described above. This VM requires a number of
+deployment-specific configuration parameters being provided so that it can
+subsequently bring up the DCAE system.
+
+There are two groups of parameters:
+
+- The first group relates to the launching of DCAE VMs, including parameters
+  such as the keystone URL and additional VM image IDs/names. Hence these
+  parameters need to be provided to DCAE. Note that although DCAE VMs will be
+  launched in the same tenant as the rest of ONAP, because DCAE may use
+  MultiCloud node as the agent for interfacing with the underlying cloud, it
+  needs a separate keystone URL (which points to MultiCloud node instead of
+  the underlying cloud).
+
+
+- The second group of configuration parameters relate to DNS As A Service
+  support(DNSaaS). DCAE requires DNSaaS for registering its VMs into
+  organization-wide DNS service. For OpenStack, DNSaaS is provided by
+  Designate, as mentioned above.
+  Designate support can be provided via an integrated service endpoint listed
+  under the service catalog of the OpenStack installation; or proxyed by the
+  ONAP MultiCloud service. For the latter case, a number of parameters are
+  needed to configure MultiCloud to use the correct Designate service.
+
+These parameters are described below:
+
+::
+
+ dcae_keystone_url: PUT THE MULTIVIM PROVIDED KEYSTONE API URL HERE
+ dcae_centos_7_image: PUT THE CENTOS7 VM IMAGE NAME HERE FOR DCAE LAUNCHED CENTOS7 VM
+ dcae_domain: PUT THE NAME OF DOMAIN THAT DCAE VMS REGISTER UNDER
+ dcae_public_key: PUT THE PUBLIC KEY OF A KEYPAIR HERE TO BE USED BETWEEN DCAE LAUNCHED VMS
+ dcae_private_key: PUT THE SECRET KEY OF A KEYPAIR HERE TO BE USED BETWEEN DCAE LAUNCHED VMS
+
+ dnsaas_config_enabled: PUT WHETHER TO USE PROXYED DESIGNATE
+ dnsaas_region: PUT THE DESIGNATE PROVIDING OPENSTACK'S REGION HERE
+ dnsaas_keystone_url: PUT THE DESIGNATE PROVIDING OPENSTACK'S KEYSTONE URL HERE
+ dnsaas_tenant_name: PUT THE TENANT NAME IN THE DESIGNATE PROVIDING OPENSTACK HERE (FOR R1 USE THE SAME AS openstack_tenant_name)
+ dnsaas_username: PUT THE DESIGNATE PROVIDING OPENSTACK'S USERNAME HERE
+ dnsaas_password: PUT THE DESIGNATE PROVIDING OPENSTACK'S PASSWORD HERE
+
 Instantiation
 -------------
-- To deploy ONAP, use the Heat template and follow the described guidelines in `Integration project <http://onap.readthedocs.io/en/latest/submodules/integration.git/docs/index.html>`_
 
-- The Heat template deployment may take time (up to one hour) depending on your hardware environment.
+The ONAP platform can be instantiated via Horizon (OpenStack dashboard)
+or Command Line.
+
+**Instantiation via Horizon:**
+
+- Login to Horizon URL with your personal credentials
+- Click "Stacks" from the "Orchestration" menu
+- Click "Launch Stack"
+- Paste or manually upload the HEAT template file (onap_openstack.yaml) in the
+  "Template Source" form
+- Paste or manually upload the HEAT environment file (onap_openstack.env) in
+  the "Environment Source" form
+- Click "Next" - Specify a name in the "Stack Name" form
+- Provide the password in the "Password" form
+- Click "Launch"
+
+**Instantiation via Command Line:**
+
+- You need to have the OpenStack Heat service installed:
+
+- Create a file (named i.e. ~/openstack/openrc) that sets all the
+  environmental variables required to access your OpenStack tenant:
+
+::
+
+ export OS_AUTH_URL=INSERT THE AUTH URL HERE
+ export OS_USERNAME=INSERT YOUR USERNAME HERE
+ export OS_TENANT_ID=INSERT YOUR TENANT ID HERE
+ export OS_REGION_NAME=INSERT THE REGION HERE
+ export OS_PASSWORD=INSERT YOUR PASSWORD HERE
+ export OS_USER_DOMAIN_NAME=INSERT YOUR DOMAIN HERE
+ export OS_PROJECT_NAME=INSERT YOUR PROJECT NAME HERE
+
+-  Run the script from command line:
+
+::
+
+ source ~/openstack/openrc
+
+-  In order to install the ONAP platform, type:
+
+::
+
+ # Old HEAT client
+ heat stack-create STACK_NAME -f PATH_TO_HEAT_TEMPLATE(YAML FILE)
+ -e PATH_TO_ENV_FILE
+
+ OR
+
+ # New OpenStack client
+ openstack stack create -t PATH_TO_HEAT_TEMPLATE(YAML FILE)
+ -e PATH_TO_ENV_FILE STACK_NAME
+
+
+.. Note The HEAT template deployment may take time (up to one hour)
+   depending on your hardware environment.
+
+Deploy DCAE
+-----------
+The HEAT template deployed the onap-dcae-bootstrap virtual machine.
+
+.. Note To provide the manual tasks to configure the local environment
+
 
 Test the installation
 ---------------------
-Every ONAP component offers a HealthCheck REST API. The *Robot Virtual Machine* can be used to test that every components run smoothly.
+Every ONAP component offers a HealthCheck REST API. The Robot Virtual Machine
+(*onap-robot*) can be used to test that every components run smoothly.
 Run the following command to perform the HealthCheck:
 
 .. code-block:: bash
 
-  docker exec -it openecompete_container /var/opt/OpenECOMP_ETE/runTags.sh -i health h -d ./html -V /share/config/integration_robot_properties.py -V /share/config/integration_preload_parameters.py -V /share/config/vm_properties.py
+  docker exec -it openecompete_container /var/opt/OpenECOMP_ETE/runTags.sh
+  -i health
+  -d ./html
+  -V /share/config/integration_robot_properties.py
+  -V /share/config/integration_preload_parameters.py
+  -V /share/config/vm_properties.py
+
+This test suite will execute 30 tests towards the various ONAP components.
 
-This testsuite will execute 31 tests towards the various ONAP components.
+After the installation, it is possible to deploy the various use-cases
+described in `ONAP wiki - demos <https://wiki.onap.org/display/DW/Running+the+ONAP+Demos>`_.
 
 Detect problems
 ---------------
@@ -151,20 +486,24 @@ If all the tests are not OK, many causes are possible.
 Here is a simple procedure to detect where the problem occurs:
 
 * Check the OpenStack Virtual Machine logs
-* Connect to the Virtual Machine and check that the various containers are running.
+* Connect to the Virtual Machine and check that the various containers are
+  running.
 
-The list of containers are described in the following section. In case some containers are missing, check the docker logs using the following command:
+The list of containers are described on the `ONAP wiki - containers <https://wiki.onap.org/display/DW/ONAP+Services+List#ONAPServicesList-ONAPServices>`_.
+In case some containers are missing, check the Docker logs using the following
+command:
 
 .. code-block:: bash
 
  sudo docker ps -a
  sudo docker logs <containerid>
 
-
 **Portal configuration**
 ========================
 The current ONAP installation is using the *onap.org* domain.
-To use the portal on your desktop, you must configure the following information in your *host* file (located in /etc/host for Linux or /windows/system32/drivers/etc/hosts for Windows):
+To use the portal on your desktop, you must configure the following information
+in your *host* file (located in /etc/host for Linux or
+/windows/system32/drivers/etc/hosts for Windows):
 
 .. code-block:: bash
 
@@ -176,13 +515,15 @@ To use the portal on your desktop, you must configure the following information
  <onap-aai-inst2_ip>   aai.ui.simpledemo.onap.org
 
 
-You can use the Horizon dashboard to get the IP adresses associated with the Virtual Machines or use the following command line:
+You can use the Horizon dashboard to get the IP addresses associated with the
+Virtual Machines or use the following command line:
 
 .. code-block:: bash
 
  openstack server list
 
-Launch the portal on the http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/login.htm
+Launch the portal on the
+http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/login.htm
 
 Various users are predefined as presented in the following table:
 
@@ -198,30 +539,20 @@ Various users are predefined as presented in the following table:
 
 The password is *demo123456!*
 
-Go to the `Portal component user guide <http://onap.readthedocs.io/en/latest/submodules/portal.git/docs/index.html>`_
+Go to the `Portal component user guide
+<http://onap.readthedocs.io/en/latest/submodules/portal.git/docs/index.html>`_
 
 Other UI documentation:
  - `CLAMP  <http://onap.readthedocs.io/en/latest/submodules/clamp.git/docs/index.html>`_
- - `SDC http://onap.readthedocs.io/en/latest/submodules/sdc.git/docs/index.html>`_
+ - `SDC <http://onap.readthedocs.io/en/latest/submodules/sdc.git/docs/index.html>`_
  - `UI Use-Case <http://onap.readthedocs.io/en/latest/submodules/usecase-ui.git/docs/index.html>`_
 
 
 **Components**
 ==============
 
-The following table presents the list of containers for every Virtual Machine
-
-  .. csv-table::
-   :header: Virtual Machine, Container, Description
-   :widths: 15, 20, 20
-
-    onap-appc,sdnc_dgbuilder_container
-    ,appc_controller_container
-    ,sdnc_db_container
-
-TODO: list all the containers
-
-TODO: update the deployment figure available on the wiki ?
+The list of various services and ports used can be found on the
+`ONAP wiki - services <https://wiki.onap.org/display/DW/ONAP+Services+List#ONAPServicesList-ONAPServices>`_
 
 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
    http://creativecommons.org/licenses/by/4.0