oxidized 0.29.1 → 0.30.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/codeql.yml +4 -4
- data/.github/workflows/publishdocker.yml +3 -0
- data/.github/workflows/ruby.yml +1 -1
- data/.github/workflows/stale.yml +4 -1
- data/.rubocop.yml +6 -3
- data/.rubocop_todo.yml +10 -93
- data/CHANGELOG.md +66 -4
- data/CONTRIBUTING.md +174 -0
- data/Dockerfile +12 -1
- data/README.md +18 -36
- data/bin/oxidized +2 -5
- data/docs/Hooks.md +37 -1
- data/docs/Model-Notes/APC_AOS.md +52 -0
- data/docs/Model-Notes/FSOS.md +11 -0
- data/docs/Model-Notes/FortiOS.md +28 -0
- data/docs/Model-Notes/README.md +1 -20
- data/docs/Model-Notes/XGS4600-Zyxel.md +5 -0
- data/docs/Ruby-API.md +1 -1
- data/docs/Sources.md +13 -0
- data/docs/Supported-OS-Types.md +178 -270
- data/docs/Troubleshooting.md +16 -0
- data/examples/podman-compose/Makefile +61 -0
- data/examples/podman-compose/README.md +58 -0
- data/examples/podman-compose/docker-compose.yml +21 -0
- data/examples/podman-compose/model-simulation/Dockerfile-model +13 -0
- data/examples/podman-compose/model-simulation/asternos.sh +34 -0
- data/examples/podman-compose/oxidized-config/.gitignore +8 -0
- data/examples/podman-compose/oxidized-config/config +46 -0
- data/examples/podman-compose/oxidized-config/router.db +1 -0
- data/examples/podman-compose/oxidized-ssh/README.md +14 -0
- data/extra/rest_client.rb +2 -2
- data/extra/syslog.rb +2 -2
- data/lib/oxidized/cli.rb +6 -4
- data/lib/oxidized/config.rb +17 -14
- data/lib/oxidized/core.rb +22 -3
- data/lib/oxidized/hook.rb +3 -3
- data/lib/oxidized/input/exec.rb +1 -1
- data/lib/oxidized/input/ftp.rb +2 -2
- data/lib/oxidized/input/http.rb +32 -8
- data/lib/oxidized/input/input.rb +1 -1
- data/lib/oxidized/input/scp.rb +52 -0
- data/lib/oxidized/input/ssh.rb +10 -7
- data/lib/oxidized/input/telnet.rb +3 -2
- data/lib/oxidized/input/tftp.rb +1 -1
- data/lib/oxidized/jobs.rb +11 -1
- data/lib/oxidized/manager.rb +6 -6
- data/lib/oxidized/model/acos.rb +1 -1
- data/lib/oxidized/model/addpack.rb +26 -0
- data/lib/oxidized/model/adtran.rb +5 -1
- data/lib/oxidized/model/adva.rb +2 -2
- data/lib/oxidized/model/aoscx.rb +2 -1
- data/lib/oxidized/model/apc_aos.rb +2 -1
- data/lib/oxidized/model/aricentiss.rb +7 -0
- data/lib/oxidized/model/asternos.rb +22 -0
- data/lib/oxidized/model/asyncos.rb +2 -2
- data/lib/oxidized/model/awplus.rb +2 -2
- data/lib/oxidized/model/bdcom.rb +1 -0
- data/lib/oxidized/model/c4cmts.rb +1 -2
- data/lib/oxidized/model/ciscosma.rb +1 -1
- data/lib/oxidized/model/ciscosmb.rb +6 -1
- data/lib/oxidized/model/comware.rb +2 -2
- data/lib/oxidized/model/cumulus.rb +1 -1
- data/lib/oxidized/model/dellx.rb +1 -1
- data/lib/oxidized/model/dlink.rb +4 -2
- data/lib/oxidized/model/dlinknextgen.rb +51 -0
- data/lib/oxidized/model/dnos.rb +3 -0
- data/lib/oxidized/model/edgecos.rb +1 -1
- data/lib/oxidized/model/eltex.rb +2 -0
- data/lib/oxidized/model/enterasys800.rb +1 -1
- data/lib/oxidized/model/eos.rb +1 -1
- data/lib/oxidized/model/firebrick.rb +2 -2
- data/lib/oxidized/model/firewareos.rb +1 -1
- data/lib/oxidized/model/fortios.rb +9 -2
- data/lib/oxidized/model/fsos.rb +44 -0
- data/lib/oxidized/model/ios.rb +1 -1
- data/lib/oxidized/model/iosxr.rb +2 -2
- data/lib/oxidized/model/junos.rb +3 -2
- data/lib/oxidized/model/mimosab11.rb +34 -0
- data/lib/oxidized/model/ml66.rb +33 -0
- data/lib/oxidized/model/model.rb +3 -3
- data/lib/oxidized/model/netgear.rb +1 -1
- data/lib/oxidized/model/netscaler.rb +1 -1
- data/lib/oxidized/model/nxos.rb +4 -3
- data/lib/oxidized/model/ocnos.rb +42 -0
- data/lib/oxidized/model/onefinity.rb +18 -0
- data/lib/oxidized/model/openbsd.rb +1 -1
- data/lib/oxidized/model/opengear.rb +36 -1
- data/lib/oxidized/model/opnsense.rb +1 -1
- data/lib/oxidized/model/panos.rb +2 -0
- data/lib/oxidized/model/pfsense.rb +1 -0
- data/lib/oxidized/model/procurve.rb +3 -1
- data/lib/oxidized/model/rgos.rb +33 -0
- data/lib/oxidized/model/routeros.rb +10 -8
- data/lib/oxidized/model/slxos.rb +2 -2
- data/lib/oxidized/model/sonicos.rb +18 -17
- data/lib/oxidized/model/sros.rb +3 -3
- data/lib/oxidized/model/tplink.rb +4 -3
- data/lib/oxidized/model/truenas.rb +2 -1
- data/lib/oxidized/model/vrp.rb +3 -1
- data/lib/oxidized/model/vyatta.rb +6 -0
- data/lib/oxidized/model/zynos.rb +67 -3
- data/lib/oxidized/model/zynosadsl.rb +14 -0
- data/lib/oxidized/model/zynosgs.rb +2 -0
- data/lib/oxidized/model/zynosmgs.rb +32 -0
- data/lib/oxidized/node.rb +7 -7
- data/lib/oxidized/nodes.rb +17 -12
- data/lib/oxidized/output/file.rb +1 -1
- data/lib/oxidized/output/git.rb +5 -3
- data/lib/oxidized/output/gitcrypt.rb +4 -3
- data/lib/oxidized/signals.rb +44 -0
- data/lib/oxidized/source/csv.rb +1 -1
- data/lib/oxidized/source/http.rb +26 -5
- data/lib/oxidized/source/source.rb +2 -2
- data/lib/oxidized/source/sql.rb +3 -3
- data/lib/oxidized/version.rb +2 -2
- data/lib/oxidized/worker.rb +8 -1
- data/lib/oxidized.rb +3 -2
- data/lib/refinements.rb +1 -1
- data/oxidized.gemspec +6 -3
- metadata +77 -9
data/README.md
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
Oxidized is a network device configuration backup tool. It's a RANCID replacement!
|
11
11
|
|
12
|
-
|
12
|
+
It is light and extensible and supports over 130 operating system types.
|
13
13
|
|
14
14
|
Feature highlights:
|
15
15
|
|
@@ -17,13 +17,13 @@ Feature highlights:
|
|
17
17
|
* Restful API to a move node immediately to head-of-queue (GET/POST /node/next/[NODE])
|
18
18
|
* Syslog udp+file example to catch config change events (IOS/JunOS) and trigger a config fetch
|
19
19
|
* Will signal which IOS/JunOS user made the change, can then be used by output modules (via POST)
|
20
|
-
* The `git` output module uses this info - 'git blame' will show who changed each line
|
20
|
+
* The `git` output module uses this info - 'git blame' will show who changed each line
|
21
21
|
* Restful API to reload list of nodes (GET /reload)
|
22
22
|
* Restful API to fetch configurations (/node/fetch/[NODE] or /node/fetch/group/[NODE])
|
23
23
|
* Restful API to show list of nodes (GET /nodes)
|
24
24
|
* Restful API to show list of version for a node (/node/version[NODE]) and diffs
|
25
25
|
|
26
|
-
Check out the [Oxidized TREX 2014 presentation](http://youtu.be/kBQ_CTUuqeU
|
26
|
+
Check out the [Oxidized TREX 2014 presentation](http://youtu.be/kBQ_CTUuqeU?t=3h) video on YouTube!
|
27
27
|
|
28
28
|
> :warning: [Maintainer Wanted!](#help-needed) :warning:
|
29
29
|
>
|
@@ -38,6 +38,7 @@ Check out the [Oxidized TREX 2014 presentation](http://youtu.be/kBQ_CTUuqeU#t=3h
|
|
38
38
|
* [FreeBSD](#freebsd)
|
39
39
|
* [Build from Git](#build-from-git)
|
40
40
|
* [Docker](#running-with-docker)
|
41
|
+
* [Podman-Compose](#running-with-podman-compose)
|
41
42
|
* [Installing Ruby 2.3 using RVM](#installing-ruby-23-using-rvm)
|
42
43
|
3. [Initial Configuration](#configuration)
|
43
44
|
4. [Configuration](docs/Configuration.md)
|
@@ -67,7 +68,8 @@ Check out the [Oxidized TREX 2014 presentation](http://youtu.be/kBQ_CTUuqeU#t=3h
|
|
67
68
|
* [Hook: ciscosparkdiff](docs/Hooks.md#hook-type-ciscosparkdiff)
|
68
69
|
5. [Creating and Extending Models](docs/Creating-Models.md)
|
69
70
|
6. [Help](#help)
|
70
|
-
7. [
|
71
|
+
7. [Help Needed](#help-needed)
|
72
|
+
8. [Ruby API](docs/Ruby-API.md#ruby-api)
|
71
73
|
* [Input](docs/Ruby-API.md#input)
|
72
74
|
* [Output](docs/Ruby-API.md#output)
|
73
75
|
* [Source](docs/Ruby-API.md#source)
|
@@ -87,7 +89,7 @@ add-apt-repository universe
|
|
87
89
|
Install the dependencies:
|
88
90
|
|
89
91
|
```shell
|
90
|
-
apt-get install ruby ruby-dev libsqlite3-dev libssl-dev pkg-config cmake libssh2-1-dev libicu-dev zlib1g-dev g++
|
92
|
+
apt-get install ruby ruby-dev libsqlite3-dev libssl-dev pkg-config cmake libssh2-1-dev libicu-dev zlib1g-dev g++ libyaml-dev
|
91
93
|
```
|
92
94
|
|
93
95
|
Finally, install the gems:
|
@@ -171,7 +173,7 @@ rake install
|
|
171
173
|
|
172
174
|
### Running with Docker
|
173
175
|
|
174
|
-
Currently, Docker Hub automatically builds the master branch as [oxidized/oxidized](https://hub.docker.com/r/oxidized/oxidized/), you can make use of this container or build your own.
|
176
|
+
Currently, Docker Hub automatically builds the master branch for linux/amd64 and linux/arm64 platforms as [oxidized/oxidized](https://hub.docker.com/r/oxidized/oxidized/), you can make use of this container or build your own.
|
175
177
|
|
176
178
|
To build your own, clone git repo:
|
177
179
|
|
@@ -255,6 +257,10 @@ If you need to use an internal CA (e.g. to connect to an private github instance
|
|
255
257
|
docker run -v /etc/oxidized:/home/oxidized/.config/oxidized -v /path/to/MY-CA.crt:/usr/local/share/ca-certificates/MY-CA.crt -p 8888:8888/tcp -e UPDATE_CA_CERTIFICATES=true -t oxidized/oxidized:latest
|
256
258
|
```
|
257
259
|
|
260
|
+
### Running with podman-compose
|
261
|
+
Under [examples/podman-compose](examples/podman-compose), you will find a complete
|
262
|
+
example of how to integrate the container into a docker-compose.yml file.
|
263
|
+
|
258
264
|
### Installing Ruby 2.3 using RVM
|
259
265
|
|
260
266
|
Install Ruby 2.3 build dependencies
|
@@ -391,38 +397,14 @@ If you need help with Oxidized then we have a few methods you can use to get in
|
|
391
397
|
|
392
398
|
## Help Needed
|
393
399
|
|
394
|
-
As things stand right now, `oxidized` is maintained by
|
395
|
-
|
396
|
-
helped further the software, however contributions are not the same as ongoing
|
397
|
-
owner- and maintainer-ship. It appears that many companies use the software to
|
398
|
-
manage their network infrastructure, this is great news! But without additional
|
399
|
-
help to maintain the software and put out releases, the future of oxidized
|
400
|
-
might be less bright. The current pace of development and the much needed
|
401
|
-
refactoring simply are not sustainable if they are to be driven by a single
|
402
|
-
person.
|
403
|
-
|
404
|
-
## Maintainers
|
405
|
-
|
406
|
-
If you would like to be a maintainer for Oxidized then please read through the below and see if it's something you would like to help with. It's not a requirement that you can tick all the boxes below but it helps :)
|
407
|
-
|
408
|
-
* Triage on issues, review pull requests and help answer any questions from users.
|
409
|
-
* Above average knowledge of the Ruby programming language.
|
410
|
-
* Professional experience with both oxidized and some other config backup tool (like rancid).
|
411
|
-
* Ability to keep a cool head, and enjoy interaction with end users! :)
|
412
|
-
* A desire and passion to help drive `oxidized` towards its `1.x.x` stage of life
|
413
|
-
* Help refactor the code
|
414
|
-
* Rework the core infrastructure
|
415
|
-
* Permission from your employer to contribute to open source projects
|
416
|
-
|
417
|
-
## YES, I WANT TO HELP
|
418
|
-
|
419
|
-
Awesome! Simply send an e-mail to Saku Ytti at <saku@ytti.fi>.
|
400
|
+
As things stand right now, `oxidized` is maintained by very few people.
|
401
|
+
We would appreciate more individuals and companies getting involved in Oxidized.
|
420
402
|
|
421
|
-
|
403
|
+
Beyond software development, documentation or maintenance of Oxidized, you could
|
404
|
+
become a model maintainer, which can be done with little burden and would be a
|
405
|
+
big help to the community.
|
422
406
|
|
423
|
-
|
424
|
-
post](http://brson.github.io/2017/04/05/minimally-nice-maintainer) on what it
|
425
|
-
means to be a maintainer.
|
407
|
+
Interested? Have a look at [CONTRIBUTING.md](CONTRIBUTING.md).
|
426
408
|
|
427
409
|
## License and Copyright
|
428
410
|
|
data/bin/oxidized
CHANGED
@@ -1,13 +1,10 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
# FIX ME, killing oxidized needs -9
|
4
|
-
trap("INT") { exit } # sinatra will otherwise steal this from us
|
5
|
-
|
6
3
|
begin
|
7
4
|
require_relative '../lib/oxidized/cli'
|
8
5
|
Oxidized::CLI.new.run
|
9
|
-
rescue StandardError =>
|
10
|
-
warn
|
6
|
+
rescue StandardError => e
|
7
|
+
warn e
|
11
8
|
debug = Oxidized.config.debug rescue true
|
12
9
|
raise if debug
|
13
10
|
|
data/docs/Hooks.md
CHANGED
@@ -46,7 +46,7 @@ Exec hook recognizes the following configuration keys:
|
|
46
46
|
* `async`: Execute the command in an asynchronous fashion. The main thread by default will wait for the hook command execution to complete. Set this to `true` for long running commands so node configuration pulls are not blocked. Default: `false`
|
47
47
|
* `cmd`: command to run.
|
48
48
|
|
49
|
-
###
|
49
|
+
### Exec Hook configuration example
|
50
50
|
|
51
51
|
```yaml
|
52
52
|
hooks:
|
@@ -62,6 +62,42 @@ hooks:
|
|
62
62
|
timeout: 120
|
63
63
|
```
|
64
64
|
|
65
|
+
### Exec Hook configuration example to send mail
|
66
|
+
|
67
|
+
To send mail you need the package `msmtp` (It is pre-installed with the docker container)
|
68
|
+
|
69
|
+
You then need to update the `~/.msmtprc` file to contain your SMTP credentials like this:
|
70
|
+
|
71
|
+
*Note: In the docker container the file is in /home/oxidized/.config/oxidized/.msmtprc so you can create the file if it doesn't exist in your oxidized config folder.*
|
72
|
+
|
73
|
+
```cfg
|
74
|
+
# Default settings
|
75
|
+
defaults
|
76
|
+
auth on
|
77
|
+
tls on
|
78
|
+
# Outlook SMTP
|
79
|
+
account mainaccount
|
80
|
+
host smtp.office365.com
|
81
|
+
port 587
|
82
|
+
from user@domain.com
|
83
|
+
user user@domain.com
|
84
|
+
password edit-password
|
85
|
+
|
86
|
+
account default : mainaccount
|
87
|
+
```
|
88
|
+
|
89
|
+
For non docker users this file should have the 600 permission, using: `chmod 600 .msmtprc` and the owner of the file should be the owner of oxidized `chown oxidized:oxidized .msmtprc`
|
90
|
+
|
91
|
+
Then, you can configure Hooks to send mail like this:
|
92
|
+
|
93
|
+
```yaml
|
94
|
+
hooks:
|
95
|
+
send_mail_hook:
|
96
|
+
type: exec
|
97
|
+
events: [node_fail]
|
98
|
+
cmd: '/usr/bin/echo -e "Subject: [Oxidized] Error on node $OX_NODE_NAME \n\nThe device $OX_NODE_NAME has not been backed-up, reason: \n\n$OX_EVENT: $OX_ERR_REASON" | msmtp destination@domain.com'
|
99
|
+
```
|
100
|
+
|
65
101
|
## Hook type: githubrepo
|
66
102
|
|
67
103
|
Note: You must not use the same name as any local repo configured under output. Make sure your 'git' output has a unique name that does not match your remote_repo.
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# APC AOS Configuration
|
2
|
+
|
3
|
+
Currently, the configuration of APC Network Management Cards can be downloaded with FTP only.
|
4
|
+
|
5
|
+
A download of the configuration with SCP is [work in progress](https://github.com/ytti/oxidized/issues/1802).
|
6
|
+
As the APC has an unusual behavior (the connection is closed without an exit-status), this has to be
|
7
|
+
[fixed](https://github.com/net-ssh/net-scp/pull/71) upstream in [Net::SCP](https://github.com/net-ssh/net-scp).
|
8
|
+
As soon as there is a release of Net::SCP supporting the behavior of APC OS, we will activate SCP in oxidized.
|
9
|
+
|
10
|
+
## Can I collect more information than just the configuration?
|
11
|
+
APC OS does not have the ability to show the config.ini within an SSH-session. As oxidized can only get the
|
12
|
+
configuration with one input type at a time, it is not possible to fetch config.ini via FTP/SCP and get the output of
|
13
|
+
some commands via SSH at the same time.
|
14
|
+
|
15
|
+
A ticket has been opened with APC support in order to support "cat config.ini" within an SSH-session, but
|
16
|
+
the chances it will be supported at some time are not very good, and older versions will still not support it.
|
17
|
+
|
18
|
+
## How do I activate FTP input?
|
19
|
+
In order to download the configuration with FTP (and in the future with SCP), you have to activate it as an
|
20
|
+
input in the oxidized configuration. If you do not activate the input, oxidized will fail for the node with
|
21
|
+
a rather unspecific error (`WARN -- : /apc status fail, retry attempt 1`).
|
22
|
+
|
23
|
+
The configuration can be done either globally or only for the model apc_aos.
|
24
|
+
|
25
|
+
The global configuration would look like this. Note that Oxidized will try every input type in the given order
|
26
|
+
until it succeeds, or it will report a failure.
|
27
|
+
```yaml
|
28
|
+
input:
|
29
|
+
default: ssh, ftp, scp
|
30
|
+
```
|
31
|
+
|
32
|
+
Configuration for activating the FTP input for apc_aos only:
|
33
|
+
```yaml
|
34
|
+
input:
|
35
|
+
default: ssh
|
36
|
+
models:
|
37
|
+
apc_aos:
|
38
|
+
input: ftp
|
39
|
+
```
|
40
|
+
|
41
|
+
You can also set specific username and password for apc_aos only:
|
42
|
+
```yaml
|
43
|
+
username: default-user
|
44
|
+
password: default-password
|
45
|
+
input:
|
46
|
+
default: ssh
|
47
|
+
models:
|
48
|
+
apc_aos:
|
49
|
+
username: apc-user
|
50
|
+
password: apc-password
|
51
|
+
input: ftp
|
52
|
+
```
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# Fiberstore (fs.com) FSOS notes
|
2
|
+
|
3
|
+
This has been tested against the following models and OS versions
|
4
|
+
|
5
|
+
|Model |OS Version and Build |
|
6
|
+
|--------------------|------------------------------|
|
7
|
+
|S3400-48T4SP |Version 2.0.2J Build 81736 |
|
8
|
+
|S3400-48T4SP |Version 2.0.2J Build 95262 |
|
9
|
+
|S3400-48T6SP |Version 2.2.0F Build 109661 |
|
10
|
+
|
11
|
+
Back to [Model-Notes](README.md)
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# FortiOS Configuration
|
2
|
+
|
3
|
+
Create user oxidized with ED25519 public key
|
4
|
+
|
5
|
+
```text
|
6
|
+
config system admin
|
7
|
+
edit oxidized
|
8
|
+
set trusthost1 192.0.2.1 255.255.255.255
|
9
|
+
set accprofile "super_admin_readonly"
|
10
|
+
set ssh-public-key1 "ssh-ed25519 AAAAThisIsJustAnExmapleKey_UseYourOxidizedPUBLICKEY oxidized@librenms"
|
11
|
+
end
|
12
|
+
```
|
13
|
+
|
14
|
+
|
15
|
+
Fortigate procdues a lot of config changes. I recommend filtering using
|
16
|
+
|
17
|
+
```yaml
|
18
|
+
models:
|
19
|
+
fortios:
|
20
|
+
vars:
|
21
|
+
remove_secret: true
|
22
|
+
```
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
Oxidized can now retrieve your configuration!
|
27
|
+
|
28
|
+
Back to [Model-Notes](README.md)
|
data/docs/Model-Notes/README.md
CHANGED
@@ -2,25 +2,6 @@
|
|
2
2
|
|
3
3
|
This directory contains implementation notes and caveats to assist you in your oxidized deployment.
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
Vendor | Model |Updated
|
8
|
-
----------------|-----------------|----------------
|
9
|
-
3COM|[Comware](Comware.md)|15 Feb 2018
|
10
|
-
AireOS|[AireOS](AireOS.md)|29 Nov 2017
|
11
|
-
Arbor Networks|[ArbOS](ArbOS.md)|27 Feb 2018
|
12
|
-
Arista|[EOS](EOS.md)|05 Feb 2018
|
13
|
-
Cumulus|[Cumulus](Cumulus.md)|11 Jun 2018
|
14
|
-
Huawei|[VRP](VRP-Huawei.md)|17 Nov 2017
|
15
|
-
Huawei|[SmartAX series](SmartAX-Huawei.md)|21 Jan 2019
|
16
|
-
Cisco IOS|[IOS](IOS.md)|29 Mar 2019
|
17
|
-
Juniper|[MX/QFX/EX/SRX/J Series](JunOS.md)|18 Jan 2018
|
18
|
-
Netgear|[Netgear](Netgear.md)|11 Apr 2018
|
19
|
-
Nokia|[Nokia ISAM](Nokia.md)|22 Aug 2018
|
20
|
-
Dell/EMC|[Dell EMC Networking OS10](OS10.md)|07 Dec 2021
|
21
|
-
Viptela|[Viptela](Viptela.md)|1 Jul 2018
|
22
|
-
Zyxel|[XGS4600 Series](XGS4600-Zyxel.md)|1 Feb 2018
|
23
|
-
Linux|[LinuxGeneric](LinuxGeneric.md)|10 Jun 2019
|
24
|
-
Lenovo|[Lenovo Network OS](LenovoNOS.md)|5 Apr 2022
|
5
|
+
The model notes are linked from the [list of supported OS types](/docs/Supported-OS-Types.md).
|
25
6
|
|
26
7
|
If you discover additional caveats or problems please make sure to consult the [GitHub issues for oxidized](https://github.com/ytti/oxidized/issues) known issues.
|
@@ -5,6 +5,11 @@
|
|
5
5
|
FTP access is only possible as admin, other users can login but cannot pull the files.
|
6
6
|
For the XGS4600 series the config file is _config_ and not _config-0_
|
7
7
|
|
8
|
+
To enable FTP backup, uncomment the following line in _oxidized/lib/oxidized/model/zynos.rb_
|
9
|
+
```text
|
10
|
+
# cmd 'config-0'
|
11
|
+
```
|
12
|
+
|
8
13
|
The following line in _oxidized/lib/oxidized/model/zynos.rb_ will need changing
|
9
14
|
|
10
15
|
```text
|
data/docs/Ruby-API.md
CHANGED
data/docs/Sources.md
CHANGED
@@ -187,3 +187,16 @@ source:
|
|
187
187
|
scheme: https
|
188
188
|
secure: false
|
189
189
|
```
|
190
|
+
|
191
|
+
HTTP source also supports pagination. Two settings must be enabled. (`pagination` as a bool and `pagination_key_name` as a string)
|
192
|
+
The `pagination_key_name` setting is the key name that an api returns to find the url of the next page.
|
193
|
+
|
194
|
+
**Disclaimer**: currently only tested with netbox as the source
|
195
|
+
|
196
|
+
```yaml
|
197
|
+
source:
|
198
|
+
default: http
|
199
|
+
http:
|
200
|
+
pagination: true
|
201
|
+
pagination_key_name: 'next'
|
202
|
+
```
|