README.md in oxidized-0.6.0 vs README.md in oxidized-0.7.0
- old
+ new
@@ -25,10 +25,11 @@
5. [Cookbook](#cookbook)
* [Debugging](#debugging)
* [Privileged mode](#privileged-mode)
* [Source: CSV](#source-csv)
* [Source: SQLite](#source-sqlite)
+ * [Source: HTTP](#source-http)
* [Output: GIT](#output-git)
* [Output: File](#output-file)
* [Advanced Configuration](#advanced-configuration)
6. [Ruby API](#ruby-api)
* [Input](#input)
@@ -65,10 +66,11 @@
* Huawei VRP
* Juniper JunOS
* Juniper ScreenOS (Netscreen)
* Mikrotik RouterOS
* Ubiquiti AirOS
+ * Palo Alto PAN-OS
# Installation
## Debian
Install all required packages and gems.
@@ -97,11 +99,11 @@
To initialize a default configuration in your home directory ```~/.config/oxidized/config```, simply run ```oxidized``` once. If you don't further configure anything from the output and source sections, it'll extend the examples on a subsequent ```oxidized``` execution. This is useful to see what options for a specific source or output backend are available.
## Source
-Oxidized supports ```CSV``` and ```SQLite``` as source backends. The CSV backend reads nodes from a rancid compatible router.db file. The SQLite backend will fire queries against a database and map certain fields to model items. Take a look at the [Cookbook](#cookbook) for more details.
+Oxidized supports ```CSV```, ```SQLite``` and ```HTTP``` as source backends. The CSV backend reads nodes from a rancid compatible router.db file. The SQLite backend will fire queries against a database and map certain fields to model items. The HTTP backend will fire queries against a http/https url. Take a look at the [Cookbook](#cookbook) for more details.
## Outputs
Possible outputs are either ```file``` or ```git```. The file backend takes a destination directory as argument and will keep a file per device, with most recent running version of a device. The GIT backend (recommended) will initialize an empty GIT repository in the specified path and create a new commit on every configuration change. Take a look at the [Cookbook](#cookbook) for more details.
@@ -111,11 +113,11 @@
```
mkdir ~/.config/oxidized/configs
oxidized
```
-Now tell Oxidized where it finds a list of network devices to backup configuration from. You can either use CSV or SQLite as source. To create a CVS source add the following snippet:
+Now tell Oxidized where it finds a list of network devices to backup configuration from. You can either use CSV or SQLite as source. To create a CSV source add the following snippet:
```
source:
default: csv
csv:
@@ -218,10 +220,32 @@
password: password
vars_map:
enable: enable
```
+### Source: HTTP
+
+One object per device.
+
+```
+source:
+ default: http
+ http:
+ url: https://url/api
+ scheme: https
+ delimiter: !ruby/regexp /:/
+ map:
+ name: hostname
+ model: os
+ username: username
+ password: password
+ vars_map:
+ enable: enable
+ headers:
+ X-Auth-Token: 'somerandomstring'
+```
+
### Output: File
Parent directory needs to be created manually, one file per device, with most recent running config.
```
@@ -311,10 +335,10 @@
* name - name of the devices
* model - model to use ios/junos/xyz, model is loaded dynamically when needed (Also default in config file)
* input - method to acquire config, loaded dynamically as needed (Also default in config file)
* output - method to store config, loaded dynamically as needed (Also default in config file)
* prompt - prompt used for node (Also default in config file, can be specified in model too)
- * 'sql' and 'csv' (supports any format with single entry per line, like router.db)
+ * 'sql', 'csv' and 'http' (supports any format with single entry per line, like router.db)
## Model
* lists commands to gather from given device model
* can use 'cmd', 'prompt', 'comment', 'cfg'
* cfg is executed in input/output/source context