summaryrefslogtreecommitdiffstats
path: root/doc/book-enea-edge-getting-started/doc/installation_guide.xml
blob: 940fc40687d32aa75ec225c4ec721983b022a0ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
<?xml version="1.0" encoding="UTF-8"?>
<chapter id="installation_guide">
  <title>Setting up and Installing the Enea Edge Base Configuration</title>

  <para>The setup and installation steps detailed below will deploy a base
  configuration which will be used as a reference for more complex deployment
  scenarios.</para>

  <section id="hw_reqs">
    <title>Hardware Requirements</title>

    <para>The following hardware is needed for deploying the base
    configuration:</para>

    <itemizedlist>
      <listitem>
        <para>One server running the CentOS 7 distribution</para>

        <note>
          <para>The CentOS 7 server must be updated to the latest revision
          before installing Enea Edge, and configured for English language
          usage.</para>
        </note>

        <para>The following will detail CPU, RAM and storage requirements for
        the Enea Edge Management application:</para>

        <itemizedlist>
          <listitem>
            <para>For small-sized deployments (tens of devices):</para>

            <itemizedlist spacing="compact">
              <listitem>
                <para>4 cores</para>
              </listitem>

              <listitem>
                <para>16 GB RAM</para>
              </listitem>

              <listitem>
                <para>300 GB single disk storage</para>
              </listitem>
            </itemizedlist>
          </listitem>

          <listitem>
            <para>For mid-sized deployments (hundreds of devices):</para>

            <itemizedlist spacing="compact">
              <listitem>
                <para>8 cores</para>
              </listitem>

              <listitem>
                <para>32 GB RAM</para>
              </listitem>

              <listitem>
                <para>300 GB single disk storage</para>
              </listitem>
            </itemizedlist>
          </listitem>

          <listitem>
            <para>For large deployments (thousands of devices):</para>

            <itemizedlist spacing="compact">
              <listitem>
                <para>16 cores</para>
              </listitem>

              <listitem>
                <para>64-256 GB RAM</para>
              </listitem>

              <listitem>
                <para>1-2 TB single disk storage</para>
              </listitem>
            </itemizedlist>
          </listitem>
        </itemizedlist>

        <para>The purpose of the CentOS 7 server is to host the Enea Edge
        Management application. Network access between the CentOS 7 server and
        the uCPE devices is required. The Enea Edge Management application and
        the uCPE devices will be connected on separate subnets to avoid
        inconsistencies.</para>
      </listitem>

      <listitem>
        <para>One or more uCPE devices.</para>

        <para>Whitebox devices where the Enea Edge Runtime will be installed,
        containing a minimum of 2 cores and 2 GB RAM and at least two ethernet
        ports that will be configured as WAN and LAN during deployment.</para>

        <para>When hosting an entire solution including one or several network
        services, the hardware must also have the resources to host one or
        more VNFs. During a typical evaluation, a dual VNF service on the Enea
        Edge Runtime needs a CPU with 4-8 cores and at least 8 GB RAM. The
        supported Intel CPUs of Enea Edge are documented in the <xi:include
        href="../../s_docbuild/olinkdb/pardoc-common.xml"
        xmlns:xi="http://www.w3.org/2001/XInclude"
        xpointer="element(book_enea_edge_release_info/1)" /> Manual.</para>

        <para>Enea Edge Runtime needs EFI support in BIOS to boot. When
        configuring the uCPE device BIOS a serial connection is
        required.</para>
      </listitem>

      <listitem>
        <para>A laptop.</para>

        <para>The laptop is used for 2 scenarios:</para>

        <itemizedlist>
          <listitem>
            <para>Installing the Enea Edge Runtime on uCPE Devices.</para>
          </listitem>

          <listitem>
            <para>Connecting to the GUI of the Enea Edge Management
            application for management and configuration.</para>

            <note>
              <para>Network access between the CentOS 7 server and the laptop
              is required. The recommended browser for the current release is
              Google Chrome.</para>
            </note>
          </listitem>
        </itemizedlist>
      </listitem>

      <listitem>
        <para>A 16 GB USB stick used for the uCPE Device Installation.</para>
      </listitem>
    </itemizedlist>
  </section>

  <section id="sw_config">
    <title>Software Configuration</title>

    <para>The CentOS 7 server requires a specific configuration for the setup
    to work.</para>

    <section id="firewall_config">
      <title>Firewall Configuration</title>

      <para>Any firewall running on the CentOS 7 server may block the
      management protocols required to communicate between the uCPE device and
      the Enea Edge Management application as well as between the Enea Edge
      Management application and its northbound clients. Quick handling of a
      blocking firewall would be to disable it, typical for a lab environment,
      through:</para>

      <programlisting>sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo systemctl mask now firewalld</programlisting>

      <para>For an advanced firewall configuration, the following ports need
      to be opened:</para>

      <table>
        <title>Ports to be Activated</title>

        <tgroup cols="3">
          <colspec align="left" />

          <tbody>
            <row>
              <entry>80</entry>

              <entry>TCP</entry>

              <entry>Required for GUI Access.</entry>
            </row>

            <row>
              <entry>443</entry>

              <entry>TCP</entry>

              <entry>Required for GUI Access and Device Connectivity.</entry>
            </row>

            <row>
              <entry>54327</entry>

              <entry>UDP</entry>

              <entry>Required for the Enea Edge Management application High
              Availability Configuration.</entry>
            </row>

            <row>
              <entry>5701:5708</entry>

              <entry>TCP</entry>

              <entry>Required for the Enea Edge Management application High
              Availability Configuration.</entry>
            </row>

            <row>
              <entry>4334</entry>

              <entry>TCP</entry>

              <entry>Required for Call Home.</entry>
            </row>

            <row>
              <entry>2021:2040</entry>

              <entry>TCP</entry>

              <entry>Required for Call Home when connecting uCPE Devices using
              Enea NFV Access 2.3.0 or older.</entry>
            </row>
          </tbody>
        </tgroup>
      </table>

      <para>Use the following command sequence to enable the required ports
      for deployment of the Enea Edge Management application:</para>

      <programlisting>sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --permanent --add-port=54327/udp
