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