oxidized 0.35.0 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/.coderabbit.yaml +21 -0
  3. data/.github/workflows/publishdocker.yml +11 -9
  4. data/.github/workflows/ruby.yml +1 -3
  5. data/.rubocop.yml +16 -2
  6. data/.rubocop_todo.yml +21 -2
  7. data/CHANGELOG.md +76 -3
  8. data/README.md +2 -3
  9. data/Rakefile +1 -1
  10. data/docs/Configuration.md +40 -2
  11. data/docs/Creating-Models.md +129 -14
  12. data/docs/Docker.md +2 -1
  13. data/docs/Hooks.md +92 -67
  14. data/docs/Inputs.md +44 -12
  15. data/docs/Model-Notes/APC.md +72 -0
  16. data/docs/Model-Notes/ExaLink.md +43 -0
  17. data/docs/Model-Notes/Fortinet.md +75 -0
  18. data/docs/Model-Notes/GrandstreamHT8xx.md +8 -0
  19. data/docs/Model-Notes/IvantiConnectSecure.md +59 -0
  20. data/docs/Model-Notes/RouterOS.md +13 -0
  21. data/docs/Model-Notes/TrueNAS.md +23 -0
  22. data/docs/ModelUnitTests.md +23 -0
  23. data/docs/Outputs.md +18 -4
  24. data/docs/Release.md +7 -2
  25. data/docs/Ruby-API.md +86 -5
  26. data/docs/Supported-OS-Types.md +21 -9
  27. data/docs/Troubleshooting.md +1 -1
  28. data/extra/device2yaml.rb +2 -3
  29. data/extra/hooks/modelrules.rb +55 -0
  30. data/extra/hooks/modelrulesadvanced.rb +167 -0
  31. data/extra/hooks/srcipmap.rb +54 -0
  32. data/lib/oxidized/cli/support.rb +152 -0
  33. data/lib/oxidized/cli.rb +9 -0
  34. data/lib/oxidized/hook/githubrepo.rb +2 -1
  35. data/lib/oxidized/hook.rb +58 -8
  36. data/lib/oxidized/input/debugtext.rb +40 -0
  37. data/lib/oxidized/input/debugyaml.rb +82 -0
  38. data/lib/oxidized/input/exec.rb +1 -10
  39. data/lib/oxidized/input/ftp.rb +0 -17
  40. data/lib/oxidized/input/http.rb +39 -21
  41. data/lib/oxidized/input/input.rb +33 -13
  42. data/lib/oxidized/input/scp.rb +10 -64
  43. data/lib/oxidized/input/ssh.rb +36 -79
  44. data/lib/oxidized/input/sshbase.rb +102 -0
  45. data/lib/oxidized/input/telnet.rb +12 -13
  46. data/lib/oxidized/input/tftp.rb +7 -7
  47. data/lib/oxidized/model/aoscx.rb +18 -12
  48. data/lib/oxidized/model/aosw.rb +10 -11
  49. data/lib/oxidized/model/apc_aos.rb +4 -0
  50. data/lib/oxidized/model/apcaos.rb +39 -0
  51. data/lib/oxidized/model/arubainstant.rb +11 -20
  52. data/lib/oxidized/model/asa.rb +7 -7
  53. data/lib/oxidized/model/comware.rb +3 -1
  54. data/lib/oxidized/model/cumulus.rb +3 -3
  55. data/lib/oxidized/model/defacto.rb +26 -0
  56. data/lib/oxidized/model/dlinknextgen.rb +1 -0
  57. data/lib/oxidized/model/dslcommands.rb +93 -0
  58. data/lib/oxidized/model/dslsetup.rb +102 -0
  59. data/lib/oxidized/model/efos.rb +5 -5
  60. data/lib/oxidized/model/exalink.rb +36 -0
  61. data/lib/oxidized/model/fastiron.rb +2 -2
  62. data/lib/oxidized/model/firelinuxos.rb +1 -3
  63. data/lib/oxidized/model/fortigate.rb +160 -0
  64. data/lib/oxidized/model/fortios.rb +28 -69
  65. data/lib/oxidized/model/fsos.rb +1 -3
  66. data/lib/oxidized/model/grandstreamht8xx.rb +19 -0
  67. data/lib/oxidized/model/h3c.rb +1 -1
  68. data/lib/oxidized/model/ios.rb +23 -15
  69. data/lib/oxidized/model/ironware.rb +5 -3
  70. data/lib/oxidized/model/ivanti.rb +54 -0
  71. data/lib/oxidized/model/junos.rb +2 -2
  72. data/lib/oxidized/model/linuxgeneric.rb +4 -2
  73. data/lib/oxidized/model/macros.rb +60 -0
  74. data/lib/oxidized/model/mlnxos.rb +11 -7
  75. data/lib/oxidized/model/model.rb +28 -126
  76. data/lib/oxidized/model/ndms.rb +6 -0
  77. data/lib/oxidized/model/netgear.rb +5 -3
  78. data/lib/oxidized/model/nxos.rb +6 -3
  79. data/lib/oxidized/model/outputs.rb +5 -0
  80. data/lib/oxidized/model/perle.rb +14 -8
  81. data/lib/oxidized/model/routeros.rb +4 -0
  82. data/lib/oxidized/model/smartbyte.rb +48 -0
  83. data/lib/oxidized/model/tplink.rb +4 -6
  84. data/lib/oxidized/model/truenas.rb +63 -3
  85. data/lib/oxidized/model/voss.rb +3 -0
  86. data/lib/oxidized/model/vyos.rb +4 -1
  87. data/lib/oxidized/node.rb +25 -23
  88. data/lib/oxidized/nodes.rb +2 -0
  89. data/lib/oxidized/output/file.rb +7 -1
  90. data/lib/oxidized/output/git.rb +11 -1
  91. data/lib/oxidized/output/gitcrypt.rb +1 -1
  92. data/lib/oxidized/output/http.rb +12 -3
  93. data/lib/oxidized/source/csv.rb +5 -0
  94. data/lib/oxidized/source/jsonfile.rb +5 -0
  95. data/lib/oxidized/source/sql.rb +5 -0
  96. data/lib/oxidized/version.rb +2 -2
  97. data/lib/oxidized/worker.rb +36 -15
  98. data/lib/refinements.rb +18 -0
  99. data/oxidized.gemspec +28 -24
  100. metadata +103 -55
  101. data/docs/Model-Notes/APC_AOS.md +0 -65
  102. data/docs/Model-Notes/FortiOS.md +0 -44
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oxidized
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.35.0
4
+ version: 0.37.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Saku Ytti
@@ -81,20 +81,6 @@ dependencies:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
83
  version: '1.4'