sudo firewall-cmd --permanent --add-port=5701-5708/tcp
sudo firewall-cmd --permanent --add-port=4334/tcp
sudo firewall-cmd --permanent --add-port=2021-2040/tcp
sudo firewall-cmd --reload</programlisting>

      <note>
        <para>If the Enea Edge Management host resides behind a corporate
        port-filtering firewall, then all the aforementioned ports need to
        also be enabled on the respective firewall. As an additional
        requirement, port 22/TCP also needs to be enabled for reverse SSH to
        the Enea Edge Management application.</para>

        <para>No enabling and no forwarding rules are necessary for ports
        2021-2040 if Enea Edge 2.4.0 or newer is used.</para>
      </note>
    </section>

    <section id="openjdk_postgresql_config">
      <title>Configuring OpenJDK and PostgreSQL</title>

      <para>The Enea Edge Management application requires a specific Java
      version (OpenJDK 11) and a PostgreSQL version to operate
      correctly.</para>

      <para><emphasis role="bold">Installing OpenJDK</emphasis></para>

      <orderedlist spacing="compact">
        <listitem>
          <para>Install OpenJDK 11 using the root account:</para>

          <programlisting>yum install java-11-openjdk-devel</programlisting>
        </listitem>

        <listitem>
          <para>Verify the installation:</para>

          <programlisting>java -version
openjdk version "11.0.3" 2019-04-16 LTS
OpenJDK Run Time Environment 18.9 (build 11.0.3+7-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.3+7-LTS, mixed mode, sharing)</programlisting>

          <note>
            <para>If there are multiple java versions installed, switch
            between them using the following command:</para>

            <programlisting>alternatives --config java</programlisting>

            <para>Optionally, the user can switch between the
            <literal>javac</literal> versions using:</para>

            <programlisting>alternatives --config javac</programlisting>
          </note>
        </listitem>

        <listitem>
          <para>The following system variables need to point to the OpenJDK 11
          installation:</para>

          <programlisting>export JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which java)))))
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar</programlisting>

          <note>
            <para>In order to make these system variables persistent, the
            commands given above should be added to a script in the
            <literal>/etc/profile.d/</literal> folder. <emphasis
            role="bold">Sudo</emphasis> access is needed for this
            operation.</para>
          </note>
        </listitem>
      </orderedlist>

      <para>The Enea Edge Management application requires a specific
      PostgreSQL version. This is embedded in the Enea Edge Management
      installation. In order to avoid conflicts, any existing PostgreSQL
      installation needs to be uninstalled.</para>

      <para><emphasis role="bold">Uninstalling PostgreSQL</emphasis></para>

      <orderedlist>
        <listitem>
          <para>Open a terminal with administrative rights, i.e. log into a
          bash shell with root privileges.</para>
        </listitem>

        <listitem>
          <para>Execute the following command to check if you have a currently
          running PostgreSQL database server:</para>

          <programlisting>ps -ef | grep post</programlisting>
        </listitem>

        <listitem>
          <para>Remove the installed PostgreSQL server (including the existing
          postgres user):</para>

          <note>
            <para>This step is not necessary if the Enea Edge Management
            application will be using an external database (like
            MariaDB).</para>
          </note>

          <programlisting>yum remove postgres\*
