Difference between revisions of "Oxidized"

From HackerNet
Jump to: navigation, search
m
Line 81: Line 81:
  
 
==Installation==
 
==Installation==
  apt-get update && apt-get -y install ruby ruby-dev libsqlite3-dev libssl-dev pkg-config cmake
+
  sudo add-apt-repository universe
  gem install oxidized
+
sudo apt-get -y install ruby ruby-dev libsqlite3-dev libssl-dev pkg-config cmake libssh2-1-dev libicu-dev zlib1g-dev g++
  gem install oxidized-script oxidized-web
+
  sudo gem install oxidized
 +
  sudo gem install oxidized-script oxidized-web
 
''requires Ruby version >= 2.0''
 
''requires Ruby version >= 2.0''
  
Line 130: Line 131:
  
 
==Output==
 
==Output==
Output lagrar konfigurationen.  
+
Output lagrar konfigurationen. Man måste köra git för att få versionshantering på konfig-filerna.
 
  output:
 
  output:
 
   default: file
 
   default: file

Revision as of 15:58, 19 March 2019

Oxidized är ett backup tool för nätverk devices. Alltså en ersättare till Rancid.

Supportade OS

  • A0 Networks
    • ACOS
  • Alcatel-Lucent
    • AOS
    • AOS7
    • ISAM
    • TiMOS
    • Wireless
  • Arista
    • EOS
  • Arris
    • C4CMTS
  • Aruba
    • AOSW
  • Brocade
    • FabricOS
    • Ironware
    • NOS (Network Operating System)
    • Vyatta
  • Ciena
    • SOAS
  • Cisco
    • AireOS
    • ASA
    • IOS
    • IOSXR
    • NXOS
    • SMB (Nikola series)
  • Citrix
    • NetScaler (Virtual Applicance)
  • Cumulus
    • Linux
  • DataCom
    • DmSwitch 3000
  • DELL
    • PowerConnect
    • AOSW
  • Ericsson/Redback
    • IPOS (former SEOS)
  • Extreme Networks
    • XOS
    • WM
  • F5
    • TMOS
  • Force0
    • DNOS
    • FTOS
  • FortiGate
    • FortiOS
  • HP
    • Comware (HP A-series, H3C, 3Com)
    • Procurve
  • Huawei
    • VRP
  • Juniper
    • JunOS
    • ScreenOS (Netscreen)
  • Mikrotik
    • RouterOS
  • Motorola
    • RFS
  • MRV
    • MasterOS
  • Netonix
    • WISP Switch (As Netonix)
  • Opengear
    • Opengear
  • Palo Alto
    • PANOS
  • Supermicro
    • Supermicro
  • Ubiquiti
    • AirOS
    • Edgeos
    • EdgeSwitch
  • Zyxel
    • ZyNOS

Installation

sudo add-apt-repository universe
sudo apt-get -y install ruby ruby-dev libsqlite3-dev libssl-dev pkg-config cmake libssh2-1-dev libicu-dev zlib1g-dev g++
sudo gem install oxidized
sudo gem install oxidized-script oxidized-web

requires Ruby version >= 2.0

Konfiguration

Konfigurationen är på YAML-format. Default-konf finns i: /etc/oxidized/config och sedan används~/.config/oxidized/config

För att initiera oxidized i ditt home directory kör:

mkdir -p ~/.config/oxidized
oxidized
nano ~/.config/oxidized/config

Man kan ändra var man vill att oxidized ska lägga sig genom att ändra environment variable

OXIDIZED_HOME=/etc/oxidized

Logging

log: "/home/$USER/.config/oxidized/oxidized.log"

Input

Input hämtar konfiguration från enheterna.

input:
  default: ssh, telnet
  debug: false
  ssh:
    secure: false

Source

Source läser vilka enheter som ska konfigbackas. Oxidized har stöd för CSV, SQLite och HTTP som source backends.

CSV backend läser vilka enheter som det ska tas backup på från en rancid-kompatibel fil.

source:
  default: csv
  csv:
    file: "/home/$USER/.config/oxidized/router.db"
    delimiter: !ruby/regexp /:/
    map:
      name: 0
      model: 1
      username: 2
      password: 3
    vars_map:
      enable: 4

router.db
Format: 0:1:2:3:4

router01.example.com:ios:user:pw:enablepw
172.20.0.1:ios:user:pw:enablepw

Output

Output lagrar konfigurationen. Man måste köra git för att få versionshantering på konfig-filerna.

output:
  default: file
  file:
    directory: "/home/$USER/.config/oxidized/configs"

GIT

output:
  default: git
  git:
      user: Oxidized
      email: oxidized@example.com
      repo: "/home/$USER/.config/oxidized/oxidized.git"

Exceptions
Man kan lägga in egna undantag för rader som ej borde vara med i konfigen, t.ex. rader med tidsstämplar som ändras ofta.

Exempel IOS, edit /var/lib/gems/2.3.0/gems/oxidized-0.21.0/lib/oxidized/model/ios.rb

  cmd 'show running-config' do |cfg|
    cfg = cfg.each_line.to_a[3..-1]
    cfg = cfg.reject { |line| line.match /^ntp clock-period / }.join
    cfg.gsub! /^Current configuration : [^\n]*\n/, ''
    cfg.gsub! /^! Last configuration change at [^\n]*\n/, ''
    cfg.gsub! /^! NVRAM config last updated at [^\n]*\n/, ''
    cfg.gsub! /^\ tunnel\ mpls\ traffic-eng\ bandwidth[^\n]*\n*(
                  (?:\ [^\n]*\n*)*
                  tunnel\ mpls\ traffic-eng\ auto-bw)/mx, '\1'
    cfg
  end

Execute

För att starta oxidized och ta en första backup

oxidized

RESTful web API

rest: <IP>:8888

Service

Skapa en service med hjälp av Systemd.

sudo cat <<'__EOF__'>> /lib/systemd/system/oxidized.service
[Unit]
Description=Oxidized - Network Device Configuration Backup Tool

[Service]
ExecStart=/usr/local/bin/oxidized
User=oxidized

[Install]
WantedBy=multi-user.target
__EOF__
sudo systemctl enable oxidized
sudo systemctl start oxidized
sudo systemctl status oxidized