84
- - !ruby/object:Gem::Dependency
85
- name: net-scp
86
- requirement: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - "~>"
89
- - !ruby/object:Gem::Version
90
- version: '4.1'
91
- type: :runtime
92
- prerelease: false
93
- version_requirements: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - "~>"
96
- - !ruby/object:Gem::Version
97
- version: '4.1'
98
84
  - !ruby/object:Gem::Dependency
99
85
  name: net-ssh
100
86
  requirement: !ruby/object:Gem::Requirement
@@ -157,14 +143,14 @@ dependencies:
157
143
  requirements:
158
144
  - - "~>"
159
145
  - !ruby/object:Gem::Version
160
- version: 4.17.0
146
+ version: '4.17'
161
147
  type: :runtime
162
148
  prerelease: false
163
149
  version_requirements: !ruby/object:Gem::Requirement
164
150
  requirements:
165
151
  - - "~>"
166
152
  - !ruby/object:Gem::Version
167
- version: 4.17.0
153
+ version: '4.17'
168
154
  - !ruby/object:Gem::Dependency
169
155
  name: slop
170
156
  requirement: !ruby/object:Gem::Requirement
@@ -185,90 +171,82 @@ dependencies:
185
171
  requirements:
186
172
  - - "~>"
187
173
  - !ruby/object:Gem::Version
188
- version: 0.3.0
174
+ version: '0.3'
189
175
  type: :runtime
190
176
  prerelease: false
191
177
  version_requirements: !ruby/object:Gem::Requirement
192
178
  requirements:
