Sabtu, 06 November 2021

Tutorial Install Oxidized sebagai alternative Rancid di Ubuntu 18.04

Oxidized adalah tool untuk backup config dari perangkat network secara otomatis dan berkala. Menurut developernya ini merupakn tool pengganti Rancid.

lebih enak lihat di medium

Yang perlu disiapkan adalah

  1. Ubuntu 18.04 atau yang lebih tinggi
  2. Koneksi internet
  3. SW atau perangkat network untuk pengetesan

Pertama enable repo universe pada ubuntunya

add-apt-repository universe

Install package lain yang dibutuhkan

apt-get install ruby ruby-dev libsqlite3-dev libssl-dev pkg-config cmake libssh2-1-dev libicu-dev zlib1g-dev g++

Kemudian install gems

gem install oxidized
gem install oxidized-script oxidized-web # jika kalian tidak install oxidized web pastikan kalian mengahapus "rest" pada file konfigurasinya

Developer menyarankan agar tidak menggunakan user root pada saat penggunaan namun disini saya menggunakna user root karena vmnya nanti akan saya hapus. Namun jika ingin mengikuti rekomendasi dari developernya buatlah user baru

adduser oxidized

Jika sudah dibuat masuk ke user tersebut

su - oxidized

Jalankan oxidized tanpa menambah argumen apapun untuk membuat file konfigurasi dasar

oxidized

command diatas akan membuatkan direktori /home/oxidized/.config/oxidized/ dan akan membuatkan file config sebagai contoh atau referensi config kita nantinya.

Tahap ini merupakan optional, buat direktori untuk menyimpan file konfigurasi secara default foldernya sudah disediakan oleh oxidized namun untuk memudahkan dalam mengakses dan merapihkannya kita bisa buat folder terpisah.

mkdir /home/oxidized/deviceconfigs

Edit file konfigurasinya

nano /home/oxidized/.config/oxidized/config

Sesuaikan dengan perangkat yang kalian miliki, atau kalian bisa mengikuti file konfig yang saya gunakan dan telah saya tambahkan // untuk komentarnya.

Lebih enak lihat di https://codeshare.io/zy7gVj

// Karena pada saat membuat server ini perangkat yang saya gunakan ada raisecom jadi model nya adalah raisecom
// disini saya tidak mengisi parameter username dan password karena itu akan saya mapping pada databasenya nanti
---
username: username   // username yang akan digunakan untuk login ke devicenya
password: password   // password yang akan digunakan untuk login ke devicenya
model: raisecom   // model atau jenis perangkat yang digunakan
resolve_dns: true  // jika tidak menggunakan domain bisa dibuat false dan di router db nya jangan menggunakna domain
interval: 600  // interval berapa sering konfigurasinya akan diambil dalam satuan detik
use_syslog: false
debug: false  // aktifkan jika ingin melihat debugnya
threads: 30
timeout: 20
retries: 3
prompt: !ruby/regexp /^([\\w#.@-]+[#>]\\s?)$/
rest: 0.0.0.0:8888   // ini untuk oxidized webnya
// default rest adalah 127.0.0.1 ubah ke 0.0.0.0 untuk membuat listen di all network
next_adds_job: false
// kebetulan perangkat yang digunakan tidak memerlukan enable password namun jika dibutuhkan berikut konfigurasinya
vars: 
	enable: v3ry5ecur3 
  remove_secret: true // ini akan menutupi atau mengahapus password yang ditampilkan saat show running config
groups: {}
models: {}
pid: "/home/oxidized/.config/oxidized/pid"
crash:
  directory: "/home/oxidized/.config/oxidized/crashes"
  hostnames: false
stats:
  history_size: 10
input:
  default: ssh  
  // mode yang akan digunakan untuk login bisa disesauiakn ssh atau telnet atu bisa juga ssh dan telnet
  // gunakan " ssh, telnet " jika ingin menggunakan ssh sebagai primary method dan secondary methodnya telnet
  debug: false
  ssh:
    secure: false
  ftp:
    passive: true
  utf8_encoded: true
output:
  default: file
  file:
    directory: "/home/oxidized/.config/oxidized/configs"
source:
  default: csv
  csv:
		// Format:
	  // hostname:modelname:username:password:enablepassword
	  // sw-edge3.example.org:raisecom:manager:s3cr3t:SuP3rSecr3t
		// namun karena saya tidak membutuhkan enable password jadi hanya perlu
		// hostname:model:username:password
    file: "/home/oxidized/.config/oxidized/router.db"
    delimiter: !ruby/regexp /:/
    map:
      name: 0
      model: 1
      username: 2
      password: 3
		vars_map:
      enable: 4
    gpg: false
model_map:
	// disini merupakan map model lainnya namun saya belum pernah mencobanya.
  juniper: junos
  cisco: ios

Buat atau masuk ke file /home/oxidized/.config/oxidized/router.db untuk menambahkan node atau hostnya dan isi seperti dibawah ini

sw-edge3.example.org:raisecom:manager:s3cr3t

Jika pada router db menggunakan domain jangan lupa untuk menambahkannya juga di /etc/hosts

127.0.0.1       localhost
192.168.1.2     oxidized.linux-island.com     oxidized

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

// tambhkan dibaris paling bawah seperti ini
10.10.10.10     sw-edge3.example.org

jalankan oxidized sekali lagi dan dan masuklah ke webnya di http://ipservermu:8888/

kalian akan melihat tampilan seperti dibawah

Jika ada penambahan device baru cukup tambah di /etc/hosts dan di router.db kemudian klik reload pada webnya dan refresh webnya maka nodenya akan otomatis ditambahkan.

Referensi :

Previous Post
Next Post

1 komentar: