summaryrefslogtreecommitdiff
path: root/README.md
blob: 15da1fe7bcd4a1f14b85be6da06fdfa2f2f1114d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# Pitch
 * automatically adds/removes threads to meet configured retrieval interval
 * restful API to move node immediately to head-of-queue 
   * syslog udp+file example to catch config change event (ios/junos) and trigger config fetch
   * will signal ios/junos user who made change, which output module can (git does) use
   * 'git blame' will show for each line who and when the change was made
 * restful API to reload list of nodes (GET /nodes/reload)
 * restful API to fetch configurations (/nodes/fetch/[NODE] or /nodes/fetch/group/[NODE])

# Install
 * early days, but try:
   1. apt-get install libsqlite3-dev
   2. gem install oxidized
   3. oxidized
   4. vi ~/.config/oxidized
   5. (maybe point to your rancid/router.db or copy it there)
   6. oxidized

# API
## Input
 * gets config from nodes
 * must implement 'connect', 'get', 'cmd'
 * 'ssh' and 'telnet' implemented

## Output
 * stores config
 * must implement 'store'
 * 'git' and 'file' (store as flat ascii) implemented

## Source
 * gets list of nodes to poll
 * must implement 'load'
 * source can have 'name', 'model', 'group', 'username', 'password', 'input', 'output', 'prompt'
   * 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)

## Model
 * lists commands to gather from given device model
 * can use 'cmd', 'prompt', 'comment', 'cfg'
 * cfg is executed in input/output/source context
 * cmd is executed in instance of model
 * 'junos', 'ios', 'ironware' and 'powerconnect' implemented