193
179
  - - "~>"
194
180
  - !ruby/object:Gem::Version
195
- version: 0.3.0
181
+ version: '0.3'
196
182
  - !ruby/object:Gem::Dependency
197
183
  name: syslog_protocol
198
184
  requirement: !ruby/object:Gem::Requirement
199
185
  requirements:
200
186
  - - "~>"
201
187
  - !ruby/object:Gem::Version
202
- version: 0.9.2
188
+ version: '0.9'
203
189
  type: :runtime
204
190
  prerelease: false
205
191
  version_requirements: !ruby/object:Gem::Requirement
206
192
  requirements:
207
193
  - - "~>"
208
194
  - !ruby/object:Gem::Version
209
- version: 0.9.2
195
+ version: '0.9'
210
196
  - !ruby/object:Gem::Dependency
211
- name: git
197
+ name: minitest
212
198
  requirement: !ruby/object:Gem::Requirement
213
199
  requirements:
214
200
  - - ">="
215
201
  - !ruby/object:Gem::Version
216
- version: '2.0'
202
+ version: '5.18'
217
203
  - - "<"
218
204
  - !ruby/object:Gem::Version
219
- version: 3.2.0
205
+ version: '7'
220
206
  type: :development
221
207
  prerelease: false
222
208
  version_requirements: !ruby/object:Gem::Requirement
223
209
  requirements:
224
210
  - - ">="
225
211
  - !ruby/object:Gem::Version
226
- version: '2.0'
212
+ version: '5.18'
227
213
  - - "<"
228
214
  - !ruby/object:Gem::Version
229
- version: 3.2.0
230
- - !ruby/object:Gem::Dependency
231
- name: minitest
232
- requirement: !ruby/object:Gem::Requirement
233
- requirements:
234
- - - "~>"
235
- - !ruby/object:Gem::Version
236
- version: 5.26.0
237
- type: :development
238
- prerelease: false
239
- version_requirements: !ruby/object:Gem::Requirement
240
- requirements:
241
- - - "~>"
242
- - !ruby/object:Gem::Version
243
- version: 5.26.0
215
+ version: '7'
244
216
  - !ruby/object:Gem::Dependency
245
217
  name: mocha
246
218
  requirement: !ruby/object:Gem::Requirement
247
219
  requirements:
248
- - - "~>"
220
+ - - ">="
249
221
  - !ruby/object:Gem::Version
250
222
  version: '2.1'
223
+ - - "<"
224
+ - !ruby/object:Gem::Version
225
+ version: '4'
251
226
  type: :development
252
227
  prerelease: false
253
228
  version_requirements: !ruby/object:Gem::Requirement
254
229
  requirements:
255
- - - "~>"
230
+ - - ">="
256
231
  - !ruby/object:Gem::Version
257
232
  version: '2.1'
233
+ - - "<"
234
+ - !ruby/object:Gem::Version
235
+ version: '4'
258
236
  - !ruby/object:Gem::Dependency
259
237
  name: pry
260
238
  requirement: !ruby/object:Gem::Requirement
261
239
  requirements:
262
240
  - - "~>"
263
241
  - !ruby/object:Gem::Version
264
- version: 0.15.0
242
+ version: '0.15'
265
243
  type: :development
266
244
  prerelease: false
267
245
  version_requirements: !ruby/object:Gem::Requirement
268
246
  requirements:
269
247
  - - "~>"
270
248
  - !ruby/object:Gem::Version
271
- version: 0.15.0
249
+ version: '0.15'
272
250
  - !ruby/object:Gem::Dependency
273
251
  name: rake
274
252
  requirement: !ruby/object:Gem::Requirement
@@ -289,28 +267,28 @@ dependencies:
289
267
  requirements:
290
268
  - - "~>"
291
269
  - !ruby/object:Gem::Version
292
- version: 1.81.0
270
+ version: 1.86.0
293
271
  type: :development
294
272
  prerelease: false
295
273
  version_requirements: !ruby/object:Gem::Requirement
296
274
  requirements:
297
275
  - - "~>"
298
276
  - !ruby/object:Gem::Version
