Update SettingUp Heat
[doc.git] / docs / guides / onap-developer / settingup / onap_heat.rst
1 .. This work is licensed undera Creative Commons Attribution 4.0
2 .. International License.
3 .. http://creativecommons.org/licenses/by/4.0
4 .. Copyright 2017-2018 ONAP
5
6
7 .. contents::
8    :depth: 2
9 ..
10
11 .. index:: Setting Up Full ONAP using Virtual Machines
12
13 ==============================
14 **Setting Up ONAP using Heat**
15 ==============================
16
17 .. _installing-onap-heat:
18
19 **Context**
20 ===========
21 ONAP may be deployed in different contexts depending on your requirements.
22 The recommended installation for Beijng Release over virtual machines is based
23 on OpenStack Heat Template.
24
25 The VNFs managed by ONAP may be deployed in different OpenStack tenants or
26 based on top of VMware based infrastructure. For details, refer
27 :ref:`to MultiCloud project<index-multicloud>`.
28
29 The current installation is based on the single tenant deployment (all the ONAP
30 components will be hosted in a unique tenant).
31
32 .. note::
33    Prior to deployment of ONAP, there is no need to download manually any
34    Docker Container.
35    The Heat deployment takes care to automatically download the Docker
36    Containers.
37
38
39 .. _demo-installing-running-onap-requirements:
40
41 **Requirements**
42 ================
43
44 OpenStack
45 ---------
46 ONAP installation is validated on
47 `OpenStack Ocata <https://releases.openstack.org/ocata/>`_ or latter release.
48
49 You can use various Cloud providers offering OpenStack based solutions.
50 A list of available Cloud providers on the
51 `OpenStack marketplace <https://www.openstack.org/marketplace/public-clouds/>`_.
52
53 You can use your private Cloud infrastructure.
54
55 The following OpenStack components must be deployed in the infrastructure:
56  - *Cinder*
57  - *Glance*
58  - *Heat*
59  - *Horizon*
60  - *Keystone*
61  - *Neutron*
62  - *Nova*
63
64 To deploy OpenStack, you can use various solutions:
65  - `OpenStack installation guide <https://docs.openstack.org/install-guide/>`_
66  - `OPNFV Cross Community Continuous Integration - XCI installer <http://docs.opnfv.org/en/latest/infrastructure/xci.html>`_
67  - `OpenStack Ocata installation guide <https://docs.openstack.org/ocata/install/>`_
68
69 .. tip::
70  - Notice the documentation version mentioned in the URL, e.g. ocata/, pike/,
71    latest/ ...
72  - The installation is pretty huge, some automated scripts have been created by
73    the community:
74
75   - `OpenStack installation with Ansible (All openstack services) <https://docs.openstack.org/openstack-ansible/latest/>`_
76   - `OpenStack Ocata installation scripts for testing environment(DO NOT install Heat, Designate and Cinder Volume services) <https://github.com/reachsrirams/openstack-scripts>`_
77
78 The OpenStack infrastructure must enable internet access and you need to have
79 an "External network" already configured properly.
80 The External network ID will have to be provided in the Heat environment file.
81
82 ONAP components
83 ---------------
84 The following table presents the mapping between the created VM and the ONAP
85 components, and provides VM information (flavor and image):
86
87     ===================  =================   =======  ============
88     VM name              ONAP project(s)     Flavor   Image
89     ===================  =================   =======  ============
90     onap-aai-inst1       AAI                 xlarge   Ubuntu 16.04
91     onap-aai-inst2       AAI/UI              xlarge   Ubuntu 16.04
92     onap-appc            APPC, CCSDK         large    Ubuntu 16.04
93     onap-clamp           CLAMP               medium   Ubuntu 16.04
94     onap-dns-server      *Internal DNS*      small    Ubuntu 16.04
95     onap-message-router  DMAAP               large    Ubuntu 16.04
96     onap-multi-service   MSB, VF-C, VNFSDK   xlarge   Ubuntu 16.04
97     onap-policy          Policy              xlarge   Ubuntu 16.04
98     onap-portal          Portal, CLI         large    Ubuntu 16.04
99     onap-robot           Integration         medium   Ubuntu 16.04
100     onap-sdc             SDC                 xlarge   Ubuntu 16.04
101     onap-sdnc            SDNC, CCSDK         large    Ubuntu 16.04
102     onap-so              SO                  large    Ubuntu 16.04
103     onap-vid             VID                 medium   Ubuntu 16.04
104     onap-dcae            DCAE, Holmes        xlarge   Ubuntu 16.04
105     onap-music           Music               large    Ubuntu 16.04
106     onap-oof             OOF                 large    Ubuntu 16.04
107     onap-aaf             AAF                 medium   Ubuntu 16.04
108     onap-sms             AAF                 medium   Ubuntu 16.04
109     onap-nbi             External API        small    Ubuntu 16.04
110     ===================  =================   =======  ============
111
112 Footprint
113 ---------
114 The ONAP installation requires the following footprint:
115  - 20 VM
116  - 88 vCPU
117  - 176 GB RAM
118  - 1.76 TB Storage
119  - 20 floating IP addresses
120
121 .. Note: You should also reserve some resources for the VNFs to be deployed.
122
123 Artifacts
124 ---------
125 The following artifacts must be deployed on the OpenStack infrastructure:
126  - a public SSH key to access the various VM
127  - Ubuntu 16.04 image (https://cloud-images.ubuntu.com/releases/16.04/release/)
128  - Set of flavors: small, medium, large, xlarge
129
130 .. Note: The floating IP may be private IP.
131
132 .. Note: Basic flavors can reuse the default flavors as defined by
133    OpenStack
134    <https://docs.openstack.org/horizon/latest/admin/manage-flavors.html>`_
135
136 Security
137 --------
138 The default installation assumes that the Default security group is configured
139 to enable full access between the ONAP components.
140 Depending on your environment, we may need to open some security groups
141 (eg when using the portal from your desktop).
142
143 The list of various services and ports used can be found on the
144 `ONAP wiki - ports <https://wiki.onap.org/display/DW/ONAP+Services+List#ONAPServicesList-ONAPServices>`_.
145
146 **Deployment**
147 ==============
148
149 Source files
150 ------------
151
152 Both following files must be downloaded and configured to match your
153 configuration:
154
155 - Template file:
156   https://git.onap.org/demo/plain/heat/ONAP/onap_openstack.yaml?h=casablanca
157 - Environment file:
158   https://git.onap.org/demo/plain/heat/ONAP/onap_openstack.env?h=casablanca
159
160 The environment file must be customized as described in the following sections.
161
162 .. Note Beijing release files
163
164 Description
165 -----------
166
167 The ONAP Heat template spins up all the components including the DCAE.
168 The template, onap_openstack.yaml, comes with an environment file,
169 onap_openstack.env, in which all the default values are defined.
170
171 The Heat template is composed of two sections: (i) parameters, and (ii)
172 resources.
173 The parameter section contains the declaration and
174 description of the parameters that will be used to spin up ONAP, such as
175 public network identifier, URLs of code and artifacts repositories, etc.
176 The default values of these parameters can be found in the environment
177 file.
178
179 The resource section contains the definition of:
180
181 - ONAP Private Management Network, which ONAP components use to communicate
182   with each other and with VNFs
183 - ONAP Virtual Machines (VMs)
184 - Public key pair used to access ONAP VMs
185 - Virtual interfaces towards the ONAP Private Management Network
186 - Disk volumes
187
188 Each VM specification includes Operating System image name, VM size
189 (i.e. flavor), VM name, etc. Each VM has two virtual network interfaces:
190 one towards the public network and one towards the ONAP Private
191 Management network, as described above. Furthermore, each VM runs a
192 post-instantiation script that downloads and installs software
193 dependencies (e.g. Java JDK, gcc, make, Python, ...) and ONAP software
194 packages and Docker containers from remote repositories.
195
196 When the Heat template is executed, the OpenStack Heat engine creates
197 the resources defined in the Heat template, based on the parameters
198 values defined in the environment file.
199
200 Environment file
201 ----------------
202
203 Before running Heat, it is necessary to customize the environment file.
204 Indeed, some parameters, namely public_net_id, pub_key,
205 openstack_tenant_id, openstack_username, and openstack_api_key,
206 need to be set depending on the user's environment:
207
208 **Global parameters**
209
210 ::
211
212  public_net_id:       PUT YOUR NETWORK ID/NAME HERE
213  pub_key:             PUT YOUR PUBLIC KEY HERE
214  openstack_tenant_id: PUT YOUR OPENSTACK PROJECT ID HERE
215  openstack_username:  PUT YOUR OPENSTACK USERNAME HERE
216  openstack_api_key:   PUT YOUR OPENSTACK PASSWORD HERE
217  keystone_url:        PUT THE KEYSTONE URL HERE (do not include version number)
218
219 openstack_region parameter is set to RegionOne (OpenStack default). If
220 your OpenStack is using another Region, please modify this parameter.
221
222 public_net_id is the unique identifier (UUID) or name of the public
223 network of the cloud provider. To get the public_net_id, use the
224 following OpenStack CLI command (ext is the name of the external
225 network, change it with the name of the external network of your
226 installation)
227
228 ::
229
230  openstack network list  | grep ext |  awk '{print $2}'
231
232 pub_key is string value of the public key that will be installed in
233 each ONAP VM. To create a public/private key pair in Linux, please
234 execute the following instruction:
235
236 ::
237
238  user@ubuntu:~$ ssh-keygen -t rsa
239
240 The following operations create the public/private key pair:
241
242 ::
243
244  Generating public/private rsa key pair.
245  Enter file in which to save the key (/home/user/.ssh/id_rsa):
246  Created directory '/home/user/.ssh'.
247  Enter passphrase (empty for no passphrase):
248  Enter same passphrase again:
249  Your identification has been saved in /home/user/.ssh/id_rsa.
250  Your public key has been saved in /home/user/.ssh/id_rsa.pub.
251
252 openstack_username, openstack_tenant_id (password), and
253 openstack_api_key are user's credentials to access the
254 OpenStack-based cloud.
255
256 **Images and flavors parameters**
257
258 ::
259
260  ubuntu_1604_image:  PUT THE UBUNTU 16.04 IMAGE NAME HERE
261  flavor_small:       PUT THE SMALL FLAVOR NAME HERE
262  flavor_medium:      PUT THE MEDIUM FLAVOR NAME HERE
263  flavor_large:       PUT THE LARGE FLAVOR NAME HERE
264  flavor_xlarge:      PUT THE XLARGE FLAVOR NAME HERE
265
266 To get the images in your OpenStack environment, use the following
267 OpenStack CLI command:
268
269 ::
270
271         openstack image list | grep 'ubuntu'
272
273 To get the flavor names used in your OpenStack environment, use the
274 following OpenStack CLI command:
275
276 ::
277
278         openstack flavor list
279
280 **Proxy parameters**
281
282 ::
283   http_proxy: PUT YOUR HTTP PROXY ADDRESS (if you don't work behind a proxy put no_proxy)
284   https_proxy: PUT YOUR HTTPS PROXY ADDRESS (if you don't work behind a proxy put no_proxy)
285
286 **Network parameters**
287
288 ::
289
290  dns_list: PUT THE ADDRESS OF THE EXTERNAL DNS HERE (e.g. a comma-separated list
291  of IP addresses in your /etc/resolv.conf in UNIX-based Operating Systems)
292  external_dns: PUT THE FIRST ADDRESS OF THE EXTERNAL DNS LIST HERE
293  dns_forwarder: PUT THE IP OF DNS FORWARDER FOR ONAP DEPLOYMENT'S OWN DNS SERVER
294  oam_network_cidr: 10.0.0.0/16
295
296 You can use the Google Public DNS 8.8.8.8 and 4.4.4.4 address or your internal
297 DNS servers.
298
299 ONAP installs a DNS server used to resolve IP addresses in the ONAP OAM private
300 network.
301
302 **DCAE Parameters**
303
304 Depending on the set of DCAE compoennts to be deployed, you can select
305
306 - R3 MVP - This profile includes a minimum set of DCAE components that will
307   support the vFW/vDNS, vCPE. and vVoLTE use cases. It will deploy the
308   following components: Consul server, Config Binding Service, Postgres
309   database, VES collector, TCA analytics, Holmes rule management, Holmes
310   engine management
311 - R3 - This profile also deploys the rest of the DCAE platform. With R3
312   deployment profile, DCAE supports CLAMP and full control loop
313   functionalities. These additional components are: Cloudify Manager,
314   Deployment Handler, Policy Handler, Service Change Handler, Inventory API.
315 - R3PLUS - This profile deploys the DCAE R2 stretch goal service components,
316   namely: PNF Registration Handler, SNMP Trap collector, HV-VES Collector,
317   Missing Heartbeat Detection analytics, Universal Mapper
318
319 ::
320
321   dcae_deployment_profile: PUT DCAE DEPLOYMENT PROFILE (R3MVP, R3, or R3PLUS)
322
323 Instantiation
324 -------------
325
326 The ONAP platform can be instantiated via Horizon (OpenStack dashboard)
327 or Command Line.
328
329 **Instantiation via Horizon:**
330
331 - Login to Horizon URL with your personal credentials
332 - Click "Stacks" from the "Orchestration" menu
333 - Click "Launch Stack"
334 - Paste or manually upload the Heat template file (onap_openstack.yaml) in the
335   "Template Source" form
336 - Paste or manually upload the Heat environment file (onap_openstack.env) in
337   the "Environment Source" form
338 - Click "Next" - Specify a name in the "Stack Name" form
339 - Provide the password in the "Password" form
340 - Click "Launch"
341
342 **Instantiation via Command Line:**
343
344 - You need to have the OpenStack Heat service installed:
345
346 - Create a file (named i.e. ~/openstack/openrc) that sets all the
347   environmental variables required to access your OpenStack tenant:
348
349 ::
350
351  export OS_AUTH_URL=INSERT THE AUTH URL HERE
352  export OS_USERNAME=INSERT YOUR USERNAME HERE
353  export OS_TENANT_ID=INSERT YOUR TENANT ID HERE
354  export OS_REGION_NAME=INSERT THE REGION HERE
355  export OS_PASSWORD=INSERT YOUR PASSWORD HERE
356  export OS_USER_DOMAIN_NAME=INSERT YOUR DOMAIN HERE
357  export OS_PROJECT_NAME=INSERT YOUR PROJECT NAME HERE
358
359 -  Run the script from command line:
360
361 ::
362
363  source ~/openstack/openrc
364
365 -  In order to install the ONAP platform, type:
366
367 ::
368
369  # Old Heat client
370
371 ::
372
373  heat stack-create STACK_NAME -f PATH_TO_HEAT_TEMPLATE(YAML FILE)
374  -e PATH_TO_ENV_FILE
375
376  OR
377
378 ::
379
380  # New OpenStack client
381  openstack stack create -t PATH_TO_HEAT_TEMPLATE(YAML FILE)
382  -e PATH_TO_ENV_FILE STACK_NAME
383
384
385 .. Note The Heat template deployment may take time (up to one hour)
386    depending on your hardware environment.
387
388 Test the installation
389 ---------------------
390 Every ONAP component offers a HealthCheck REST API. The Robot Virtual Machine
391 (*onap-robot*) can be used to test that every components run smoothly.
392 Run the following command to perform the HealthCheck:
393
394 .. code-block:: bash
395
396   docker exec -it openecompete_container /var/opt/OpenECOMP_ETE/runTags.sh \
397   -i health \
398   -d ./html \
399   -V /share/config/integration_robot_properties.py \
400   -V /share/config/integration_preload_parameters.py \
401   -V /share/config/vm_properties.py
402
403 This test suite will execute 40 tests towards the various ONAP components.
404
405 After the installation, it is possible to deploy the various use-cases
406 described in `ONAP wiki - demos <https://wiki.onap.org/display/DW/Running+the+ONAP+Demos>`_.
407
408 Detect problems
409 ---------------
410 If all the tests are not OK, many causes are possible.
411 Here is a simple procedure to detect where the problem occurs:
412
413 * Check the OpenStack Virtual Machine logs
414 * Connect to the Virtual Machine and check that the various containers are
415   running.
416
417 The list of containers are described on the `ONAP wiki - containers <https://wiki.onap.org/display/DW/ONAP+Services+List#ONAPServicesList-ONAPServices>`_.
418 In case some containers are missing, check the Docker logs using the following
419 command:
420
421 .. code-block:: bash
422
423  sudo docker ps -a
424  sudo docker logs <containerid>
425
426 **Portal configuration**
427 ========================
428 The current ONAP installation is using the *onap.org* domain.
429 To use the portal on your desktop, you must configure the following information
430 in your *hosts* file (located in /etc/hosts for Linux or
431 /windows/system32/drivers/etc/hosts for Windows):
432
433 .. code-block:: bash
434
435  <onap-policy_ip>      policy.api.simpledemo.onap.org
436  <onap-portal_ip>      portal.api.simpledemo.onap.org
437  <onap-sdc_ip>         sdc.api.simpledemo.onap.org
438  <onap-vid_ip>         vid.api.simpledemo.onap.org
439  <onap-aai-inst1_ip>   aai.api.simpledemo.onap.org
440  <onap-aai-inst2_ip>   aai.ui.simpledemo.onap.org
441
442
443 You can use the Horizon dashboard to get the IP addresses associated with the
444 Virtual Machines or use the following command line:
445
446 .. code-block:: bash
447
448  openstack server list
449
450 Launch the portal on the
451 http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/login.htm
452
453 Various users are predefined as presented in the following table:
454
455   .. csv-table::
456    :header: Role, Login
457    :widths: 20, 20
458
459     Superuser,demo
460     Designer,cs0008
461     Tester,jm0007
462     Governor,gv0001
463     Ops,op0001
464
465 The password is *demo123456!*
466
467 Go to the `Portal component user guide
468 <http://onap.readthedocs.io/en/latest/submodules/portal.git/docs/index.html>`_
469
470 Other UI documentation:
471  - `CLAMP  <http://onap.readthedocs.io/en/latest/submodules/clamp.git/docs/index.html>`_
472  - `SDC <http://onap.readthedocs.io/en/latest/submodules/sdc.git/docs/index.html>`_
473  - `UI Use-Case <http://onap.readthedocs.io/en/latest/submodules/usecase-ui.git/docs/index.html>`_
474
475
476 **Components**
477 ==============
478
479 The list of various services and ports used can be found on the
480 `ONAP wiki - services <https://wiki.onap.org/display/DW/ONAP+Services+List#ONAPServicesList-ONAPServices>`_
481
482 .. This work is licensed under a Creative Commons Attribution 4.0
483 .. International License.
484 ..  http://creativecommons.org/licenses/by/4.0
485 .. Copyright 2017-2018 ONAP
486
487
488 .. contents::