网络设备自动备份
参考链接:https://github.com/ytti/oxidized
测试环境:CentOS Linux release 7.3.1611 (Core)
主要组件:oxidized oxidized-script oxidized-web
注意:oxidized-web需要ruby2.3以上支持,如不安装oxidized-web,配置文件里rest 修改为false
安装依赖组件
- yum 源修改:本测试环境为办公网测试机,需要修改yum源,通常建议修改为公司线上或测试环境yum源(可找业务运维帮忙倒出上传到/etc/yum.repos.d)
yum install make cmake which sqlite-devel openssl-devel libssh3-devel ruby gcc ruby-devel libicu-devel gcc-c++安装ruby
centos7默认ruby为2.0版本,需要单独安装。
yum install centos-release-scl
yum-config-manager --enable rhel-server-rhscl-7-rpms
yum install -y rh-ruby25-ruby-devel
yum install rh-ruby25
scl enable rh-ruby25 bash
ruby -v
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]
cp /opt/rh/rh-ruby25/root/usr/lib64/libruby.so.2.5 /usr/lib/
设置登录时自动启动ruby2.5:
vim /etc/profile.d/rh-ruby25.sh
#!/bin/bash
source /opt/rh/rh-ruby25/enable
export X_SCLS="scl enable rh-ruby25 'echo $X_SCLS'
"
export PATH=$PATH:/opt/rh/rh-ruby25/root/usr/local/bin安装oxidized
gem install oxidized
gem install oxidized-script oxidized-web
useradd -m -d /home/oxidized oxidized
cp /opt/rh/rh-ruby25/root/usr/local/share/gems/gems/oxidized-0.24.0/extra/oxidized.service /lib/systemd/system
mkdir -p /home/oxidized/.config/oxidized
mkdir /home/oxidized/.config/oxidized/logs/
mkdir /home/oxidized/.config/oxidized/configs
chown oxidized:oxidized /home/oxidized/.config/oxidizedconfig 文件
username: username
password: password
model: junos
interval: 3600
log: /home/oxidized/.config/oxidized/logs/oxidized.log
debug: false
threads: 30
timeout: 20
retries: 3
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
rest: 127.0.0.1:8888
next_adds_job: false
vars: {}
groups: {}
models: {}
pid: "/home/oxidized/.config/oxidized/pid"
input:
default: ssh, telnet
debug: false
ssh:
secure: false
output:
default: file
file:
directory: "/home/oxidized/.config/oxidized/configs"
source:
default: csv
csv:
file: "/home/oxidized/.config/oxidized/router.db"
delimiter: !ruby/regexp /:/
map:
name: 0
model: 1
username: 2
password: 3
gpg: false
model_map:
cisco: ios
juniper: junosrouter.db 文件
vim home/oxidized/.config/oxidized/router.db
172.18.31.11:comware:user:passwd启动服务
systemctl restart oxidized.service
systemctl status oxidized.service
至此,自动备份基础功能已完成,可在目录里查看备份的配置文件,接下来配置可用web页面查看比较直观。安装nginx
yum install nginx
vim /etc/nginx/conf.d/oxidized.conf
cat /etc/nginx/conf.d/oxidized.conf
server {
listen 80;
server_name 172.18.34.45;
location / {
proxy_pass http://127.0.0.1:8888/;
}
access_log /var/log/nginx/access_oxidized.log;
error_log /var/log/nginx/error_oxidized.log;
}
systemctl restart nginx.service
- 浏览器打开:http://172.18.34.45/nodes
- Actions 下有3个图标,第一个点开可看到配置文件。
- 第二个versions可查看每个版本的配置差异。(需要git支持,安装步骤见下文)
- 第三个为强制备份。
默认显示时间不对,需要修改以下配置文件。
vim /opt/rh/rh-ruby25/root/usr/local/share/gems/gems/oxidized-web-0.11.1/lib/oxidized/web/public/scripts/oxidized.jsgit 安装
yum -y install git
yum install libgit2
git config user.name Oxidized
git config user.email "o@example.com"修改配置文件为git输出
systemctl restart oxidized.service
systemctl status oxidized.service
通过区域按钮可查看每个版本配置差异。