299
- version: 1.81.0
277
+ version: 1.86.0
300
278
  - !ruby/object:Gem::Dependency
301
279
  name: rubocop-minitest
302
280
  requirement: !ruby/object:Gem::Requirement
303
281
  requirements:
304
282
  - - "~>"
305
283
  - !ruby/object:Gem::Version
306
- version: 0.38.0
284
+ version: 0.39.1
307
285
  type: :development
308
286
  prerelease: false
309
287
  version_requirements: !ruby/object:Gem::Requirement
310
288
  requirements:
311
289
  - - "~>"
312
290
  - !ruby/object:Gem::Version
313
- version: 0.38.0
291
+ version: 0.39.1
314
292
  - !ruby/object:Gem::Dependency
315
293
  name: rubocop-rake
316
294
  requirement: !ruby/object:Gem::Requirement
@@ -345,14 +323,62 @@ dependencies:
345
323
  requirements:
346
324
  - - "~>"
347
325
  - !ruby/object:Gem::Version
348
- version: 0.22.0
326
+ version: '0.22'
327
+ type: :development
328
+ prerelease: false
329
+ version_requirements: !ruby/object:Gem::Requirement
330
+ requirements:
331
+ - - "~>"
332
+ - !ruby/object:Gem::Version
333
+ version: '0.22'
334
+ - !ruby/object:Gem::Dependency
335
+ name: git
336
+ requirement: !ruby/object:Gem::Requirement
337
+ requirements:
338
+ - - ">="
339
+ - !ruby/object:Gem::Version
340
+ version: '2.0'
341
+ - - "<"
342
+ - !ruby/object:Gem::Version
343
+ version: '5'
344
+ type: :development
345
+ prerelease: false
346
+ version_requirements: !ruby/object:Gem::Requirement
347
+ requirements:
348
+ - - ">="
349
+ - !ruby/object:Gem::Version
350
+ version: '2.0'
351
+ - - "<"
352
+ - !ruby/object:Gem::Version
353
+ version: '5'
354
+ - !ruby/object:Gem::Dependency
355
+ name: net-scp
356
+ requirement: !ruby/object:Gem::Requirement
357
+ requirements:
358
+ - - "~>"
359
+ - !ruby/object:Gem::Version
360
+ version: '4.1'
361
+ type: :development
362
+ prerelease: false
363
+ version_requirements: !ruby/object:Gem::Requirement
364
+ requirements:
365
+ - - "~>"
366
+ - !ruby/object:Gem::Version
367
+ version: '4.1'
368
+ - !ruby/object:Gem::Dependency
369
+ name: net-tftp
370
+ requirement: !ruby/object:Gem::Requirement
371
+ requirements:
372
+ - - "~>"
373
+ - !ruby/object:Gem::Version
374
+ version: 0.1.0
349
375
  type: :development
350
376
  prerelease: false
351
377
  version_requirements: !ruby/object:Gem::Requirement
352
378
  requirements:
353
379
  - - "~>"
354
380
  - !ruby/object:Gem::Version
355
- version: 0.22.0
381
+ version: 0.1.0
356
382
  - !ruby/object:Gem::Dependency
357
383
  name: oxidized-web
358
384
  requirement: !ruby/object:Gem::Requirement
@@ -376,7 +402,7 @@ dependencies:
376
402
  version: 5.63.0
377
403
  - - "<"
378
404
  - !ruby/object:Gem::Version
379
- version: 5.100.0
405
+ version: '6'
380
406
  type: :development
381
407
  prerelease: false
382
408
  version_requirements: !ruby/object:Gem::Requirement
@@ -386,7 +412,7 @@ dependencies:
386
412
  version: 5.63.0
387
413
  - - "<"
388
414
  - !ruby/object:Gem::Version
389
- version: 5.100.0
415
+ version: '6'
390
416
  description: software to fetch configuration from network devices and store them
391
417
  email:
392
418
  - saku@ytti.fi
@@ -398,6 +424,7 @@ extensions: []
398
424
  extra_rdoc_files: []
399
425
  files:
400
426
  - ".codeclimate.yml"
