Create wt-odlux directory
[ccsdk/features.git] / sdnr / wt-odlux / helpserver / provider / src / main / resources / help / mediatorserver / installation / README.md
1 # MediatorServer
2
3 ## Manual Installation
4
5 ### Install prerequisites
6
7 ```
8 sudo apt-get install jq curl
9 ```
10 Installing Java
11
12 for production
13 ```
14 sudo apt-get install openjdk-8-jre
15
16 ```
17
18 for development
19 ```
20 sudo apt-get install openjdk-8-jdk
21 sudo apt-get install git maven
22
23 ```
24
25 ### Create user
26 ```
27 useradd mediators
28 ```
29
30 ### Choose a home directory for all mediatorserver files
31 ```
32 mkdir /opt/snmp
33
34 ```
35
36 ### Create folder infrastructure
37 ```
38 cd /opt/snmp
39 mkdir bin
40 mkdir mediators
41 mkdir nemodel
42 mkdir yang
43 mkdir source (only for dev-env)
44
45 ```
46
47 ### Copy files to folders
48 ```
49 bin/control.sh
50 bin/clean_all.sh
51 bin/debug.sh
52 bin/mediatorserver.sh
53 bin/Netconf2SNMPMediator.sh
54 bin/Netconf2SNMPMediator.jar
55 bin/init_script.sh
56 bin/firewall_status.sh
57 bin/unlock_all.sh
58 bin/firewall.sh
59 bin/MediatorServer.jar
60 bin/stop_all.sh
61 bin/start_all.sh
62 ```
63
64 ```
65 nemodel/DragonWave-HCP.xml
66 nemodel/ActionTEC_ECB6200.xml
67 nemodel/ActionTEC_ECB6000.xml
68 nemodel/DVM_MWCore12_BasicAir.xml
69 nemodel/DragonWave-HQ.xml
70 nemodel/DragonWave-HQdev.xml
71 nemodel/CommScope.xml
72 ```
73
74 ```
75 yang/yangNeModel
76 yang/yangNeModel/G_874_1_model-Imported_Information_Object_Classes-Q_822@2016-08-11.yang
77 yang/yangNeModel/MicrowaveModel-ObjectClasses-PureEthernetStructure@2016-09-02.yang
78 yang/yangNeModel/yuma-proc@2012-10-10.yang
79 yang/yangNeModel/nc-notifications@2008-07-14.yang
80 yang/yangNeModel/CoreModel-CoreFoundationModule-TypeDefinitions@2016-07-01.yang
81 yang/yangNeModel/ietf-inet-types@2010-09-24.yang
82 yang/yangNeModel/onf-ptp-dataset@2017-05-08.yang
83 yang/yangNeModel/yuma-system@2014-11-27.yang
84 yang/yangNeModel/onf-ethernet-conditional-packages@2017-04-02.yang
85 yang/yangNeModel/MicrowaveModel-ObjectClasses-SuperClasses@2016-08-09.yang
86 yang/yangNeModel/ietf-ptp-dataset@2017-02-08.yang
87 yang/yangNeModel/MicrowaveModel-ObjectClasses-TdmContainer@2016-09-02.yang
88 yang/yangNeModel/ietf-netconf-acm@2012-02-22.yang
89 yang/yangNeModel/MicrowaveModel-Notifications@2016-08-09.yang
90 yang/yangNeModel/MicrowaveModel-ObjectClasses-HybridMwStructure@2016-09-02.yang
91 yang/yangNeModel/microwave-model@2017-03-24.yang
92 yang/yangNeModel/MicrowaveModel-ObjectClasses-AirInterfaceDiversity@2016-09-02.yang
93 yang/yangNeModel/G_874_1_model-Type_Definitions@2016-07-10.yang
94 yang/yangNeModel/CoreModel-CoreFoundationModule-StateModel@2016-08-09.yang
95 yang/yangNeModel/G_874_1_model-Imported_Information_Object_Classes-X_739@2016-07-10.yang
96 yang/yangNeModel/ietf-system@2014-08-06.yang
97 yang/yangNeModel/G_874_1_model-Imported_Information_Object_Classes-X_721@2016-07-10.yang
98 yang/yangNeModel/MicrowaveModel-ObjectClasses-AirInterface@2016-09-01.yang
99 yang/yangNeModel/onf-core-model-conditional-packages@2017-04-02.yang
100 yang/yangNeModel/MicrowaveModel-NetworkElement-CurrentProblemList@2016-11-20.yang
101 yang/yangNeModel/core-model@2017-03-20.yang
102 yang/yangNeModel/g.874.1-model@2017-03-20.yang
103 yang/yangNeModel/ietf-yang-library@2016-04-09.yang
104 yang/yangNeModel/yuma-time-filter@2011-08-13.yang
105 yang/yangNeModel/yuma-mysession@2010-05-10.yang
106 yang/yangNeModel/G_874_1_model-Imported_Data_Types@2016-07-10.yang
107 yang/yangNeModel/yuma-ncx@2012-01-13.yang
108 yang/yangNeModel/ietf-yang-types@2013-07-15.yang
109 yang/yangNeModel/MicrowaveModel-ObjectClasses-EthernetContainer@2016-09-02.yang
110 yang/yangNeModel/notifications@2008-07-14.yang
111 yang/yangNeModel/ietf-netconf-monitoring@2010-10-04.yang
112 yang/yangNeModel/CoreModel-CoreFoundationModule-SuperClassesAndCommonPackages@2016-07-10.yang
113 yang/yangNeModel/ietf-restconf@2013-10-19.yang
114 yang/yangNeModel/yuma-app-common@2012-08-16.yang
115 yang/yangNeModel/yuma-types@2012-06-01.yang
116 yang/yangNeModel/CoreModel-CoreNetworkModule-ObjectClasses@2016-08-11.yang
117 yang/yangNeModel/MicrowaveModel-TypeDefinitions@2016-09-02.yang
118 yang/yangNeModel/ietf-netconf-with-defaults@2011-06-01.yang
119 yang/yangNeModel/ietf-netconf@2011-06-01.yang
120 yang/yangNeModel/ietf-netconf-partial-lock@2009-10-19.yang
121 yang/yangNeModel/G_874_1_model-Object_Classes@2016-07-10.yang
122 yang/yangNeModel/ietf-inet-types@2013-07-15.yang
123 yang/yangNeModel/CoreModel-CoreNetworkModule-TypeDefinitions@2016-07-10.yang
124 yang/yangNeModel/yuma-arp@2012-01-13.yang
125 yang/yangNeModel/iana-crypt-hash@2014-04-04.yang
126 yang/notification
127 yang/notification/readme.md
128 yang/notification/notifications@2008-07-14.yang
129 ```
130
131 and change all rights to the extra created user
132 ```
133 sudo chown -R mediators:mediators /opt/snmp
134 ```
135
136 ### Create mediatorserver config file
137
138 ```
139 sudo nano /etc/mediatorserver.conf
140 ```
141 example:
142 ```
143 #Home Directory
144 home=/opt/snmp
145
146 #HOST IP
147 host=192.168.178.89
148 port=7070
149
150 #Port range for Netconf
151 ncrangemin=4000
152 ncrangemax=6000
153
154 #Port Range for SNMP
155 snmprangemin=10000
156 snmprangemax=12000
157
158 #PortRange for JMX
159 jmxrangemin=6001
160 jmxrangemax=7000
161
162 #Log (ERROR | WARN | DEBUG | INFO | TRACE )
163 loglevel=WARN
164 logfile=/var/log/mediatorserver.log
165
166 #=====================================
167 #global MediatorConfig
168
169 #set LogLevel (ERROR | WARN | DEBUG | INFO | TRACE )
170 MediatorLogLevel=DEBUG
171
172 #set ping timeout in milliseconds
173 MediatorDevicePingTimeout=2000
174
175 #set latency for snmp requests
176 MediatorSnmpLatency=2000
177
178 #set java memory for mediator instance
179 MediatorMemory="-Xmx256m -Xms128m"
180
181 #====================================
182 ```
183
184
185 ### Create mediatorserver systemd daemon
186
187 ```
188 sudo nano /etc/systemd/system/mediatorserver.service
189 ```
190
191 ```
192 [Unit]
193 Description=mediatorserver
194 After=network.target
195
196 [Service]
197 WorkingDirectory=/opt/snmp/
198 SyslogIdentifier=MediatorServer
199 ExecStart=/opt/snmp/bin/mediatorserver.sh
200 User=mediators
201 Type=oneshot
202
203 [Install]
204 WantedBy=multi-user.target
205
206 ```
207
208 ### Initial create mediator server logfile with correct file permissions
209 ```
210 sudo touch /var/log/mediatorserver.log
211 sudo chown mediators:mediators /var/log/mediatorserver.log
212 ```
213
214 ### Activate mediatorserver systemd daemon
215 ```
216 systemctl enable mediatorserver.service
217 systemctl daemon-reload
218 ```
219
220 Now you can start and stop the service as you like
221 ```
222 sudo service mediatorserver [start | stop]
223 ```
224
225 ### Install cron jobs
226 ```
227 sudo crontab -e
228 ```
229 ```
230 */2 * * * * /bin/bash /opt/snmp/bin/firewall.sh >> /var/log/firewall.log
231 */2 * * * * /bin/bash /opt/snmp/bin/clean_all.sh > /dev/null 2>&1
232 ```
233
234 ### Test Accessibility of the HTTP-API with console 
235 ```
236 curl http://localhost:7070/api/?task=version
237 ```
238 or directly in your browser
239 ```
240 http://<mediator-server-ip>:7070/api/?task=version
241 ```
242 should respond with something like this:
243 ```
244 {"code":1,"data":{"server":"0.1.0","mediator":"0.1.1"}}
245 ```
246