centos7如何使用oxidized备份网络配置

接上文安装成功oxidized,本次讲述如何配置oxidized并备份网络配置

1、修改配置文件

[root@oxidized oxidized]# pwd
/root/.config/oxidized
[root@oxidized oxidized]# vim config
---
username: username  #不用改,在router.db中设置
password: password  #不用改,在router.db中设置
model: junos        #不用改,在router.db中设置
resolve_dns: true
interval: 3600      #版本对比周期,秒,一小时一对比
use_syslog: false
debug: false
threads: 30
use_max_threads: false
timeout: 20
retries: 3
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
rest: 0.0.0.0:8888   #web地址
next_adds_job: false
vars: {}
groups: {}
group_map: {}
models: {}
pid: "/root/.config/oxidized/pid"
crash:
  directory: "/root/.config/oxidized/crashes"
  hostnames: false
stats:
  history_size: 10
input:  #连接设备模式
  default: ssh, telnet
  debug: false
  ssh:
    secure: false
  ftp:
    passive: true
  utf8_encoded: true
output: #导出配置模式
  default: git   #通过git对比配置
  git:
     user: Oxidized   #git账号,需要在系统上安装git并设置
     email: xxx@xxx.com  #git邮箱,需要在系统上安装git并设置
     repo: "/root/.config/oxidized/git-repos/default.git"  #定义路径
source:
  default: csv
  csv:
    file: "/root/.config/oxidized/router.db"  #需要备份的网络设备,信息放在这里
    delimiter: !ruby/regexp /:/
    map:
      name: 0     #设备信息按照如下0、1、2、3、4录入
      ip: 1
      model: 2
      username: 3
      password: 4
      group: 5
    gpg: false
model_map:
  juniper: junos
  cisco: ios

2、安装git

[root@oxidized oxidized]# yum install git -y
[root@oxidized oxidized]# git --version
git version 1.8.3.1
[root@oxidized oxidized]# git config --global user.name "Oxidized"
[root@oxidized oxidized]# git config --global user.email "xx@xxxx.com"

3、将oxidized加入开机自启

[root@oxidized oxidized]# find / -name oxidized.service
/etc/systemd/system/oxidized.service
[root@oxidized oxidized]# cp /usr/local/lib/ruby/gems/3.1.0/gems/oxidized-0.29.1/extra/oxidized.service /etc/systemd/system
[root@oxidized oxidized]# vim /etc/systemd/system/oxidized.service
将启动用户改成root
# Put this file in /etc/systemd/system.
#
# To set OXIDIZED_HOME instead of the default,
# ~oxidized/.config/oxidized, uncomment (and modify as required) the
# "Environment" variable below so systemd sets the correct
# environment.

[Unit]
Description=Oxidized - Network Device Configuration Backup Tool
After=network-online.target multi-user.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/oxidized
User=root
KillSignal=SIGKILL
#Environment="OXIDIZED_HOME=/etc/oxidized"
Restart=on-failure
RestartSec=300s

[Install]
WantedBy=multi-user.target

[root@oxidized oxidized]# systemctl enable oxidized

4、设置router.db,录入网络设备信息

[root@oxidized oxidized]# vim router.db
HuaWei4:10.10.100.54:vrp:admin:admin@123
安装配置文件定义的规则来写
厂商对应model:
#H3C
comware
#锐捷FW/飞塔FW
fortios
#华为
vrp

5、启动oxidized