427
+ - ".coderabbit.yaml"
401
428
  - ".github/ISSUE_TEMPLATE/bug_report.md"
402
429
  - ".github/ISSUE_TEMPLATE/feature_request.md"
403
430
  - ".github/ISSUE_TEMPLATE/support-request.md"
@@ -428,17 +455,20 @@ files:
428
455
  - docs/Inputs.md
429
456
  - docs/Issues.md
430
457
  - docs/Model-Notes/ADVA.md
431
- - docs/Model-Notes/APC_AOS.md
458
+ - docs/Model-Notes/APC.md
432
459
  - docs/Model-Notes/AireOS.md
433
460
  - docs/Model-Notes/ArbOS.md
434
461
  - docs/Model-Notes/Comware.md
435
462
  - docs/Model-Notes/Cumulus.md
436
463
  - docs/Model-Notes/EOS.md
437
464
  - docs/Model-Notes/EatonNetwork.md
465
+ - docs/Model-Notes/ExaLink.md
438
466
  - docs/Model-Notes/FSOS.md
439
- - docs/Model-Notes/FortiOS.md
467
+ - docs/Model-Notes/Fortinet.md
468
+ - docs/Model-Notes/GrandstreamHT8xx.md
440
469
  - docs/Model-Notes/HPEAruba.md
441
470
  - docs/Model-Notes/IOS.md
471
+ - docs/Model-Notes/IvantiConnectSecure.md
442
472
  - docs/Model-Notes/JunOS.md
443
473
  - docs/Model-Notes/LenovoNOS.md
444
474
  - docs/Model-Notes/LinksysSRW.md
@@ -452,6 +482,7 @@ files:
452
482
  - docs/Model-Notes/RouterOS.md
453
483
  - docs/Model-Notes/SikluMHTG.md
454
484
  - docs/Model-Notes/SmartAX-Huawei.md
485
+ - docs/Model-Notes/TrueNAS.md
455
486
  - docs/Model-Notes/VRP-Huawei.md
456
487
  - docs/Model-Notes/Viptela.md
457
488
  - docs/Model-Notes/XGS4600-Zyxel.md
@@ -465,6 +496,9 @@ files:
465
496
  - extra/auto-reload-config.runit
466
497
  - extra/device2yaml.rb
467
498
  - extra/gitdiff-msteams.sh
499
+ - extra/hooks/modelrules.rb
500
+ - extra/hooks/modelrulesadvanced.rb
501
+ - extra/hooks/srcipmap.rb
468
502
  - extra/nagios_check_failing_nodes.rb
469
503
  - extra/oxidized-report-git-commits
470
504
  - extra/oxidized-ubuntu.haproxy
@@ -483,6 +517,7 @@ files:
483
517
  - extra/update-ca-certificates.runit
484
518
  - lib/oxidized.rb
485
519
  - lib/oxidized/cli.rb
520
+ - lib/oxidized/cli/support.rb
486
521
  - lib/oxidized/config.rb
487
522
  - lib/oxidized/config/vars.rb
488
523
  - lib/oxidized/core.rb
@@ -495,12 +530,15 @@ files:
495
530
  - lib/oxidized/hook/slackdiff.rb
496
531
  - lib/oxidized/hook/xmppdiff.rb
497
532
  - lib/oxidized/input/cli.rb
533
+ - lib/oxidized/input/debugtext.rb
534
+ - lib/oxidized/input/debugyaml.rb
498
535
  - lib/oxidized/input/exec.rb
499
536
  - lib/oxidized/input/ftp.rb
500
537
  - lib/oxidized/input/http.rb
501
538
  - lib/oxidized/input/input.rb
502
539
  - lib/oxidized/input/scp.rb
503
540
  - lib/oxidized/input/ssh.rb
541
+ - lib/oxidized/input/sshbase.rb
504
542
  - lib/oxidized/input/telnet.rb
505
543
  - lib/oxidized/input/tftp.rb
506
544
  - lib/oxidized/job.rb
@@ -524,6 +562,7 @@ files:
524
562
  - lib/oxidized/model/aoscx.rb
525
563
  - lib/oxidized/model/aosw.rb
526
564
  - lib/oxidized/model/apc_aos.rb
