-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathinventory.yml
280 lines (269 loc) · 8.96 KB
/
inventory.yml
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
# Before run the playbook, please check inventory file
# You should setup properties for correct installation
#
# To run playbook, please use:
# ansible-playbook -i inventories/inventory.yml playbooks/sip3.yml
# To run playbook locally use:
# ansible-playbook -i inventories/inventory.yml playbooks/sip3.yml --connection=local
#
# Also you can set tags which will be use: sip3, storage, frontend, backend
# E.g.
# ansible-playbook -i inventories/inventory.yml playbooks/sip3.yml -t storage
#
# tag sip3: will manipulate with sip3 components, such as SIP3 Captain, Salto, Twig, Hoof
# tag storage: will manipulate only with components MongoDB and InfluxDB
# tag frontend: will manipulate only with components SIP3 Hoof and Grafana
# tag backend: will manipulate with components, such as SIP3 Salto, Twig
#
# Also you set exclusion host.
# For example, you need run playbook without captain
# ansible-playbook -i inventories/inventory.yml playbooks/sip3.yml --limit 'all:!captain'
all:
###
# Section which define hosts where will be install SIP3 applications
children:
mongodb:
hosts:
# Add MongoDB hosts here
#mongodb1:
influxdb:
hosts:
# Add influxdb hosts here
#influxdb1:
salto:
hosts:
# Add sip3-salto hosts here
#salto1:
twig:
hosts:
# Add sip3-twig hosts here
#twig1:
grafana:
hosts:
# Add grafana hosts here
#grafana1:
hoof:
hosts:
# Add sip3-salto hosts here
#hoof1:
captain:
hosts:
# Add sip3-captain hosts here
# You can add real hosts or interfaces symlinks
#captain1@enp1s0:
# Ansible ssh connection facts
# SSH host. You can use dns name or IP address
#ansible_ssh_host: captain1
# SSH username
#ansible_user: root
# SSH password
#ansible_password: root
# You can set specific captain part variables for host. Or any another variables. That variables will overwrite global variables
#captain:
# pcap:
# Ethernet interface where Captain will be sniff.
# dev: enp1s0
# Libpcap filter string. For more information about semantic you can find in pcap-filter(7)
# bpf_filter: tcp or udp
# rtcp:
# enabled: false
#second captain interface on captain1
#captain1@lo:
# Ansible ssh connection facts
# SSH host. You can use dns name or IP address
#ansible_ssh_host: captain1
# SSH username
#ansible_user: root
# SSH password
#ansible_password: root
# You can skip sip3 package install for fake "interface" hosts
#config_only: true
#captain:
# pcap:
# Ethernet interface where Captain will be sniff.
# dev: lo
# Libpcap filter string. For more information about semantic you can find in pcap-filter(7)
# bpf_filter: tcp or udp
# rtcp:
# enabled: false
###
# Commons variables of SIP3 applications
vars:
# Username for ssh access. Auth should be done via ssh identity_file (private and public keys) or set option -K for ansible-playbook
#ansible_user: root
# Management ip address for SSH access
#ansible_host: 127.0.0.1
# May be usefull for Non-SSH connection in case of localhost (127.0.0.1). Uncomment for use.
# ansible_connection: local
# SSH port for management access to hosts
#ansible_port: 22
# Properties ansible_user, ansible_host and ansible_port can be individual for each hosts,
# in this case you should copy these properties to each hosts variable section below.
# ansible_user should have privileged access for create directory, install packages. We recommend use root.
# ip address of MongoDB for internal communication with Salto and Twig
#
# Use property ansible_become for privilege escalation. If you don't use root in ansible_user property,
# you should use ansible_become
#ansible_become: true
# Common ip address for all hosts. If you want separate for each one, you can define it in group or host variable
address: 127.0.0.1
# Needs use proxy, you can set property 'proxy'
# E.g.
# proxy: http://127.0.0.1:3128
# Community or Enterprise version edition
edition: ce
# Files for EE downloading. crt and key files should be located in the roles/repo/files/etc/ssl/repo.sip3.io/ directory.
license:
cert: client.crt
key: client.key
# Put file in roles/salto/files/etc/sip3-salto/
file: client.jks
# SIP3 features
features:
- call
- register
- rtcp
- rtp
- rec
- udf
# Settings for Java
java:
xms: 512M
xmx: 1024M
gc: G1
other: -XX:+PrintGCDetails
# Vert.X metrics
vertx:
enabled: true
retention_duration: 5d
# Persistence storage properties
mongodb:
# If you want to use for MongoDB exclusive ip address, you can set here. Otherwise will be use variable 'address'
address: 127.0.0.1
port: 27017
path: /var/lib/mongodb
db: sip3
# Properties for metrics storage
influxdb:
# If you want to use for InfluxDB exclusive ip address, you can set here. Otherwise will be use variable 'address'
address: 127.0.0.1
port: 8086
path: /var/lib/influxdb
db: sip3
# Properties of Grafana for represent metric graphs
grafana:
datasources:
database: sip3
# Properties for SIP3 Salto application
salto:
# You can set properties of SIP3 Salto application as it defined in configuration
# metrics:
# influxdb:
# uri: http://127.0.0.1:8086
# Salto ip address on which the Captain stream is listen. Otherwise will be use variable 'address'
address: 127.0.0.1
port: 15060
mongodb:
bulk_size: 1
update_period: 300000
collections:
sip_index_index:
max_collections: 30
sip_index_raw:
max_collections: 30
unknown_raw:
max_collections: 30
sip_register_index:
max_collections: 10
sip_register_raw:
max_collections: 10
attributes:
max_collections: 30
attributes:
record_ip_addresses: true
udf:
- name: "sip_udf_function.groovy"
body: |
package udf
vertx.eventBus().localConsumer("sip_message_udf", { event ->
event.reply(true)
})
# Properties for SIP3 Twig application
twig:
server:
port: 8080
# You can set existing grafana server as Authorization Provider by providing url to it
# security:
# grafana:
# url: https://grafana.example.com/api/user
# Properties for SIP3 Captain application
captain:
pcap:
# Ethernet interface where Captain will be sniff.
dev: eth0
# Libpcap filter string. For more information about semantic you can find in pcap-filter(7)
bpf_filter: tcp or udp
rtcp:
enabled: false
# Configuration properties for running SIP3 Hoof
hoof:
# Hostname of UI for access via browser
server_name: _
# Reconfigure /etc/nginx/nginx.conf for use :80 for SIP3 Hoof
listen_port: 80
# Will recommend set to 'yes' if you use scratch install of NGINX
reconfigure: yes
# config for Hoof UI
config:
name: hoof
type: hoof
time_zones:
- label: UTC
name: "(UTC) Greenwich Mean Time"
value: "+00:00"
winbox:
auto_close: false
sidebar:
dashboards:
- order: 0
name: Dashboards
type: external
url: "/grafana"
searches:
- order: 0
name: Simple Search
type: internal
url: "/search/simple"
icon: "/assets/page-icons/SimpleSearch.svg"
- order: 1
name: Advanced Search
type: internal
url: "/search/advanced"
icon: "/assets/page-icons/AdvancedSearch.svg"
links:
- order: 0
name: Documentation
type: external
url: https://sip3.io/docs
icon: "/assets/page-icons/Documentation.svg"
root_path: ''
oauth2:
enabled: false
provider: sip3
# Structure of hosts map for correlation legs in flow diagram
hostmap:
# Host name as it will show in the call flow
- name: "node-1"
addr:
- 127.0.0.1/32
- 127.0.0.2/32
mapping:
- source: 127.0.0.1/32
target: 127.0.0.2/32
- name: "node-2"
addr:
- 127.0.1.1/32
- 127.0.2.2/32
mapping:
- source: 127.0.1.1/32
target: 127.0.2.2/32