oxidized 0.29.1 → 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.
- checksums.yaml +4 -4
- data/.coderabbit.yaml +21 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +45 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
- data/.github/ISSUE_TEMPLATE/support-request.md +39 -0
- data/.github/workflows/codeql.yml +4 -4
- data/.github/workflows/publishdocker.yml +108 -13
- data/.github/workflows/ruby.yml +3 -12
- data/.github/workflows/stale.yml +6 -1
- data/.gitignore +2 -0
- data/.rubocop.yml +69 -13
- data/.rubocop_todo.yml +13 -143
- data/CHANGELOG.md +431 -4
- data/CONTRIBUTING.md +189 -0
- data/Dockerfile +89 -34
- data/README.md +59 -188
- data/Rakefile +58 -12
- data/bin/oxidized +2 -5
- data/docs/Configuration.md +382 -149
- data/docs/Creating-Models.md +262 -10
- data/docs/DeviceSimulation.md +196 -0
- data/docs/Docker.md +246 -0
- data/docs/Hooks.md +146 -51
- data/docs/Inputs.md +237 -0
- data/docs/Issues.md +123 -0
- data/docs/Model-Notes/APC.md +72 -0
- data/docs/Model-Notes/Cumulus.md +5 -0
- data/docs/Model-Notes/EatonNetwork.md +18 -0
- data/docs/Model-Notes/ExaLink.md +43 -0
- data/docs/Model-Notes/FSOS.md +17 -0
- data/docs/Model-Notes/Fortinet.md +75 -0
- data/docs/Model-Notes/GrandstreamHT8xx.md +8 -0
- data/docs/Model-Notes/HPEAruba.md +32 -0
- data/docs/Model-Notes/IvantiConnectSecure.md +59 -0
- data/docs/Model-Notes/OS6.md +10 -0
- data/docs/Model-Notes/README.md +1 -20
- data/docs/Model-Notes/RouterOS.md +28 -0
- data/docs/Model-Notes/SikluMHTG.md +7 -0
- data/docs/Model-Notes/TrueNAS.md +23 -0
- data/docs/Model-Notes/XGS4600-Zyxel.md +5 -0
- data/docs/ModelUnitTests.md +219 -0
- data/docs/Outputs.md +102 -5
- data/docs/Release.md +102 -0
- data/docs/Ruby-API.md +135 -2
- data/docs/Sources.md +34 -0
- data/docs/Supported-OS-Types.md +207 -270
- data/docs/Troubleshooting.md +43 -1
- data/extra/device2yaml.rb +259 -0
- data/extra/gitdiff-msteams.sh +32 -5
- data/extra/hooks/modelrules.rb +55 -0
- data/extra/hooks/modelrulesadvanced.rb +167 -0
- data/extra/hooks/srcipmap.rb +54 -0
- data/extra/nagios_check_failing_nodes.rb +1 -1
- data/extra/oxidized.runit +1 -1
- data/extra/rest_client.rb +5 -4
- data/extra/syslog.rb +11 -6
- data/lib/oxidized/cli/support.rb +152 -0
- data/lib/oxidized/cli.rb +21 -6
- data/lib/oxidized/config/vars.rb +33 -14
- data/lib/oxidized/config.rb +28 -17
- data/lib/oxidized/core.rb +50 -8
- data/lib/oxidized/hook/ciscosparkdiff.rb +11 -9
- data/lib/oxidized/hook/exec.rb +5 -4
- data/lib/oxidized/hook/githubrepo.rb +55 -18
- data/lib/oxidized/hook/noophook.rb +2 -2
- data/lib/oxidized/hook/slackdiff.rb +50 -14
- data/lib/oxidized/hook/xmppdiff.rb +9 -9
- data/lib/oxidized/hook.rb +68 -16
- data/lib/oxidized/input/cli.rb +8 -3
- data/lib/oxidized/input/debugtext.rb +40 -0
- data/lib/oxidized/input/debugyaml.rb +82 -0
- data/lib/oxidized/input/exec.rb +2 -11
- data/lib/oxidized/input/ftp.rb +2 -19
- data/lib/oxidized/input/http.rb +67 -17
- data/lib/oxidized/input/input.rb +35 -14
- data/lib/oxidized/input/scp.rb +27 -0
- data/lib/oxidized/input/ssh.rb +59 -83
- data/lib/oxidized/input/sshbase.rb +102 -0
- data/lib/oxidized/input/telnet.rb +20 -19
- data/lib/oxidized/input/tftp.rb +8 -8
- data/lib/oxidized/job.rb +18 -7
- data/lib/oxidized/jobs.rb +11 -1
- data/lib/oxidized/logger.rb +51 -0
- data/lib/oxidized/manager.rb +18 -17
- data/lib/oxidized/model/acos.rb +2 -1
- data/lib/oxidized/model/addpack.rb +26 -0
- data/lib/oxidized/model/adtran.rb +5 -1
- data/lib/oxidized/model/adva.rb +3 -3
- data/lib/oxidized/model/airfiber.rb +1 -1
- data/lib/oxidized/model/aos7.rb +11 -0
- data/lib/oxidized/model/aoscx.rb +37 -29
- data/lib/oxidized/model/aosw.rb +39 -29
- data/lib/oxidized/model/apc_aos.rb +7 -2
- data/lib/oxidized/model/apcaos.rb +39 -0
- data/lib/oxidized/model/aricentiss.rb +9 -2
- data/lib/oxidized/model/arubainstant.rb +93 -0
- data/lib/oxidized/model/asa.rb +11 -10
- data/lib/oxidized/model/asternos.rb +22 -0
- data/lib/oxidized/model/asyncos.rb +3 -3
- data/lib/oxidized/model/audiocodes.rb +2 -2
- data/lib/oxidized/model/awplus.rb +15 -12
- data/lib/oxidized/model/axos.rb +1 -1
- 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/cnos.rb +13 -10
- data/lib/oxidized/model/comtrol.rb +1 -1
- data/lib/oxidized/model/comware.rb +5 -3
- data/lib/oxidized/model/cumulus.rb +14 -2
- data/lib/oxidized/model/defacto.rb +26 -0
- data/lib/oxidized/model/dellx.rb +1 -1
- data/lib/oxidized/model/dlink.rb +5 -2
- data/lib/oxidized/model/dlinknextgen.rb +55 -0
- data/lib/oxidized/model/dnos.rb +3 -0
- data/lib/oxidized/model/dslcommands.rb +93 -0
- data/lib/oxidized/model/dslsetup.rb +102 -0
- data/lib/oxidized/model/eatonnetwork.rb +70 -0
- data/lib/oxidized/model/edgecos.rb +3 -1
- data/lib/oxidized/model/edgeos.rb +7 -6
- data/lib/oxidized/model/edgeswitch.rb +3 -1
- data/lib/oxidized/model/efos.rb +41 -0
- data/lib/oxidized/model/eltex.rb +4 -2
- data/lib/oxidized/model/enterasys800.rb +2 -2
- data/lib/oxidized/model/enterprise_sonic.rb +46 -0
- data/lib/oxidized/model/eos.rb +3 -1
- data/lib/oxidized/model/exalink.rb +36 -0
- data/lib/oxidized/model/f5os.rb +17 -0
- data/lib/oxidized/model/fabricos.rb +2 -2
- data/lib/oxidized/model/fastiron.rb +5 -3
- data/lib/oxidized/model/firebrick.rb +2 -2
- data/lib/oxidized/model/firelinuxos.rb +13 -6
- data/lib/oxidized/model/firewareos.rb +10 -1
- data/lib/oxidized/model/fortigate.rb +160 -0
- data/lib/oxidized/model/fortios.rb +38 -48
- data/lib/oxidized/model/fsos.rb +46 -0
- data/lib/oxidized/model/gaiaos.rb +4 -4
- data/lib/oxidized/model/garderos.rb +38 -0
- data/lib/oxidized/model/grandstreamht8xx.rb +19 -0
- data/lib/oxidized/model/h3c.rb +1 -1
- data/lib/oxidized/model/ibos.rb +1 -0
- data/lib/oxidized/model/ingate.rb +47 -0
- data/lib/oxidized/model/ios.rb +57 -30
- data/lib/oxidized/model/iosxr.rb +2 -2
- data/lib/oxidized/model/ironware.rb +7 -5
- data/lib/oxidized/model/ivanti.rb +54 -0
- data/lib/oxidized/model/junos.rb +12 -5
- data/lib/oxidized/model/kornfeldos.rb +33 -0
- data/lib/oxidized/model/lenovonos.rb +2 -0
- data/lib/oxidized/model/linksyssrw.rb +3 -3
- data/lib/oxidized/model/linuxgeneric.rb +4 -2
- data/lib/oxidized/model/macros.rb +60 -0
- data/lib/oxidized/model/mimosab11.rb +34 -0
- data/lib/oxidized/model/ml66.rb +33 -0
- data/lib/oxidized/model/mlnxos.rb +18 -14
- data/lib/oxidized/model/model.rb +98 -103
- data/lib/oxidized/model/mtrlrfs.rb +1 -0
- data/lib/oxidized/model/ndms.rb +6 -0
- data/lib/oxidized/model/netgear.rb +14 -3
- data/lib/oxidized/model/netonix.rb +1 -1
- data/lib/oxidized/model/netscaler.rb +1 -1
- data/lib/oxidized/model/nodegrid.rb +1 -1
- data/lib/oxidized/model/nsxdfw.rb +31 -0
- data/lib/oxidized/model/nsxfirewall.rb +2 -1
- data/lib/oxidized/model/nxos.rb +20 -15
- 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/openwrt.rb +6 -6
- data/lib/oxidized/model/opnsense.rb +9 -1
- data/lib/oxidized/model/os6.rb +48 -0
- data/lib/oxidized/model/outputs.rb +5 -0
- data/lib/oxidized/model/panos.rb +2 -0
- data/lib/oxidized/model/perle.rb +41 -0
- data/lib/oxidized/model/pfsense.rb +9 -0
- data/lib/oxidized/model/powerconnect.rb +32 -11
- data/lib/oxidized/model/procurve.rb +6 -2
- data/lib/oxidized/model/qtech.rb +3 -1
- data/lib/oxidized/model/quantaos.rb +8 -6
- data/lib/oxidized/model/rgos.rb +33 -0
- data/lib/oxidized/model/riverbed.rb +104 -0
- data/lib/oxidized/model/routeros.rb +18 -11
- data/lib/oxidized/model/saos.rb +18 -1
- data/lib/oxidized/model/saos10.rb +38 -0
- data/lib/oxidized/model/siklu.rb +1 -1
- data/lib/oxidized/model/siklumhtg.rb +22 -0
- data/lib/oxidized/model/sixwind.rb +28 -0
- data/lib/oxidized/model/slxos.rb +3 -3
- data/lib/oxidized/model/smartbyte.rb +48 -0
- data/lib/oxidized/model/sonicos.rb +27 -20
- data/lib/oxidized/model/speedtouch.rb +1 -1
- data/lib/oxidized/model/sros.rb +3 -3
- data/lib/oxidized/model/srosmd.rb +1 -1
- data/lib/oxidized/model/supermicro.rb +1 -1
- data/lib/oxidized/model/telco.rb +1 -1
- data/lib/oxidized/model/tmos.rb +1 -0
- data/lib/oxidized/model/tnsr.rb +57 -0
- data/lib/oxidized/model/tplink.rb +5 -5
- data/lib/oxidized/model/trango.rb +4 -2
- data/lib/oxidized/model/truenas.rb +64 -3
- data/lib/oxidized/model/ucs.rb +1 -1
- data/lib/oxidized/model/unifiap.rb +144 -0
- data/lib/oxidized/model/uplinkolt.rb +46 -0
- data/lib/oxidized/model/voltaire.rb +1 -1
- data/lib/oxidized/model/voss.rb +3 -0
- data/lib/oxidized/model/vrp.rb +5 -1
- data/lib/oxidized/model/vyatta.rb +9 -3
- data/lib/oxidized/model/vyos.rb +37 -0
- data/lib/oxidized/model/xos.rb +10 -1
- data/lib/oxidized/model/zhoneolt.rb +4 -2
- data/lib/oxidized/model/zynos.rb +67 -3
- data/lib/oxidized/model/zynosadsl.rb +14 -0
- data/lib/oxidized/model/zynoscli.rb +1 -1
- data/lib/oxidized/model/zynosgs.rb +2 -0
- data/lib/oxidized/model/zynosmgs.rb +32 -0
- data/lib/oxidized/node.rb +99 -64
- data/lib/oxidized/nodes.rb +40 -19
- data/lib/oxidized/output/file.rb +80 -43
- data/lib/oxidized/output/git.rb +295 -151
- data/lib/oxidized/output/gitcrypt.rb +193 -185
- data/lib/oxidized/output/http.rb +63 -51
- data/lib/oxidized/output/output.rb +20 -4
- data/lib/oxidized/signals.rb +44 -0
- data/lib/oxidized/source/csv.rb +49 -49
- data/lib/oxidized/source/http.rb +76 -63
- data/lib/oxidized/source/jsonfile.rb +68 -0
- data/lib/oxidized/source/source.rb +73 -18
- data/lib/oxidized/source/sql.rb +71 -59
- data/lib/oxidized/version.rb +6 -4
- data/lib/oxidized/worker.rb +57 -29
- data/lib/oxidized.rb +4 -24
- data/lib/refinements.rb +21 -1
- data/oxidized.gemspec +45 -21
- metadata +248 -41
- data/lib/oxidized/model/timos.rb +0 -10
data/docs/Inputs.md
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
# Inputs
|
|
2
|
+
## Index
|
|
3
|
+
* Configuration
|
|
4
|
+
* [SSH](#ssh)
|
|
5
|
+
* [SCP](#scp)
|
|
6
|
+
* [FTP](#ftp)
|
|
7
|
+
* telnet
|
|
8
|
+
* http
|
|
9
|
+
* tftp
|
|
10
|
+
* exec
|
|
11
|
+
* [Debugging](#debugging)
|
|
12
|
+
|
|
13
|
+
## SSH
|
|
14
|
+
### Disabling SSH exec channels
|
|
15
|
+
|
|
16
|
+
Oxidized uses exec channels to make information extraction simpler, but there
|
|
17
|
+
are some situations where this doesn't work well, e.g. configuring devices. This
|
|
18
|
+
feature can be turned off by setting the `ssh_no_exec`
|
|
19
|
+
variable.
|
|
20
|
+
|
|
21
|
+
```yaml
|
|
22
|
+
vars:
|
|
23
|
+
ssh_no_exec: true
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Disabling SSH keepalives
|
|
27
|
+
|
|
28
|
+
Oxidized SSH input makes use of SSH keepalives to prevent timeouts from slower
|
|
29
|
+
devices and to quickly tear down stale sessions in larger deployments. There
|
|
30
|
+
have been reports of SSH keepalives breaking compatibility with certain OS
|
|
31
|
+
types. They can be disabled using the `ssh_no_keepalive` variable on a per-node
|
|
32
|
+
basis (by specifying it in the source) or configured application-wide.
|
|
33
|
+
|
|
34
|
+
```yaml
|
|
35
|
+
vars:
|
|
36
|
+
ssh_no_keepalive: true
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### SSH Auth Methods
|
|
40
|
+
|
|
41
|
+
By default, Oxidized registers the following auth methods: `none`, `publickey` and `password`. However you can configure this globally, by groups, models or nodes.
|
|
42
|
+
|
|
43
|
+
```yaml
|
|
44
|
+
vars:
|
|
45
|
+
auth_methods: [ "none", "publickey", "password", "keyboard-interactive" ]
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Public Key Authentication with SSH
|
|
49
|
+
|
|
50
|
+
Instead of password-based login, Oxidized can make use of key-based SSH
|
|
51
|
+
authentication.
|
|
52
|
+
|
|
53
|
+
You can tell Oxidized to use one or more private keys globally, or specify the
|
|
54
|
+
key to be used on a per-node basis. The latter can be done by mapping the
|
|
55
|
+
`ssh_keys` variable through the active source.
|
|
56
|
+
|
|
57
|
+
Global:
|
|
58
|
+
|
|
59
|
+
```yaml
|
|
60
|
+
vars:
|
|
61
|
+
ssh_keys: "~/.ssh/id_rsa"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Per-Node:
|
|
65
|
+
|
|
66
|
+
```yaml
|
|
67
|
+
# ...
|
|
68
|
+
map:
|
|
69
|
+
name: 0
|
|
70
|
+
model: 1
|
|
71
|
+
vars_map:
|
|
72
|
+
enable: 2
|
|
73
|
+
ssh_keys: 3
|
|
74
|
+
# ...
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
If you are using a non-standard path, especially when copying the private key
|
|
78
|
+
via a secured channel, make sure that the permissions are set correctly:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
foo@bar:~$ ls -la ~/.ssh/
|
|
82
|
+
total 20
|
|
83
|
+
drwx------ 2 oxidized oxidized 4096 Mar 13 17:03 .
|
|
84
|
+
drwx------ 5 oxidized oxidized 4096 Mar 13 21:40 ..
|
|
85
|
+
-r-------- 1 oxidized oxidized 103 Mar 13 17:03 authorized_keys
|
|
86
|
+
-rw------- 1 oxidized oxidized 399 Mar 13 17:02 id_ed25519
|
|
87
|
+
-rw-r--r-- 1 oxidized oxidized 94 Mar 13 17:02 id_ed25519.pub
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Finally, multiple private keys can be specified as an array of file paths, such
|
|
91
|
+
as `["~/.ssh/id_rsa", "~/.ssh/id_another_rsa"]`.
|
|
92
|
+
|
|
93
|
+
### SSH Proxy Command
|
|
94
|
+
|
|
95
|
+
Oxidized can `ssh` through a proxy as well. To do so we just need to set
|
|
96
|
+
`ssh_proxy` variable with the proxy host information and optionally set the
|
|
97
|
+
`ssh_proxy_port` with the SSH port if it is not listening on port 22.
|
|
98
|
+
|
|
99
|
+
This can be provided on a per-node basis by mapping the proper fields from your
|
|
100
|
+
source.
|
|
101
|
+
|
|
102
|
+
An example for a `csv` input source that maps the 4th field as the `ssh_proxy`
|
|
103
|
+
value and the 5th field as `ssh_proxy_port`.
|
|
104
|
+
|
|
105
|
+
```yaml
|
|
106
|
+
# ...
|
|
107
|
+
map:
|
|
108
|
+
name: 0
|
|
109
|
+
model: 1
|
|
110
|
+
vars_map:
|
|
111
|
+
enable: 2
|
|
112
|
+
ssh_proxy: 3
|
|
113
|
+
ssh_proxy_port: 4
|
|
114
|
+
# ...
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### SSH enabling legacy algorithms
|
|
118
|
+
|
|
119
|
+
When connecting to older firmware over SSH, it is sometimes necessary to enable
|
|
120
|
+
legacy/disabled settings like KexAlgorithms, HostKeyAlgorithms, MAC or the
|
|
121
|
+
Encryption.
|
|
122
|
+
|
|
123
|
+
These settings can be provided on a per-node basis by mapping the ssh_kex,
|
|
124
|
+
ssh_host_key, ssh_hmac and the ssh_encryption fields from you source.
|
|
125
|
+
|
|
126
|
+
```yaml
|
|
127
|
+
# ...
|
|
128
|
+
map:
|
|
129
|
+
name: 0
|
|
130
|
+
model: 1
|
|
131
|
+
vars_map:
|
|
132
|
+
enable: 2
|
|
133
|
+
ssh_kex: 3
|
|
134
|
+
ssh_host_key: 4
|
|
135
|
+
ssh_hmac: 5
|
|
136
|
+
ssh_encryption: 6
|
|
137
|
+
# ...
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Custom SSH port
|
|
141
|
+
Set the variable `ssh_port` to the desired value (default is 22).
|
|
142
|
+
|
|
143
|
+
### SSH Host key verification
|
|
144
|
+
With the configuration `secure', you can set the ssh key verification:
|
|
145
|
+
- `true`: strict host verification, looking up the known host files
|
|
146
|
+
- `false` (default): disable host verification, accept any ssh key
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
input:
|
|
150
|
+
ssh:
|
|
151
|
+
secure: true
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## SCP
|
|
155
|
+
### SSH Host key verification (SCP)
|
|
156
|
+
Same as for [SSH host key verification](#ssh-host-key-verification)
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
input:
|
|
160
|
+
scp:
|
|
161
|
+
secure: true
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Custom SCP port
|
|
165
|
+
Set the variable `ssh_port` to the desired value (default is 22).
|
|
166
|
+
|
|
167
|
+
## FTP
|
|
168
|
+
### FTP Passive Mode
|
|
169
|
+
|
|
170
|
+
Oxidized uses ftp passive mode by default. Some devices require passive mode to
|
|
171
|
+
be disabled. To do so, we can set `input.ftp.passive` to false - this will make
|
|
172
|
+
use of FTP active mode.
|
|
173
|
+
|
|
174
|
+
```yaml
|
|
175
|
+
input:
|
|
176
|
+
ftp:
|
|
177
|
+
passive: false
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## HTTP
|
|
181
|
+
### Supported HTTP Methods
|
|
182
|
+
|
|
183
|
+
The HTTP input supports the following HTTP methods:
|
|
184
|
+
- `:get` - for GET requests
|
|
185
|
+
- `:post` - for POST requests
|
|
186
|
+
|
|
187
|
+
These methods are used internally by models that require HTTP-based
|
|
188
|
+
configuration retrieval. Models can use `get_http()` and `post_http()` methods
|
|
189
|
+
provided by the HTTP input.
|
|
190
|
+
|
|
191
|
+
Example usage in a model:
|
|
192
|
+
|
|
193
|
+
```ruby
|
|
194
|
+
cfg :http do
|
|
195
|
+
post_response = post_http('/some/path', payload, 'Some-Extra-Header' => 'value')
|
|
196
|
+
get_response = get_http('/some/path')
|
|
197
|
+
end
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
HTTP input can be enabled by adding this block to the configuration file:
|
|
201
|
+
|
|
202
|
+
```yaml
|
|
203
|
+
input:
|
|
204
|
+
http:
|
|
205
|
+
scheme: https
|
|
206
|
+
ssl_verify: true
|
|
207
|
+
timeout: 30
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## Debugging
|
|
211
|
+
In case a model plugin doesn't work correctly (ios, procurve, etc.), you can
|
|
212
|
+
enable live debugging of SSH and Telnet sessions with the `debug` option of
|
|
213
|
+
the `input` section.
|
|
214
|
+
|
|
215
|
+
Starting with version 0.37.0, `debug` can take different values:
|
|
216
|
+
- `text`: log input and output to a text file (ssh, telnet)
|
|
217
|
+
- `yaml`: produce a yaml simulation file (ssh, scp)
|
|
218
|
+
- `library`: activate debug logging of the underlying library
|
|
219
|
+
- a combination of the options above (`text, yaml`)
|
|
220
|
+
- `true`; activate all debugging options (Only option for versions prior 0.37.0)
|
|
221
|
+
|
|
222
|
+
The log files will be created in `~/.config/oxidized/logs/` (or `$OXIDIZED_LOGS/logs/`).
|
|
223
|
+
|
|
224
|
+
The following example will log an active ssh/telnet session to
|
|
225
|
+
`~/.config/oxidized/logs/<IP-Address>-<PROTOCOL>-<timestamp>.txt` and for ssh
|
|
226
|
+
`~/.config/oxidized/logs/<IP-Address>-<PROTOCOL>-<timestamp>.yaml`. A new file
|
|
227
|
+
is created for each session.
|
|
228
|
+
|
|
229
|
+
```yaml
|
|
230
|
+
input:
|
|
231
|
+
default: ssh, telnet
|
|
232
|
+
debug: yaml, text
|
|
233
|
+
ssh:
|
|
234
|
+
secure: false
|
|
235
|
+
http:
|
|
236
|
+
ssl_verify: true
|
|
237
|
+
```
|
data/docs/Issues.md
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Writing good issues
|
|
2
|
+
If you're experiencing a problem with Oxidized or need a new feature, you can
|
|
3
|
+
[submit an issue on github](https://github.com/ytti/oxidized/issues). We have
|
|
4
|
+
a great community where users help each other through the issue system.
|
|
5
|
+
|
|
6
|
+
This guide provides tips on writing your issue to make it easier for the
|
|
7
|
+
community and developers to understand and respond effectively.
|
|
8
|
+
|
|
9
|
+
Why write good issues?
|
|
10
|
+
- A clear and detailed issue improves the chances of getting your problem
|
|
11
|
+
resolved.
|
|
12
|
+
- By spending time to write a good issue, you save developers time, contributing
|
|
13
|
+
to Oxidized’s progress without writing a line of code.
|
|
14
|
+
|
|
15
|
+
## Rules
|
|
16
|
+
The project receives too many incomplete issues, unnecessarily taking time that
|
|
17
|
+
could be invested in new code. Therefore, issues will be worked on with the
|
|
18
|
+
following rules:
|
|
19
|
+
|
|
20
|
+
- Use the predefined templates for bugs, feature requests and support requests.
|
|
21
|
+
- If you don't provide the necessary information (read this file, fill in the
|
|
22
|
+
questions in the templates), expect your issue to be closed without a comment.
|
|
23
|
+
- Inactive issues will be marked "stale" automatically after 90 days. Issues
|
|
24
|
+
are not closed automatically; this is a manual action by a maintainer.
|
|
25
|
+
- A feature request may be closed after some time of inactivity, as obviously
|
|
26
|
+
no one has found the time to implement it. Consider contributing code in a
|
|
27
|
+
Pull Request instead.
|
|
28
|
+
- While it is OK to ask for help (using the support request template), don't be
|
|
29
|
+
disappointed if no one finds the time to answer your question. Stale questions
|
|
30
|
+
(after 90 days) will be closed without a comment.
|
|
31
|
+
|
|
32
|
+
## Submit to the correct project
|
|
33
|
+
Choose the appropriate GitHub project based on your issue:
|
|
34
|
+
|
|
35
|
+
- For issues with the web frontend or REST API, go to
|
|
36
|
+
[oxidized-web](https://github.com/ytti/oxidized-web/).
|
|
37
|
+
- For issues with oxidized-script, use
|
|
38
|
+
[oxidized-script](https://github.com/ytti/oxidized-script). (note: as of
|
|
39
|
+
November 2024, oxidized-script is not actively maintained).
|
|
40
|
+
- For issues with third-party software relying on Oxidized, open an issue in
|
|
41
|
+
that specific project.
|
|
42
|
+
- For issues with Oxidized itself, go to
|
|
43
|
+
[oxidized](https://github.com/ytti/oxidized).
|
|
44
|
+
|
|
45
|
+
## Use the latest version
|
|
46
|
+
If you are using an old version of oxidized, you may encounter issues that have
|
|
47
|
+
been solved. No support will be provided for older versions of oxidized.
|
|
48
|
+
|
|
49
|
+
If you can, please also test against the latest git version, or at least read
|
|
50
|
+
[CHANGELOG.md](/CHANGELOG.md) to see if your problem has been solved on master.
|
|
51
|
+
|
|
52
|
+
## Format your issue
|
|
53
|
+
- Use [GitHub Markdown](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) to format your issue.
|
|
54
|
+
- Preview your text before submitting to ensure it renders correctly.
|
|
55
|
+
- Avoid screenshots of text. Instead, use [code formating](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#quoting-code) for any relevant code snippets.
|
|
56
|
+
|
|
57
|
+
## Choose your title well
|
|
58
|
+
Keep the title brief yet descriptive. Aim to summarize the main issue or request in a few words.
|
|
59
|
+
|
|
60
|
+
## Provide detailled informations
|
|
61
|
+
Include as many relevant details as possible. At a minimum, specify:
|
|
62
|
+
|
|
63
|
+
- Oxidized version and operating system.
|
|
64
|
+
- Which model (oxidized name AND Manufacturer name) is the issue about.
|
|
65
|
+
- Relevant parts of your Oxidized configuration and a brief explanation of your setup.
|
|
66
|
+
- Output of the error, if relevant.
|
|
67
|
+
- For issues related to specific devices, consider creating a YAML Simulation file (instructions below).
|
|
68
|
+
|
|
69
|
+
Also, provide clear steps to reproduce the issue, if applicable.
|
|
70
|
+
|
|
71
|
+
## Making feature requests
|
|
72
|
+
Feature requests are welcome, but please understand that unaddressed requests
|
|
73
|
+
may be closed after some time. If you need a feature urgently, consider
|
|
74
|
+
contributing code via a pull request (PR) or hiring a developer.
|
|
75
|
+
|
|
76
|
+
## Sumbit a YAML Simulation File
|
|
77
|
+
To help developers troubleshoot device-specific issues, you may be asked to submit a
|
|
78
|
+
[YAML simulation file](/docs/DeviceSimulation.md#creating-a-yaml-file-with-device2yamlrb) for your device.
|
|
79
|
+
|
|
80
|
+
Here's a brief overview how to do it, you can find more details in the link
|
|
81
|
+
above.
|
|
82
|
+
- Fork Oxidized on github
|
|
83
|
+
- Install dependencies (git and Ruby's Net::SSH):
|
|
84
|
+
```
|
|
85
|
+
# Adapt when not using a debian-based distro
|
|
86
|
+
sudo apt install git ruby-net-ssh
|
|
87
|
+
```
|
|
88
|
+
- Clone your forked Oxidized repository:
|
|
89
|
+
```
|
|
90
|
+
git clone git@github.com:<your github user>/oxidized.git
|
|
91
|
+
```
|
|
92
|
+
- run the `extra/device2yaml.rb` script (you’ll be provided with the command to
|
|
93
|
+
run) from the repository root:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
extra/device2yaml.rb oxidized@r61 -c "terminal length 0
|
|
97
|
+
terminal width 0
|
|
98
|
+
show version
|
|
99
|
+
show vtp status
|
|
100
|
+
show inventory
|
|
101
|
+
show running-config
|
|
102
|
+
exit" -o spec/model/data/ios:C8200L_16.12.1:simulation.yaml
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
- The script waits 5 seconds between commands, and outputs the response of the
|
|
106
|
+
device. You can press "ESC" if you see the prompt and want to pass to next
|
|
107
|
+
command without waiting for the timeout.
|
|
108
|
+
- The result will be stored in `spec/model/data/`.
|
|
109
|
+
- Replace any sensitive information with placeholder values in the output file.
|
|
110
|
+
- Commit & push the file to github
|
|
111
|
+
```
|
|
112
|
+
git add spec/model/data/ios:C8200L_16.12.1:simulation.yaml
|
|
113
|
+
git commit -m "Device simulation for C8200L"
|
|
114
|
+
git push
|
|
115
|
+
```
|
|
116
|
+
- Create a pull request (PR) in GitHub, referencing the issue number (e.g.,
|
|
117
|
+
"YAML simulation file for issue #1234").
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# APC Configuration
|
|
2
|
+
The configuration of APC Network Management Cards can be downloaded using FTP
|
|
3
|
+
and SCP. You can retrieve serial numbers and OS version information through
|
|
4
|
+
an SSH connection.
|
|
5
|
+
|
|
6
|
+
APC OS does not have the ability to display the config.ini within an SSH shell.
|
|
7
|
+
A ticket was opened with APC support to enable "cat config.ini"
|
|
8
|
+
within an SSH shell, but APC declined to implement this feature.
|
|
9
|
+
|
|
10
|
+
To overcome this limitation, a capability to run against multiple inputs (SSH + SCP)
|
|
11
|
+
has been implemented in Oxidized and in the [model ApcAos](/lib/oxidized/model/apcaos.rb).
|
|
12
|
+
|
|
13
|
+
The old model apc_aos (SCP/FTP only) is deprecated and will be removed in a
|
|
14
|
+
future release. Migrate to ApcAos.
|
|
15
|
+
|
|
16
|
+
## How do I activate FTP/SCP input?
|
|
17
|
+
To download the configuration with FTP or SCP, you must activate it
|
|
18
|
+
as an input in the Oxidized configuration. If you don't activate the input,
|
|
19
|
+
Oxidized will fail for the node with an error.
|
|
20
|
+
|
|
21
|
+
You probably also need to increase the default timeout to something about 60
|
|
22
|
+
seconds, as the APC are really slow, and need about 30 seconds to complete.
|
|
23
|
+
|
|
24
|
+
The configuration can be done either globally or only for the ApcAos model.
|
|
25
|
+
|
|
26
|
+
### Global Configuration
|
|
27
|
+
The global configuration would look like this. Note that Oxidized will try every
|
|
28
|
+
input type in the given order until it succeeds, or it will report a failure.
|
|
29
|
+
```yaml
|
|
30
|
+
timeout: 60
|
|
31
|
+
input:
|
|
32
|
+
default: ssh, ftp, scp
|
|
33
|
+
```
|
|
34
|
+
The order in the configuration is relevant. With this configuration, the ApcAos
|
|
35
|
+
model will run SSH first, then it will try FTP, and if FTP fails SCP.
|
|
36
|
+
|
|
37
|
+
### Model-Specific Configuration
|
|
38
|
+
|
|
39
|
+
Configuration for activating only the SCP input for ApcAos only:
|
|
40
|
+
```yaml
|
|
41
|
+
input:
|
|
42
|
+
default: ssh
|
|
43
|
+
models:
|
|
44
|
+
apcaos:
|
|
45
|
+
input: ssh, scp
|
|
46
|
+
timeout: 60
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Setting Specific Credentials
|
|
50
|
+
You can also set a specific username and password for ApcAos only:
|
|
51
|
+
```yaml
|
|
52
|
+
username: default-user
|
|
53
|
+
password: default-password
|
|
54
|
+
input:
|
|
55
|
+
default: ssh
|
|
56
|
+
models:
|
|
57
|
+
ApcAos:
|
|
58
|
+
username: apc-user
|
|
59
|
+
password: apc-password
|
|
60
|
+
input: ssh, scp
|
|
61
|
+
timeout: 60
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Why do I partially get CR + LF?
|
|
65
|
+
The config.ini file has a DOS-Format (CR + LF), and is saved without
|
|
66
|
+
modifications, so that it can be uploaded to the device.
|
|
67
|
+
|
|
68
|
+
Outputs from ssh are stored without CR, so the first part of the file is
|
|
69
|
+
without CR and config.ini with CR + LF.
|
|
70
|
+
|
|
71
|
+
This is expected behavior and should not affect the functionality of the backup
|
|
72
|
+
or restore process.
|
data/docs/Model-Notes/Cumulus.md
CHANGED
|
@@ -11,6 +11,9 @@ A variable has been added to enable users running Cumulus Linux > 3.4.0 to targe
|
|
|
11
11
|
## NCLU
|
|
12
12
|
It is possible to switch to [NCLU](https://docs.nvidia.com/networking-ethernet-software/cumulus-linux-44/System-Configuration/Network-Command-Line-Utility-NCLU/) as a configuration collecting method, by setting `cumulus_use_nclu` to true
|
|
13
13
|
|
|
14
|
+
## NVUE
|
|
15
|
+
It is also possible to use [NVUE](https://docs.nvidia.com/networking-ethernet-software/knowledge-base/Setup-and-Getting-Started/NVUE-Cheat-Sheet/) as a configuration collecting method, by setting `cumulus_use_nvue` to true.
|
|
16
|
+
|
|
14
17
|
### Example usage
|
|
15
18
|
|
|
16
19
|
```yaml
|
|
@@ -43,4 +46,6 @@ The default value for `cumulus_routing_daemon` is `quagga` so existing installat
|
|
|
43
46
|
|
|
44
47
|
The default value for `cumulus_use_nclu` is `false`, in case NCLU is not installed.
|
|
45
48
|
|
|
49
|
+
The default value for `cumulus_use_nvue` is `false`, in case NVUE is not installed.
|
|
50
|
+
|
|
46
51
|
Back to [Model-Notes](README.md)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# EatonNetwork Configuration
|
|
2
|
+
|
|
3
|
+
This model uses the command `save_configuration -p <passphrase>` to get the backup config. The `-p` option is a required passphrase used to encrypted sensitive parts of the config data, the encrypted data is nondeterministic and changes with each run. The passphrase used is the auth password for the node.
|
|
4
|
+
|
|
5
|
+
See the [Eaton Network-M3 user's guide](https://www.eaton.com/content/dam/eaton/products/backup-power-ups-surge-it-power-distribution/power-management-software-connectivity/eaton-gigabit-network-card/network-m3/resources/eaton-network-m3-user-guide.pdf) section 7.7.14 (page 260) for more information.
|
|
6
|
+
|
|
7
|
+
To not have the backup change on each for all `eatonnetwork` node run set a model var in the config for the `eatonnetwork` model to [remove secrets](../Configuration.md#removing-secrets):
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
models:
|
|
11
|
+
eatonnetwork:
|
|
12
|
+
vars:
|
|
13
|
+
remove_secret: true
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
See the [Eaton Network-M3 user's guide](https://www.eaton.com/content/dam/eaton/products/backup-power-ups-surge-it-power-distribution/power-management-software-connectivity/eaton-gigabit-network-card/network-m3/resources/eaton-network-m3-user-guide.pdf) section 3.20 (page 111) for details on JSON configuration structure, and restoring without sensitive/secrets.
|
|
17
|
+
|
|
18
|
+
Back to [Model-Notes](README.md)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Cisco Nexus 3550-F (ExaLink Fusion)
|
|
2
|
+
|
|
3
|
+
The Cisco Nexus 3550-F (formerly Exablaze ExaLink Fusion) is an ultra-low-latency
|
|
4
|
+
Layer 1/2 switch platform based on FPGA technology, primarily used in high-frequency
|
|
5
|
+
trading and HPC environments. It runs a custom Linux-based OS with a proprietary CLI
|
|
6
|
+
and JSON RPC API.
|
|
7
|
+
|
|
8
|
+
## Device Configuration
|
|
9
|
+
|
|
10
|
+
Create a read-only user for Oxidized on the device:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
admin@N3550-F> configure user oxidized password <password>
|
|
14
|
+
admin@N3550-F> configure user oxidized privilege read-only
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Oxidized Configuration
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
source:
|
|
21
|
+
default: csv
|
|
22
|
+
csv:
|
|
23
|
+
file: "/home/oxidized/.config/oxidized/router.db"
|
|
24
|
+
delimiter: !ruby/regexp /:/
|
|
25
|
+
map:
|
|
26
|
+
name: 0
|
|
27
|
+
model: 1
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Example `router.db` entry:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
myswitch.example.com:exalink
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Notes
|
|
37
|
+
|
|
38
|
+
- Both SSH and Telnet are supported. SSH is recommended.
|
|
39
|
+
- The model collects `show version` (excluding uptime to avoid noisy diffs),
|
|
40
|
+
`show port`, and `show running-config`.
|
|
41
|
+
- Timestamps (`!Time:`) are stripped from the running config to avoid noisy diffs.
|
|
42
|
+
- The device prompt format is `hostname#` or `hostname>`.
|
|
43
|
+
- This model was developed and tested against software version 1.16.0.
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|
+
|S3400-48T4SP |Version 2.0.2J Build 120538 |
|
|
11
|
+
|S3410-24TS-P |S3410_FSOS 11.4(1)B74S5 |
|
|
12
|
+
|S5850-48T4Q |Version 7.0.4.34 |
|
|
13
|
+
|S5800-48MBQ |Version 7.0.4.21 |
|
|
14
|
+
|S5810-48TS-P |S5810_FSOS 11.4(1)B74S8, Release(10200711) |
|
|
15
|
+
|S5860-20SQ |S5860_FSOS 12.4(1)B0101P1S4 |
|
|
16
|
+
|
|
17
|
+
Back to [Model-Notes](README.md)
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Fortinet models
|
|
2
|
+
There are two models for Fortinet devices:
|
|
3
|
+
- fortigate: for the FortiGate firewalls
|
|
4
|
+
- fortios: for VM-Based appliances (FortiManager, FortiADC, FortiAnalyzer...)
|
|
5
|
+
|
|
6
|
+
# Notes for both models
|
|
7
|
+
## Configuration changes / hiding passwords
|
|
8
|
+
Fortigate and Fortios re-encrypt their passwords every time the configuration is shown.
|
|
9
|
+
This results in a lot of apparent configuration changes on every pull.
|
|
10
|
+
|
|
11
|
+
To avoid this, you have two options:
|
|
12
|
+
- remove secrets
|
|
13
|
+
- save significant changes only
|
|
14
|
+
|
|
15
|
+
### Remove secrets
|
|
16
|
+
If you don't want to have a new version every time the configuration is
|
|
17
|
+
downloaded, you can hide all secrets. Beware that you won't have a full backup, as all passwords will be replaced with <configuration removed>
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
models:
|
|
21
|
+
fortigate:
|
|
22
|
+
vars:
|
|
23
|
+
remove_secret: true
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Save significant changes only
|
|
27
|
+
You can [store the configuration only on significant changes](/docs/Configuration.md#store-configuration-only-on-significant-changes)
|
|
28
|
+
by setting the [variable](#options-credentials-vars-etc-precedence)
|
|
29
|
+
`output_store_mode` to `on_significant`. On FortiGate and FortiOS, this
|
|
30
|
+
prevents Oxidized from saving a configuration when there were only changes to
|
|
31
|
+
the encrypted passwords. Beware that you won't have the last backup if you only
|
|
32
|
+
changed a password.
|
|
33
|
+
|
|
34
|
+
```yaml
|
|
35
|
+
vars:
|
|
36
|
+
output_store_mode: on_significant
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
# Notes for the FortiGate model
|
|
40
|
+
## Create user oxidized with ED25519 public key
|
|
41
|
+
You can use a user/password for retrieving the configuration or use a SSH public key:
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
config system admin
|
|
45
|
+
edit oxidized
|
|
46
|
+
set trusthost1 192.0.2.1 255.255.255.255
|
|
47
|
+
set accprofile "super_admin_readonly"
|
|
48
|
+
set ssh-public-key1 "ssh-ed25519 AAAAThisIsJustAnExampleKey_UseYourOxidizedPUBLICKEY oxidized@librenms"
|
|
49
|
+
end
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## config vs. full config
|
|
53
|
+
On FortiGate, you can get a configuration without default values (`show`) or
|
|
54
|
+
including all default values (`show full-configuration`).
|
|
55
|
+
|
|
56
|
+
The full configuration can be long and may cause timeouts.
|
|
57
|
+
Starting with with oxidized 0.30.1, the default is to get the short configuration.
|
|
58
|
+
|
|
59
|
+
If you need the full configuration, you can activate it in oxidized config file:
|
|
60
|
+
```yaml
|
|
61
|
+
models:
|
|
62
|
+
fortigate:
|
|
63
|
+
vars:
|
|
64
|
+
fullconfig: true
|
|
65
|
+
```
|
|
66
|
+
## Autoupdate
|
|
67
|
+
You can get the result of `diagnose autoupdate version` by setting the [variable](#options-credentials-vars-etc-precedence) `fortigate_autoupdate` to `true`:
|
|
68
|
+
|
|
69
|
+
```yaml
|
|
70
|
+
vars:
|
|
71
|
+
fortigate_autoupdate: true
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Note that the variable `fortios_autoupdate` is deprecated and will be removed
|
|
75
|
+
in a future Version of Oxidized. Use `fortigate_autoupdate` instead.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Grandstream HT8xx
|
|
2
|
+
|
|
3
|
+
You need to have enabled access to device by SSH.
|
|
4
|
+
Connection using user/password for retrieve the configuration containing XML file with all params stored in device memory.
|
|
5
|
+
|
|
6
|
+
Tested on hardware: v1 and software version: 1.0.61.2.
|
|
7
|
+
|
|
8
|
+
Back to [Model-Notes](README.md)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# HPE Aruba Networking devices
|
|
2
|
+
HPE Aruba offers various networking devices with different operating systems.
|
|
3
|
+
|
|
4
|
+
## HPE Aruba Networking Instant Mode (Aruba Instant)
|
|
5
|
+
[Aruba Instant](https://www.arubanetworks.com/techdocs/ArubaDocPortal/content/cons-instant-home.htm)
|
|
6
|
+
runs on IAPs (Instant Access points).
|
|
7
|
+
|
|
8
|
+
The Oxidized model is [ArubaInstant](/lib/oxidized/model/arubainstant.rb).
|
|
9
|
+
When run on the virtual WLAN controller, it will also collect the list of the
|
|
10
|
+
WLAN-AP linked to the controller.
|
|
11
|
+
|
|
12
|
+
The aosw model for AOS 8 used to be used for Aruba Instant, but it does not work
|
|
13
|
+
as well and may stop working in the future.
|
|
14
|
+
|
|
15
|
+
## HPE Aruba Networking Wireless Operating System 8 (AOS 8)
|
|
16
|
+
[AOS 8](https://www.arubanetworks.com/techdocs/ArubaDocPortal/content/cons-aos-home.htm)
|
|
17
|
+
runs on WLAN controllers (mobility controllers) and controller-managed access
|
|
18
|
+
points.
|
|
19
|
+
|
|
20
|
+
The Oxidized model is [aosw](/lib/oxidized/model/aosw.rb).
|
|
21
|
+
|
|
22
|
+
## HPE Aruba Networking CX Switch Operating System (AOS-CX)
|
|
23
|
+
[AOS-CX](https://www.arubanetworks.com/techdocs/AOS-CX/help_portal/Content/home.htm)
|
|
24
|
+
is the operating system for the newer CX-Series.
|
|
25
|
+
|
|
26
|
+
The Oxidized model is [aoscx](/lib/oxidized/model/aoscx.rb).
|
|
27
|
+
|
|
28
|
+
## Older Models
|
|
29
|
+
Older Devices like [ProCurve](/lib/oxidized/model/procurve.rb) or 3Com/Comware
|
|
30
|
+
are listed under the Vendor "HP" in the
|
|
31
|
+
[Supported OS Types](/docs/Supported-OS-Types.md) list.
|
|
32
|
+
|