565
+ - lib/oxidized/model/apcaos.rb
527
566
  - lib/oxidized/model/arbos.rb
528
567
  - lib/oxidized/model/aricentiss.rb
529
568
  - lib/oxidized/model/arubainstant.rb
@@ -557,10 +596,13 @@ files:
557
596
  - lib/oxidized/model/cumulus.rb
558
597
  - lib/oxidized/model/datacom.rb
559
598
  - lib/oxidized/model/dcnos.rb
599
+ - lib/oxidized/model/defacto.rb
560
600
  - lib/oxidized/model/dellx.rb
561
601
  - lib/oxidized/model/dlink.rb
562
602
  - lib/oxidized/model/dlinknextgen.rb
563
603
  - lib/oxidized/model/dnos.rb
604
+ - lib/oxidized/model/dslcommands.rb
605
+ - lib/oxidized/model/dslsetup.rb
564
606
  - lib/oxidized/model/eatonnetwork.rb
565
607
  - lib/oxidized/model/eciapollo.rb
566
608
  - lib/oxidized/model/edgecos.rb
@@ -572,6 +614,7 @@ files:
572
614
  - lib/oxidized/model/enterasys800.rb
573
615
  - lib/oxidized/model/enterprise_sonic.rb
574
616
  - lib/oxidized/model/eos.rb
617
+ - lib/oxidized/model/exalink.rb
575
618
  - lib/oxidized/model/f5os.rb
576
619
  - lib/oxidized/model/fabricos.rb
577
620
  - lib/oxidized/model/fastiron.rb
@@ -579,6 +622,7 @@ files:
579
622
  - lib/oxidized/model/firebrick.rb
580
623
  - lib/oxidized/model/firelinuxos.rb
581
624
  - lib/oxidized/model/firewareos.rb
625
+ - lib/oxidized/model/fortigate.rb
582
626
  - lib/oxidized/model/fortios.rb
583
627
  - lib/oxidized/model/fortiwlc.rb
584
628
  - lib/oxidized/model/fsos.rb
@@ -588,6 +632,7 @@ files:
588
632
  - lib/oxidized/model/garderos.rb
589
633
  - lib/oxidized/model/gcombnps.rb
590
634
  - lib/oxidized/model/grandstream.rb
635
+ - lib/oxidized/model/grandstreamht8xx.rb
591
636
  - lib/oxidized/model/h3c.rb
592
637
  - lib/oxidized/model/hatteras.rb
593
638
  - lib/oxidized/model/hios.rb
@@ -604,12 +649,14 @@ files:
604
649
  - lib/oxidized/model/ipos.rb
605
650
  - lib/oxidized/model/ironware.rb
606
651
  - lib/oxidized/model/isam.rb
652
+ - lib/oxidized/model/ivanti.rb
607
653
  - lib/oxidized/model/junos.rb
608
654
  - lib/oxidized/model/kornfeldos.rb
609
655
  - lib/oxidized/model/lancom.rb
610
656
  - lib/oxidized/model/lenovonos.rb
611
657
  - lib/oxidized/model/linksyssrw.rb
612
658
  - lib/oxidized/model/linuxgeneric.rb
659
+ - lib/oxidized/model/macros.rb
613
660
  - lib/oxidized/model/masteros.rb
614
661
  - lib/oxidized/model/mimosab11.rb
615
662
  - lib/oxidized/model/ml66.rb
@@ -660,6 +707,7 @@ files:
660
707
  - lib/oxidized/model/sixwind.rb
661
708
  - lib/oxidized/model/slxos.rb
662
709
  - lib/oxidized/model/smartax.rb
710
+ - lib/oxidized/model/smartbyte.rb
663
711
  - lib/oxidized/model/smartcs.rb
664
712
  - lib/oxidized/model/sonicos.rb
665
713
  - lib/oxidized/model/speedtouch.rb
@@ -725,7 +773,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
725
773
  requirements:
726
774
  - - ">="
727
775
  - !ruby/object:Gem::Version
728
- version: '3.1'
776
+ version: '3.0'
729
777
  required_rubygems_version: !ruby/object:Gem::Requirement