rm -rf /var/lib/pgsql
rm -f /etc/postgres-reg.ini
userdel postgres</programlisting>
        </listitem>
      </orderedlist>

      <para>If you have multiple spindles, it is recommended to let the
      application run off one and the database off the other. This will result
      in optimum performance. It is also recommended that the swap disk be the
      same as the one used for the application.</para>

      <para>Assuming another spindle is used (<literal>/drive2</literal>) do
      the following:</para>

      <orderedlist>
        <listitem>
          <para>Create a folder which will host the database (e.g.
          <literal>emsDatabase</literal>).</para>
        </listitem>

        <listitem>
          <para>Create a soft-link that will point to this folder:</para>

          <programlisting>ln -s /opt/ems/elementcenter/database /drive2/emsDatabase</programlisting>
        </listitem>

        <listitem>
          <para>Follow the installation steps for the Enea Edge Management
          application available in <olink
          targetdoc="book_enea_edge_getting_started"
          targetptr="install_ucpe_mg">Installing the Enea Edge Management
          application in the <xi:include
          href="../../s_docbuild/olinkdb/pardoc-names.xml"
          xmlns:xi="http://www.w3.org/2001/XInclude"
          xpointer="element(book_enea_edge_getting_started/1)" /></olink>
          Manual.</para>
        </listitem>
      </orderedlist>
    </section>
  </section>

  <section id="ucpe_config">
    <title>uCPE Device Configuration</title>

    <section id="wan_lan_ports">
      <title>Determining the WAN and LAN ports</title>

      <para>A typical whitebox comes with multiple physical network ports,
      ready to be used. The user must determine the purpose and allocation of
      each port. The allocation is later aligned with the software
      configuration within the Web-installer.</para>

      <para>A common way is to allocate the left ports to WANs and the right
      ports to LANs. At least one port must be allocated to WAN and one to
      LAN.</para>
    </section>

    <section id="ucpe_identifier">
      <title>Determining the Device ID</title>

      <para>Each uCPE device needs a unique identifier. This identifier is
      used to match the registration in the Enea Edge Management application
      and the offline configuration of the uCPE device during ZTP (Zero Touch
      Provisioning).</para>

      <para>Select a text string to represent the uCPE device, e.g.
      <literal>uCPE-1</literal> or <literal>fwa-t1012vc_boston_1234</literal>.
      It can have any length and any type of characters with the exception of
      quotation characters (' or ") or line terminators (\n or \r).</para>
    </section>

    <section id="bios_config">
      <title>Configuring the BIOS</title>

      <para>The factory configuration of the BIOS may not match the
      requirements of Enea Edge Runtime. The BIOS configuration needs to be
      reviewed and potentially reconfigured to prepare for a successful
      installation.</para>

      <para>Access the BIOS using a serial cable between the uCPE device and
      the laptop, to review and configure the BIOS correctly. The whitebox
      vendor is expected to provide the right serial cable for the box. A
      terminal emulator (such as putty) is needed on the laptop.</para>

      <para>Enable the following BIOS features/configurations:</para>

      <itemizedlist>
        <listitem>
          <para>EFI</para>
        </listitem>

        <listitem>
          <para>Intel Virtualization Technology (VT-x)</para>
        </listitem>

        <listitem>
          <para>Intel Virtualization Technology for Directed I/O (VT-d)</para>
        </listitem>

        <listitem>
          <para>SR-IOV</para>
        </listitem>
      </itemizedlist>

      <para>The boot order may also need to be modified to support
      installation and execution of the Enea Edge Runtime on the uCPE
      device.</para>

      <para>The following boot order is recommended for a base
      configuration:</para>

      <orderedlist>
        <listitem>
          <para>Boot from USB</para>
        </listitem>

        <listitem>
          <para>Boot from Disk</para>
        </listitem>
      </orderedlist>

      <para>By arranging the above boot order there is no need for a further
      configuration of the BIOS during installation and deployment.</para>
    </section>
  </section>

  <section id="prep_deploy">
    <title>Preparing the Deployment</title>

    <section id="install_ucpe_mg">
      <title>Installing the Enea Edge Management application</title>

      <para>The Enea Edge Management application can be installed using a
      fresh (first-time) configuration or using a backup file of a previous
      installation, created within the Enea Edge Management GUI.</para>

      <section id="fresh_ucpemg_install">
        <title>Fresh Installation of the Enea Edge Management
        application</title>

        <para>On the CentOS 7 server open a terminal, log into a bash shell
        with the root account and perform the following:</para>

        <orderedlist>
          <listitem>
            <para>Extract
            <literal>Enea_Edge_Management_&lt;version&gt;-build&lt;build_number&gt;.tar.gz</literal></para>

            <para>The directory in which the archive has been unpacked will be
            denoted as: <literal>&lt;EEMg-installerdir&gt;</literal>.</para>
          </listitem>

          <listitem>
            <para>Enter
            <literal>&lt;EEMg-installerdir&gt;/dist</literal>.</para>
          </listitem>

          <listitem>
            <para>Choose the target installation folder, e.g.
            <literal>/opt/ems</literal>. Everything will be installed under a
            folder called <literal>/ucpemanager</literal> within the target
            installation folder.</para>

            <para>The application files will be installed in
            <literal>/opt/ems/ucpemanager/application</literal>. The database
            will be installed in
            <literal>/opt/ems/ucpemanager/database</literal>.</para>
          </listitem>

          <listitem>
            <para>Run the following interactive command:</para>

            <programlisting>./install.sh /opt/ems \
Enea_Edge_Management_&lt;version&gt;-build&lt;build_number&gt;.tar.gz</programlisting>

            <para>The default configuration values are specified in brackets.
            If no other value is preferred and typed in, pressing
            <literal>ENTER</literal> will keep the default values. When there
            is an option within parentheses (i.e.Y/N), a value must be
            specified.</para>

            <note>
              <para>The same configuration values set now will need to be
              provided when upgrading or uninstalling the Enea Edge Management
              application.</para>
            </note>

            <itemizedlist>
              <listitem>
                <para>Database Configurations:</para>

                <itemizedlist spacing="compact">
                  <listitem>
                    <para>Are you using the embedded PostgreSQL database?
                    [Y/N]: <literal>Y</literal>.</para>
                  </listitem>

                  <listitem>
                    <para>Specify the database process password
                    <literal>[postgres]</literal>:</para>
                  </listitem>

                  <listitem>
                    <para>Specify the database ID (or name)
                    <literal>[ucpemanager]</literal>:</para>
                  </listitem>

                  <listitem>
                    <para>Specify the database server port
                    <literal>[5432]</literal>:</para>
                  </listitem>

                  <listitem>
                    <para>Specify a database user name
                    <literal>[postgres]</literal>:</para>
                  </listitem>

                  <listitem>
                    <para>Specify a database password
                    <literal>[postgres]</literal>:</para>
                  </listitem>

                  <listitem>
                    <para>Specify the database startup thread pool size
                    <literal>[1]</literal>:</para>
                  </listitem>
                </itemizedlist>
              </listitem>

              <listitem>
                <para>Service Configurations:</para>

                <itemizedlist spacing="compact">
                  <listitem>
                    <para>Specify a service username
                    <literal>[EneaEdgeManagement]</literal>:</para>
                  </listitem>

                  <listitem>
                    <para>Specify a service password
                    <literal>[EneaEdgeManagement]</literal>:</para>
                  </listitem>
                </itemizedlist>
              </listitem>

              <listitem>
                <para>High Availability Configurations:</para>

                <itemizedlist spacing="compact">
                  <listitem>
                    <para>Specify the IP address of the local interface: The
                    CentOS 7 Server loopback address:
                    <literal>127.0.0.1</literal>.</para>
                  </listitem>

                  <listitem>
                    <para>Is this server part of a cluster? [Y/N]:
                    <literal>N</literal>.</para>
                  </listitem>
                </itemizedlist>
              </listitem>

              <listitem>
                <para>Create the self-signed certificate: <literal>Specify IP
                or domain name</literal> (or press <literal>Enter</literal> to
                skip):</para>

                <para>The Tomcat self-signed certificate can be generated
                again by running the
                <filename>createCertificate.sh</filename>. For more details,
                please see <olink targetdoc="book_enea_edge_getting_started"
                targetptr="create_certificate">Tomcat Certificate Generation
                in the <ns:include
                href="../../s_docbuild/olinkdb/pardoc-names.xml"
                xmlns:ns="http://www.w3.org/2001/XInclude"
                xpointer="element(book_enea_edge_getting_started/1)" /></olink>
                Manual.</para>

                <note>
                  <para>The generation of the Tomcat self-signed certificate
                  should be skipped only if another certificate will be
                  provided.</para>
                </note>
              </listitem>

              <listitem>
                <para>Heap Configuration: <literal>Please enter the new
                Maximum Heap Size [4g]</literal>:</para>
              </listitem>
            </itemizedlist>

            <para>This command will:</para>

            <itemizedlist spacing="compact">
              <listitem>
                <para>Extract the application files from the compressed
                installation kit.</para>
              </listitem>

              <listitem>
                <para>Install the bundled database.</para>
              </listitem>

              <listitem>
                <para>Install the Enea Edge Management application as a
                service with the name <literal>ucpemanager</literal>.</para>
              </listitem>

              <listitem>
                <para>Start the <literal>ucpemanager</literal> service.</para>
              </listitem>
            </itemizedlist>
          </listitem>

          <listitem>
            <para>Using the IPv4 address of the CentOS 7 Server in a web
            browser, running on the laptop, log into the Enea Edge Management
            GUI using the default username and password:
            <literal>admin/admin</literal>.</para>
          </listitem>
        </orderedlist>

        <note>
          <para>The IPv4 address of the CentOS 7 Server will be used as a
          configuration parameter when setting up the uCPE devices.</para>

          <para>If the CentOS 7 Server is installed behind NAT, the IPv4
          address used will be the public IP of the NAT device and port
          forwarding rules must be created to ensure the uCPE device can
          access the Enea Edge Management application. For more details,
          please see <link linkend="firewall_config">Firewall
          Configuration</link>.</para>
        </note>
      </section>

      <section id="install_ucpemg_from_backup">
        <title>Installation of the Enea Edge Management application using a
        System Back-up</title>

        <para>The Enea Edge Management application can be restored if a backup
        file has been previously created.</para>

        <para>A backup file can be created by accessing the <emphasis
        role="bold">System</emphasis> menu, and clicking <emphasis
        role="bold">System Backup</emphasis>, from the Enea Edge Management
        GUI. The resulting zip archive will be located in the
        <filename>/opt/ems/ucpemanager/application/backup</filename> folder
        and will be named
        <literal>SystemBackup_MMMDD_YYYY_HHMM_SS.zip</literal> (e.g
        System-Backup_Feb19_2013_2257_42.zip). Save the archive to another
        location outside the Enea Edge Management installation folder for
        future use.</para>

        <note>
          <para>The System Back-up file obtained from the Enea Edge Management
          GUI (<filename>SystemBackup_MMMDD_YYYY_HHMM_SS.zip</filename>) is
          different from the snapshot obtained during an Enea Edge Management
          Upgrade or Uninstall operation
          (<filename>EneaEdgeManagement-Backup-YYYYddMMHHmm.tar.gz</filename>)
          needed for recovery of the Enea Edge Management application. For
          more details, see <olink targetdoc="book_enea_edge_getting_started"
          targetptr="restore_prev_ucpe_install">Restoring a previous Enea Edge
          Management installation in the <xi:include
          href="../../s_docbuild/olinkdb/pardoc-names.xml"
          xmlns:xi="http://www.w3.org/2001/XInclude"
          xpointer="element(book_enea_edge_getting_started/1)" /></olink>
          Manual.</para>
        </note>

        <para>To install the Enea Edge Management application with the restore
        option provide an additional argument as shown below during
        installation:</para>

        <programlisting>./install.sh \
/opt/ems Enea_Edge_Management_&lt;version&gt;-build&lt;build_number&gt;.tar.gz \
SystemBackup_MMMDD_YYYY_HHMM_SS.zip</programlisting>
      </section>
    </section>

    <section id="prep_usb_ena">
      <title>Preparing the USB stick for installation of the Enea Edge
      Runtime</title>

      <para>To install the Enea Edge Runtime, create a bootable USB stick with
      the image you intend to install.</para>

      <para>In the example below, step by step instructions are provided for
      the CentOS 7 distribution. It's possible with the appropriate tools to
      also use Windows OS or MacOS.</para>

      <note>
        <para>The <filename>.hddimg</filename> image is available in the
        <filename>Enea_Edge_Runtime_&lt;processor&gt;_&lt;version&gt;-build&lt;build_number&gt;.tar.gz</filename>
        file you downloaded with your release.</para>
      </note>

      <para><emphasis role="bold">Create a bootable USB stick
      image</emphasis></para>

      <orderedlist>
        <listitem>
          <para>Copy the <filename>.hddimg</filename> image file provided by
          Enea, onto the CentOS 7 server.</para>
        </listitem>

        <listitem>
          <para>Connect the USB stick to the CentOS 7 Server and identify the
          USB device name given by the system with
          <literal>lsblk</literal>:</para>

          <programlisting>NAME    MAJ:MIN  RM   SIZE    RO  TYPE   MOUNTPOINT
sda       8:0    1    28.7G   0   disk
sdb       8:0    0    111.8G  0   disk
|-sdb1    8:1    0    111.8G  0   part</programlisting>
        </listitem>

        <listitem>
          <para>Copy the <filename>.hddimg</filename> image onto the USB
          stick, e.g:</para>

          <programlisting>sudo dd if=./enea-edge-runtime-&lt;processor&gt;.hddimg \
of=/dev/sdb bs=4M conv=fsync</programlisting>

          <para>Where
          <filename>enea-edge-runtime-&lt;processor&gt;.hddimg</filename> is the
          <filename>.hddimg</filename> file and <literal>sdb</literal> is the
          assigned USB device name.</para>
        </listitem>
      </orderedlist>
    </section>

    <section id="prep_phys_deploy">
      <title>Preparing Physical Deployment for Installation</title>

      <figure id="prep_hw_installation">
        <title>Preparing for Hardware Installation</title>

        <mediaobject>
          <imageobject>
            <imagedata contentwidth="600" fileref="images/prep_deploy.png" />
          </imageobject>
        </mediaobject>
      </figure>

      <para>While the uCPE device is powered off, in order to install and
      configure the Enea Edge Runtime (using the prepared USB stick), connect
      the laptop to a uCPE device LAN port. For this purpose, a Layer 2 switch
      or direct cable connection can be used.</para>
    </section>

    <section id="install_ena_device">
      <title>Installing Enea Edge - uCPE Device Installation</title>

      <para>To initiate the installation of the Enea Edge Runtime do the
      following:</para>

      <orderedlist>
        <listitem>
          <para>Plug the USB stick into the uCPE device.</para>
        </listitem>

        <listitem>
          <para>Power up the uCPE device and boot the USB stick.</para>
        </listitem>

        <listitem>
          <para>The Web-installer application will start automatically and can
          be accessed in a web browser on the laptop at
          <literal>http://172.16.1.1</literal> (port 80).</para>
        </listitem>

        <listitem>
          <para>On the <emphasis role="bold">Requirements</emphasis> page of
          the Web-installer, the user must confirm the the current state of
          the installation prerequisites is inline with the desired
          state:</para>

          <itemizedlist>
            <listitem>
              <para>Requirements table. Minimum values apply to the
              installation process only. For runtime operations, additional
              resources should be available depending on the specific
              workload. Requirements are color coded (green when met, red when
              mandatory and not met, orange when optional and not met). The
              Requirements table has the following fields:</para>

              <itemizedlist spacing="compact">
                <listitem>
                  <para>Disk size (mandatory). 2GB or more are required for
                  the installation.</para>
                </listitem>

                <listitem>
                  <para>CPU cores (mandatory). 2 cores or more are required
                  for the installation.</para>
                </listitem>

                <listitem>
                  <para>RAM (mandatory). 2GB or more are required for the
                  installation.</para>
                </listitem>

                <listitem>
                  <para>VT-x (mandatory). Intel Virtualization Technology must
                  be enabled.</para>
                </listitem>

                <listitem>
                  <para>VT-d (optional, recommended). Intel Virtualization
                  Technology for Directed I/O should be enabled.</para>
                </listitem>

                <listitem>
                  <para>IOMMU Group separation (optional). If the hardware
                  does not support IOMMU Group separation, there are certain
                  limitations regarding how the <literal>vfio-pci</literal>
                  driver can be used. For more details, see the <olink
                  targetdoc="book_enea_edge_release_info"
                  targetptr="bugs-limitations">Known Issues and Limitations in
                  this Release in the <xi:include
                  href="../../s_docbuild/olinkdb/pardoc-names.xml"
                  xmlns:xi="http://www.w3.org/2001/XInclude"
                  xpointer="element(book_enea_edge_release_info/1)" /></olink>
                  Manual.</para>
                </listitem>
              </itemizedlist>
            </listitem>

            <listitem>
              <para>Force installation checkbox. When enabled, the
              installation can be performed even if some of the mandatory
              requirements are not met or if non-fatal problems are detected
              during the process.</para>
            </listitem>
          </itemizedlist>
        </listitem>

        <listitem>
          <para>On the Enea <emphasis role="bold">Edge Management
          settings</emphasis> page of the Web-installer, the user must fill
          in:</para>

          <itemizedlist>
            <listitem>
              <para>The static Enea Edge Management IP Address or FQDN. This
              can be either:</para>

              <itemizedlist spacing="compact">
                <listitem>
                  <para>The IP address of the Enea Edge Management host
                  machine, if the device can directly access it.</para>
                </listitem>

                <listitem>
                  <para>The IP address of the NAT device, if the Enea Edge
                  Management host is located behind a NAT. For more details,
                  please see <link linkend="firewall_config">Firewall
                  Configuration</link>.</para>
                </listitem>

                <listitem>
                  <para>The Fully Qualified Domain Name (FQDN) of the Enea
                  Edge Management host machine.</para>
                </listitem>
              </itemizedlist>
            </listitem>

            <listitem>
              <para>The unique identifier of the uCPE device (called
              "DeviceId" in this Manual).</para>
            </listitem>

            <listitem>
              <para>Customer Tags. They are used for Zero Touch Provisioning
              (ZTP) and can be left empty for a base configuration. What can
              be entered here (if needed), are the tag(s) specified when
              creating an offline configuration in the Enea Edge Management
              application. A later addition of customer tags can only be done
              by re-installing the uCPE devices.</para>
            </listitem>
          </itemizedlist>
        </listitem>

        <listitem>
          <para>Connect the WAN cable to the uCPE device (see <link
          linkend="prep_hw_installation">Figure 2.1 Preparing for Hardware
          Installation</link>). This will be used as the uCPE management
          network interface, as described below.</para>
        </listitem>

        <listitem>
          <para>On the <emphasis role="bold">Network Setup</emphasis> page of
          the Web-installer, the user must do the following:</para>

          <itemizedlist>
            <listitem>
              <para>Select a WAN interface to use as the management network
              interface. This interface is used by the Enea Edge Management
              application to communicate with the uCPE device.</para>
            </listitem>

            <listitem>
              <para>Plug in additional WAN interfaces (if applicable) and
              provide their Layer 3 configuration. An interface can be
                configured in <literal>dhcp</literal> or 
                <literal>static</literal> mode. When configured in static
              mode, the following options are available:</para>

              <itemizedlist spacing="compact">
                <listitem>
                  <para>Static IP (mandatory)</para>
                </listitem>

                <listitem>
                  <para>Netmask (mandatory)</para>
                </listitem>

                <listitem>
                  <para>Gateway (mandatory)</para>
                </listitem>

                <listitem>
                  <para>DNS Server List (a comma separated list of IPv4
                  addresses) (optional). If left empty it will use the
                  Gateway as the DNS, with 1.1.1.1 as fallback.</para>
                </listitem>
              </itemizedlist>
            </listitem>
          </itemizedlist>
        </listitem>
      </orderedlist>

      <para>When the user has completed the configuration steps in the
      Web-installer, Enea Edge Runtime is installed on the hard drive. At this
      stage, the user should remove the USB stick and the LAN cable, and
      shutdown the uCPE device. It will be started after necessary
      configurations are done in the Enea Edge Management application, as
      described below.</para>

      <note>
        <para>If errors are detected during installation, full logs will be
        available on the last page of the Web-installer. Please contact Enea
        for log analysis. The system is not expected to be usable if errors
        are reported during installation.</para>

        <para>If the USB stick was booted in UEFI mode, a UEFI boot entry is
        automatically created and the system will start booting from the hard
        drive without further user configuration.</para>
      </note>
    </section>

    <section id="prep_phys_exec">
      <title>Preparing Physical Deployment for Execution</title>

      <figure id="prep_deploy_execution">
        <title>Preparing for Deployment Execution</title>

        <mediaobject>
          <imageobject>
            <imagedata contentwidth="600" fileref="images/prep_execution.png" />
          </imageobject>
        </mediaobject>
      </figure>

      <para>The following network configuration is needed for managing the
      uCPE device and service deployment:</para>

      <itemizedlist>
        <listitem>
          <para>Network connection between the server running the Enea Edge
          Management application and the laptop.</para>
        </listitem>

        <listitem>
          <para>Network connection between the server running the Enea Edge
          Management application and the uCPE device.</para>
        </listitem>
      </itemizedlist>
    </section>
  </section>

  <section id="mg_ucpe_devices">
    <title>Management of uCPE Devices</title>

    <para>When the installation is complete the uCPE device can be managed in
    the Enea Edge Management application.</para>

    <section id="add_offline_config">
      <title>Add a default Offline Configuration</title>

      <para>Zero Touch Provisioning is always turned on when a uCPE device
      connects to the Enea Edge Management application. To enable it in the
      Enea Edge Management application, an offline configuration needs to be
      registered for Day-0 configuration.</para>

      <note>
        <para>Day-0 configuration is a software lifecycle term referring to
        early configurations used to put the uCPE device in an active state.
        Day-1 Configurations are applied after Day-0 and set the uCPE device
        and its service in an active state. Day-2 Configurations are live
        configurations on the uCPE device and its service, applied after they
        have been activated.</para>
      </note>

      <para>The offline configuration consists of data and parameters that are
      meant to be automatically set when a uCPE device connects to the Enea
      Edge Management application for the first time. The configuration is
      typically focused on setting up the network management of the uCPE
      device, e.g. configuring network interfaces, WAN and LAN networking and
      service chains.</para>

      <para>For this base configuration, the offline configuration will be
      left blank. The blank offline configuration can be filled with
      user-specific values and data once the service is created, which is done
      after the installation is complete.</para>

      <note>
        <para>If the offline configuration is not configured, an alarm will be
        raised: <literal>Day-0 Config:ZTP:Major</literal> when the uCPE device
        tries to connect to the Enea Edge Management application, informing
        the user that the ZTP setup failed for the uCPE device.</para>
      </note>

      <para><emphasis role="bold">Creating an offline
      configuration</emphasis></para>

      <orderedlist>
        <listitem>
          <para>In a browser, access the Enea Edge Management application,
          open <emphasis role="bold">Applications</emphasis> and select
          <emphasis role="bold">Offline Config</emphasis>.</para>
        </listitem>

        <listitem>
          <para>Create a new offline configuration in the GUI by selecting the
          <emphasis role="bold">Add</emphasis> button and filling in the
          mandatory fields: <literal>name</literal>,
          <literal>deviceVersion</literal> and
          <literal>deviceId</literal>.</para>

          <para>The name is user defined and can be set to any unique text
          string identifying the configuration. The
          <literal>deviceVersion</literal> must match the Enea Edge Runtime
          version of the uCPE device and the <literal>deviceId</literal> must
          be the previously set identifier of the uCPE device
          (DeviceId).</para>
        </listitem>
      </orderedlist>
    </section>

    <section id="add_ucpe_mg">
      <title>Add a uCPE device to the Management System</title>

      <para>In order to enroll a uCPE device in the management system and
      establish a management connection, the user will add uCPE device
      information in the Enea Edge Management application. This is
      accomplished by going to <emphasis role="bold">Devices</emphasis>,
      selecting <emphasis role="bold">Manage</emphasis> and then clicking the
      <emphasis role="bold">Add</emphasis> button.</para>

      <para>The relevant parameters are:</para>

      <itemizedlist>
        <listitem>
          <para><emphasis role="bold">Type.</emphasis> The type of device to
          be added, i.e Enea universal CPE.</para>
        </listitem>

        <listitem>
          <para><emphasis role="bold">Name.</emphasis> The name by which the
          uCPE device is referred to in the Enea Edge Management application.
          (Mandatory).</para>
        </listitem>

        <listitem>
          <para><emphasis role="bold">SSH Port.</emphasis> The NETCONF Port
          used for communications. Default is set to 830.</para>
        </listitem>

        <listitem>
          <para><emphasis role="bold">SSH User Name.</emphasis> The user name
          for SSH connectivity. Default user is root.</para>
        </listitem>

        <listitem>
          <para><emphasis role="bold">SSH Password.</emphasis> Leave this
          blank.</para>
        </listitem>

        <listitem>
          <para><emphasis role="bold">Device Calls Home.</emphasis> This
          checkbox indicates the direction of uCPE device communications. For
          a base configuration, leave this flag unchecked.</para>
        </listitem>

        <listitem>
          <para><emphasis role="bold">Device ID.</emphasis> The unique
          identifier of the uCPE device. (Mandatory).</para>
        </listitem>
      </itemizedlist>

      <para>For more details concerning Device Calls Home, please see <olink
      targetdoc="book_enea_edge_getting_started"
      targetptr="device_callhome_nat">Device Call Home Connection for
      Deployment behind NAT in the <xi:include
      href="../../s_docbuild/olinkdb/pardoc-names.xml"
      xmlns:xi="http://www.w3.org/2001/XInclude"
      xpointer="element(book_enea_edge_getting_started/1)" /></olink>
      Manual.</para>
    </section>

    <section id="boot_device_add_map">
      <title>Booting the uCPE device and adding it to the Map</title>

      <para>When connectivity is established with the Enea Edge Management
      application and a uCPE device is already registered with a matching
      <literal>Device ID</literal>, the installation is complete, and the
      connection is established.</para>

      <para>When a uCPE device is registered it can be manually added to the
      map for overview. <emphasis role="bold">Right-click</emphasis> on the
      map and select <emphasis role="bold">Place Device</emphasis> to put the
      uCPE device on the map.</para>

      <para>In case of management connection failure (e.g. due to a
      misconfiguration), the uCPE device status will be seen as RED
      (disconnected) in the Enea Edge Management application. The uCPE device
      configuration can be corrected by removing the WAN cable(s),
      reconnecting the laptop to the LAN interface of the uCPE device and
      rebooting it. At this point, the Web-installer can be accessed from the
      laptop as described in <olink targetdoc="book_enea_edge_getting_started"
      targetptr="install_ena_device">Installing Enea Edge - uCPE Device
      installation in the <xi:include
      href="../../s_docbuild/olinkdb/pardoc-names.xml"
      xmlns:xi="http://www.w3.org/2001/XInclude"
      xpointer="element(book_enea_edge_getting_started/1)" /></olink>
      Manual.</para>
    </section>
  </section>

  <section id="ucpe_monitor">
    <title>uCPE Device Monitorization and Control</title>

    <para>Once the uCPE device is connected to the Enea Edge Management
    application, it is ready for central management. Two important functions
    available in the Enea Edge Management GUI are alarm checking and resource
    allocation. Additionally, the device can be rebooted, the factory settings
    can be restored or simply the vCPE service can be restarted.</para>

    <section id="check_alarms">
      <title>Checking Alarms</title>

      <para>The Enea Edge Management application dashboard presents alarms in
      a specific window on the front page.</para>

      <para>An alarm can be easily triggered by disconnecting and reconnecting
      the WAN ethernet cable from the uCPE device. The management system will
      detect the broken link and raise an alarm: <literal>Device
      Disconnected::Critical</literal>.</para>

      <para>A separate Alarm Management window can be accessed from the Enea
      Edge Management menu for in-depth access and programming of <emphasis
      role="bold">Alarms and Events</emphasis>.</para>
    </section>

    <section id="ck_resource_alloc">
      <title>Checking uCPE device Resource Allocation</title>

      <para>When the uCPE device is connected to the Enea Edge Management
      application it is of interest to check the amount of hardware resources
      in use.</para>

      <para>To check CPU, RAM and disk utilization simply select the uCPE
      device and go to the <emphasis role="bold">Virtual Machines</emphasis>
      tab in the map view. The same view will show active VNFs running on the
      uCPE device once instantiated.</para>
    </section>

    <section id="basic_oper_device">
      <title>Basic operations for uCPE device Management</title>

      <para>When the uCPE device is connected to the Enea Edge Management
      application, it can be rebooted, the factory settings can be restored or
      simply the vCPE service can be restarted.</para>

      <para>Select the uCPE device and go to the <emphasis
      role="bold">Operations</emphasis> menu, where the following options are
      available:</para>

      <itemizedlist>
        <listitem>
          <para><emphasis role="bold">Reboot</emphasis>. Reboots the device.
          Settings will be preserved.</para>
        </listitem>

        <listitem>
          <para><emphasis role="bold">Factory reset</emphasis>. Resets the
          device to its default factory settings. All current configuration
          settings are lost. All running VNFs are destroyed. All uploaded VM
          image files are deleted. Existing log files will be kept.</para>

          <para>Only the vCPE service will be restarted, the device will not
          be rebooted. No reboot is needed.</para>

          <para>Once the vCPE service restart completes, appropriate day-0
          provisioning will take place. Previously installed custom scripts
          will be reinstalled on the uCPE device, and upon receiving the
          custom script(s), the device will reboot.</para>
        </listitem>

        <listitem>
          <para><emphasis role="bold">Restart Vcpe</emphasis>. Restarts the
          vCPE service on the device. The device will not be rebooted.</para>
        </listitem>
      </itemizedlist>
    </section>

    <section id="access_device_cli">
      <title>Accessing the uCPE device CLI</title>

      <para>As a final check to make sure the uCPE device was installed and
      configured correctly, access the uCPE device Linux CLI by selecting the
      uCPE device on the map and using the <emphasis role="bold">SSH
      button</emphasis> from the panel. A new window will appear for CLI
      access. The default user and password are <literal>root</literal> and
      blank, respectively.</para>

      <para>This is a pure Linux CLI providing access to standard Linux CLI
      commands. The CLI is a central feature for running custom
      scripting.</para>

      <note>
        <para>In case the uCPE device was installed behind a NAT device, the
        reverse SSH connection will be used. For more details, please see
        <olink targetdoc="book_enea_edge_getting_started"
        targetptr="device_callhome_nat">Device Call Home Connection for
        deployment behind NAT in the <xi:include
        href="../../s_docbuild/olinkdb/pardoc-names.xml"
        xmlns:xi="http://www.w3.org/2001/XInclude"
        xpointer="element(book_enea_edge_getting_started/1)" /></olink>
        Manual.</para>
      </note>
    </section>
  </section>
</chapter>