diff options
Diffstat (limited to 'docs/guides/onap-developer/settingup/onap_heat.rst')
-rw-r--r-- | docs/guides/onap-developer/settingup/onap_heat.rst | 471 |
1 files changed, 471 insertions, 0 deletions
diff --git a/docs/guides/onap-developer/settingup/onap_heat.rst b/docs/guides/onap-developer/settingup/onap_heat.rst new file mode 100644 index 000000000..db372c589 --- /dev/null +++ b/docs/guides/onap-developer/settingup/onap_heat.rst @@ -0,0 +1,471 @@ +.. This work is licensed undera Creative Commons Attribution 4.0 +.. International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright 2017-2018 ONAP + + +.. contents:: + :depth: 2 +.. + +.. index:: Setting Up Full ONAP using Virtual Machines + + +=============================================== +**Setting Up Full ONAP using Virtual Machines** +=============================================== + +.. _demo-installing-running-onap: + +**Context** +=========== +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. + +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>`. + +The current installation is based on the single tenant deployment (all the ONAP +components will be hosted in a unique tenant). + +.. _demo-installing-running-onap-requirements: + +**Requirements** +================ + +OpenStack +--------- +ONAP installation is validated on +`OpenStack Ocata <https://releases.openstack.org/ocata/>`_ or latter release. + +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* + - *Glance* + - *Heat* + - *Horizon* + - *Keystone* + - *Neutron* + - *Nova* + +To deploy OpenStack, you can use various solutions: + - `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>`_ + +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 VM information (flavor and image): + + =================== ================= ======= ============ + VM name ONAP project(s) Flavor Image + =================== ================= ======= ============ + onap-aai-inst1 AAI xlarge Ubuntu 14.04 + onap-aai-inst2 AAI/UI xlarge Ubuntu 14.04 + onap-appc APPC, CCSDK large Ubuntu 14.04 + onap-clamp CLAMP medium Ubuntu 16.04 + onap-dns-server *Internal DNS* small Ubuntu 14.04 + onap-message-router DMAAP large Ubuntu 14.04 + onap-multi-service MSB, VF-C, VNFSDK xlarge Ubuntu 16.04 + onap-policy Policy xlarge Ubuntu 14.04 + onap-portal Portal, CLI large Ubuntu 14.04 + onap-robot Integration medium Ubuntu 16.04 + onap-sdc SDC xlarge Ubuntu 16.04 + onap-sdnc SDNC, CCSDK large Ubuntu 14.04 + onap-so SO large Ubuntu 16.04 + onap-vid VID medium Ubuntu 14.04 + onap-dcae DCAE, Holmes small Ubuntu 14.04 + onap-music Music large Ubuntu 14.04 + onap-oof OOF large Ubuntu 16.04 + onap-aaf AAF medium Ubuntu 16.04 + onap-sms AAF medium Ubuntu 16.04 + onap-nbi External API small Ubuntu 16.04 + =================== ================= ======= ============ + +Footprint +--------- +The ONAP installation requires the following footprint: + - 20 VM + - 88 vCPU + - 176 GB RAM + - 1.76 TB Storage + - 20 floating IP addresses + +.. Note: You should also reserve some resources for the VNFs to be deployed. + +Artifacts +--------- +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 (https://cloud-images.ubuntu.com/releases/14.04/14.04/) + - Ubuntu 16.04 image (https://cloud-images.ubuntu.com/releases/16.04/release/) + - Set of flavors: small, medium, large, xlarge + +.. 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>`_ + +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 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 including 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 + +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 OF THE EXTERNAL DNS HERE (e.g. a comma-separated list + of IP addresses in your /etc/resolv.conf in UNIX-based Operating Systems) + external_dns: PUT THE FIRST ADDRESS OF THE EXTERNAL DNS LIST HERE + 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. + +**DCAE Parameters** + +For Beijing Release, all the DCAE components are deployed in a single +virtual machine. +You must specify R2 to run R2 DCAE components. +Is you are using R1 to get R1 ONAP, you must fill all the other +DCAE parameters. +Please refer to the Amsterdam documentation to fill these parameters. +:: + + dcae_deployment_profile: PUT DCAE DEPLOYMENT PROFILE (R1, R2MVP, R2, or R2PLUS) + +Instantiation +------------- + +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. + +Test the installation +--------------------- +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 + -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 40 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 +--------------- +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. + +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): + +.. code-block:: bash + + <onap-policy_ip> policy.api.simpledemo.onap.org + <onap-portal_ip> portal.api.simpledemo.onap.org + <onap-sdc_ip> sdc.api.simpledemo.onap.org + <onap-vid_ip> vid.api.simpledemo.onap.org + <onap-aai-inst1_ip> aai.api.simpledemo.onap.org + <onap-aai-inst2_ip> aai.ui.simpledemo.onap.org + + +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 + +Various users are predefined as presented in the following table: + + .. csv-table:: + :header: Role, Login + :widths: 20, 20 + + Superuser,demo + Designer,cs0008 + Tester,jm0007 + Governor,gv0001 + Ops,op0001 + +The password is *demo123456!* + +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>`_ + - `UI Use-Case <http://onap.readthedocs.io/en/latest/submodules/usecase-ui.git/docs/index.html>`_ + + +**Components** +============== + +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 +.. Copyright 2017-2018 ONAP + + +.. contents:: |