730
778
  requirements:
731
779
  - - ">="
@@ -1,65 +0,0 @@
1
- # APC AOS Configuration
2
-
3
- The configuration of APC Network Management Cards can be downloaded using FTP
4
- and SCP.
5
-
6
- To download with SCP, you need a
7
- [patch](https://github.com/net-ssh/net-scp/pull/71) to
8
- [Net::SCP](https://github.com/net-ssh/net-scp, which has been included
9
- upstream, but there is currently no new release of Net::SCP and its authors are
10
- unresponsive.
11
-
12
- To temporarily solve this,
13
- [@robertcheramy forked Net::SCP](https://github.com/robertcheramy/net-scp). You
14
- can build or download the gem there. This gem is already included in the
15
- oxidized container image (in the release coming after 0.31.0).
16
-
17
-
18
- ## Can I collect more information than just the configuration?
19
- APC OS does not have the ability to show the config.ini within an SSH-session.
20
- As oxidized can only get the configuration with one input type at a time, it is
21
- not possible to fetch config.ini via FTP/SCP and get the output of
22
- some commands via SSH at the same time. Feature request #3334 has been opened
23
- to support multiple inputs in oxidized.
24
-
25
- A ticket has been opened with APC support in order to enable "cat config.ini"
26
- within an SSH-session, but APC is not willing to support this.
27
-
28
-
29
- ## How do I activate FTP/SCP input?
30
- In order to download the configuration with FTP or SCP, you have to activate it
31
- as an input in the oxidized configuration. If you do not activate the input,
32
- oxidized will fail for the node with a
33
- [rather unspecific error](https://github.com/ytti/oxidized/issues/3346)
34
- (`WARN -- : /apc status fail, retry attempt 1`).
35
-
36
- The configuration can be done either globally or only for the model apc_aos.
37
-
38
- The global configuration would look like this. Note that Oxidized will try every
39
- input type in the given order until it succeeds, or it will report a failure.
40
- ```yaml
41
- input:
42
- default: ssh, ftp, scp
43
- ```
44
-
45
- Configuration for activating the FTP input for apc_aos only:
46
- ```yaml
47
- input:
48
- default: ssh
49
- models:
50
- apc_aos:
51
- input: ftp
52
- ```
53
-
54
- You can also set specific username and password for apc_aos only:
55
- ```yaml
56
- username: default-user
57
- password: default-password
58
- input:
59
- default: ssh
60
- models:
61
- apc_aos:
62
- username: apc-user
63
- password: apc-password
64
- input: ftp
65
- ```
@@ -1,44 +0,0 @@
1
- # FortiOS Configuration
2
-
3
- ## Create user oxidized with ED25519 public key
4
- You can use a user/password for retrieving the configuration or use a SSH public key:
5
-
6
- ```text
7
- config system admin
8
- edit oxidized
9
- set trusthost1 192.0.2.1 255.255.255.255
10
- set accprofile "super_admin_readonly"
11
- set ssh-public-key1 "ssh-ed25519 AAAAThisIsJustAnExampleKey_UseYourOxidizedPUBLICKEY oxidized@librenms"
12
- end
13
- ```
14
-
15
-
16
- ## Configuration changes / hiding passwords
17
- Fortigate reencrypts its passwords every time the configuration is shown.
18
- This produces a lot of config changes.
19
- If you don't want to have a new version every time the configuration is
20
- downloaded, you can hide all secrets. Beware that you won't have a full backup,
21
- as all passwords will be replaced with <configuration removed>
22
-
23
- ```yaml
24
- models:
25
- fortios:
26
- vars:
27
- remove_secret: true
28
- ```
29
-
30
- ## config vs. full config
31
- On fortios, you can get a configuration without default values (`show .`) or
32
- including all the default values (`show full-configuration`).
33
-
34
- The full configuration can be quite long and produce time-outs.
35
- Beginning with oxidized 0.30.1, the default is to get the short configuration.
36
-
37
- If you need the full configuration, you can activate it in oxidized config file:
38
- ```yaml
39
- models:
40
- fortios:
41
- vars:
42
- fullconfig: true
43
- ```
44
-