[root@oxidized oxidized]# systemctl start oxidized
[root@oxidized oxidized]# systemctl status oxidized
● oxidized.service - Oxidized - Network Device Configuration Backup Tool
   Loaded: loaded (/etc/systemd/system/oxidized.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2023-11-02 16:21:06 CST; 18min ago
 Main PID: 7354 (oxidized)
   CGroup: /system.slice/oxidized.service
           └─7354 puma 3.11.4 (tcp://0.0.0.0:8888) [/]

Nov 02 16:25:21 oxidized oxidized[7354]: /usr/local/lib/ruby/gems/3.1.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1487:in `call'
[root@oxidized oxidized]# netstat-lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      890/sshd
tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      7354/puma 3.11.4 (t

6、访问web

Last Status: 绿色(备份正常), 蓝色(正在备份), 红色(备份失败)
Last Update: 上一次备份的时间(配置文件里面默认1个小时 自定义修改interval的值即可)
Last Changed: 配置文件发生改变的时间
Actions: 点击第一个图标就能看到设备备份文件内容,第二个图标为配置文件比对, 第三个图标为手动强制备份
 

7、本地查看

[root@oxidized oxidized]# ll
total 20
-rw-r--r-- 1 root root  962 Nov  2 15:43 config
-rw-r--r-- 1 root root  780 Nov  2 15:10 config.bak
-rw-r--r-- 1 root root 1705 Nov  2 15:27 crash
drwxr-xr-x 3 root root   25 Nov  2 16:08 git-repos
drwxr-xr-x 2 root root    6 Nov  2 08:56 logs
-rw-r--r-- 1 root root    4 Nov  2 16:21 pid
-rw-r--r-- 1 root root  181 Nov  2 16:21 router.db
[root@oxidized oxidized]# cd git-repos/
[root@oxidized git-repos]# ll
total 0
drwxr-xr-x 6 root root 116 Nov  2 16:22 default.git
[root@oxidized git-repos]# git clone default.git my-config
Cloning into 'my-config'...
done.
[root@oxidized git-repos]# ll
total 0
drwxr-xr-x 6 root root 116 Nov  2 16:22 default.git
drwxr-xr-x 3 root root  96 Nov  2 16:55 my-config
[root@oxidized git-repos]# cd my-config/
[root@oxidized my-config]# ll
total 32
-rw-r--r-- 1 root root  7236 Nov  2 16:55 HuaWei4
-rw-r--r-- 1 root root 13078 Nov  2 16:55 HuaWei-CE6857E-YW-SW1&2
-rw-r--r-- 1 root root  7236 Nov  2 16:55 HuaWei-S5735-ServerMGT-SW
[root@oxidized my-config]# cat HuaWei
# Huawei Versatile Routing Platform Software
# VRP (R) software, Version 5.170 (S5735 V200R022C00SPC500)
# Copyright (C) 2000-2022 HUAWEI TECH Co., Ltd.
#
# DDR             Memory Size : 512   M bytes
# FLASH Total     Memory Size : 512   M bytes
# FLASH Available Memory Size : 253   M bytes
# Pcb           Version   : VER.A
。。。。。。
搞定~!

8、修改last update时区问题

因为时区问题,显示的时间比当前早8个小时,需要修改

[root@oxidized oxidized]# find /* -name '*job.rb*'
/opt/ruby-3.1.0/test/-ext-/postponed_job/test_postponed_job.rb
find: ‘/proc/27013’: No such file or directory
/usr/local/lib/ruby/gems/3.1.0/gems/oxidized-0.29.1/lib/oxidized/job.rb
/usr/local/lib/ruby/gems/3.1.0/gems/oxidized-0.26.3/lib/oxidized/job.rb
修改第二个
[root@oxidized oxidized]# vim /usr/local/lib/ruby/gems/3.1.0/gems/oxidized-0.29.1/lib/oxidized/job.rb
将Time.now.utc改成Time.now

一共三处,修改后:

保存退出,重启oxidized,再次访问web,last update的时区已恢复

9、配置文件版本对比

10、使用ftp再次备份配置文件目录

[root@oxidized git-repos]# cat backup_oxidized.sh
#/bin/bash
Dir=/root/.config/oxidized/git-repos/default
if [ -d $Dir ];then
        rm -rf  /root/.config/oxidized/git-repos/default
        /usr/bin/git clone /root/.config/oxidized/git-repos/default.git && zip -r /ftp/oxidized/default-`date +%F`.zip default
else
        /usr/bin/git clone /root/.config/oxidized/git-repos/default.git && zip -r /ftp/oxidized/default-`date +%F`.zip  default
fi

[root@oxidized git-repos]# crontab -l
0 19 * * 5 /usr/bin/sh /root/.config/oxidized/git-repos/backup_oxidized.sh

安装ftp,并设置/ftp/oxidized为ftp目录

[root@oxidized git-repos]# yum install vsftpd -y
[root@oxidized git-repos]# mkdir -p /ftp/oxidized
[root@oxidized git-repos]# groupadd ftp
[root@oxidized git-repos]# useradd -g ftp -d /ftp/oxidized/ -M -s /sbin/nologin ftpuser
[root@oxidized git-repos]# echo "xxxxx" |passwd --stdin ftpuser
[root@oxidized git-repos]# chown -R ftpuser:ftp /ftp/
[root@oxidized git-repos]# chmod -R 755 /ftp/oxidized/
[root@oxidized git-repos]# cp /etc/vsftpd/vsftpd.conf  /etc/vsftpd/vsftpd.conf.bak
[root@oxidized git-repos]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
ascii_upload_enable=NO
ascii_download_enable=NO
chroot_local_user=YES
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list
listen=NO
listen_ipv6=YES
port_enable=YES
pasv_enable=YES
pasv_min_port=64000
pasv_max_port=65000
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
allow_writeable_chroot=YES
tcp_wrappers=YES
local_root=/ftp/oxidized

[root@oxidized git-repos]# vim /etc/vsftpd/user_list
新增ftpuser用户
[root@oxidized git-repos]# systemctl enable vsftpd && systemctl restart vsftpd

从其他linux机器访问(需已安装ftp,yum install ftp -y):

[root@localhost ~]# ftp 10.10.200.223
Connected to 10.10.200.223 (10.10.200.223).
220 (vsFTPd 3.0.2)
Name (10.10.200.223:root): ftpuser
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (10,10,200,223,250,192).
150 Here comes the directory listing.
-rw-r--r--    1 0        0           42076 Nov 22 05:49 default-2023-11-22.zip
226 Directory send OK.
ftp>

注意:若连接ftp报错530,需修改以下pam文件
[root@oxidized git-repos]# vim /etc/pam.d/vsftpd
将以下注释掉,然后重启vsftpd
#auth       required    pam_shells.so
将auth required pam_shells.so修改为->auth required pam_nologin.so 或者将auth required pam_shells.so注释

从本地Windows访问:

需事先打开ftp服务:

访问:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值