oxidized网络设备自动备份

作者: Shark1985 | 来源:发表于2019-04-26 13:12 被阅读2次

    系统数据备份,对于运维工作来说是重要的一环。尤对网工来说,网络设备备份更是必不可少的一项工作。小规模网络,敲敲命令就能搞定,一般tftp一下就好,而稍有点规模的,就几十至上百台设备,依次手工操作备份,这样工作效率就很低下。

    这时能够做到网络设备自动化备份,将是这一痛点的解决方案。本来初始设想通过学习ansible实现自动备份的目的,但就对网络设备telnet远程访问的方式,ansible实现起来就较有难度了。偶然在搜索解决方案时,找到了oxidized软件,同样是开源软件,在其实现上天然的支持了常规的远程方式,也就是说,网络设备只要通过telnet和ssh访问的,都可以进行自动备份。

    oxidized在功能实现上,是需要识别具体网络设备品牌,然后才可以进行实际的备份动作。在oxidized软件包中有一个model目录,其下保存了大多数主流网络设备的rb文件,这个rb文件中配置了针对网络设备的一些常规操作,如登录telnet、ssh,还有show running-config等,然而并没有备份相关的tftp命令。后来经过实际验证,oxidized的备份,不同于tftp方式保存的是设备中的start.cfg文件,只是通过“show running-config”的方式,将所有配置保存到了一个文本文件中,而这也算是一种可恢复的备份方式了。

    参考一

    https://github.com/ytti/oxidized

    参考二

    https://www.opscaff.com/2018/04/18/oxidized-%E6%9C%80%E5%A5%BD%E7%94%A8%E7%9A%84%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%E5%A4%87%E4%BB%BD%E7%B3%BB%E7%BB%9F/

    系统环境

     Ubuntu 18.04 LTS
    

    安装

    apt update
    apt upgrade –y
    
    apt-get install ruby ruby-dev libsqlite3-dev libssl-dev pkg-config cmake libssh2-1-dev libicu-dev
    gem install oxidized
    gem install oxidized-script oxidized-web
    

    验证

    oxidized -v
    0.26.3
    

    组件

    • config文件 存放配置文件
    • Sources字段 要备份设备的存放方式
    • Outputs字段 备份文件存放的方式
    • model字段:设备的厂商所用的os名称
    • router.db文件 存放被管理主机的地方

    新建用户 oxidized

    useradd -m -d /home/oxidized oxidized
    

    配置oxidized 通过systemctl 管理

    cp /var/lib/gems/2.5.0/gems/oxidized-0.26.3/extra/oxidized.service /lib/systemd/system
    
    systemctl enable oxidized.service
    

    oxidized目录

    mkdir -p /home/oxidized/.config/oxidized
    

    日志目录

    mkdir /home/oxidized/.config/oxidized/logs/
    

    备份文件存放目录

    mkdir /home/oxidized/.config/oxidized/configs
    

    设置用户目录和用户组

    chown oxidized:oxidized /home/oxidized/.config/oxidized
    

    配置文件

    ---
    username: username #服务不检测,此项在router.db中检测
    password: password #服务不检测,此项在router.db中检测
    model: junos #服务不检测,此项在router.db中检测
    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 #web访问的地址,实际通过nginx重定向此地址
    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: #服务不检测,此项在router.db中检测
      cisco: ios #服务不检测,此项在router.db中检测
      juniper: junos #服务不检测,此项在router.db中检测
    

    设备文件

    #需要备份的设备列表
    /home/oxidized/.config/oxidized/router.db
    10.x.x.x:comware:admin:password
    
    

    启动oxidized

    systemctl restart oxidized.service
    
    systemctl status oxidized.service
    ● oxidized.service - Oxidized - Network Device Configuration Backup Tool
       Loaded: loaded (/lib/systemd/system/oxidized.service; enabled; vendor preset: enabled)
       Active: active (running) since Thu 2019-04-25 09:12:47 UTC; 52min ago
     Main PID: 21836 (oxidized)
        Tasks: 7 (limit: 4663)
       CGroup: /system.slice/oxidized.service
               └─21836 puma 3.11.4 (tcp://127.0.0.1:8888) [/]
    

    查看日志

    tail -f /home/oxidized/.config/oxidized/logs/oxidized.log 
    I, [2019-04-25T09:12:48.346012 #21836]  INFO -- : Oxidized starting, running as pid 21836
    I, [2019-04-25T09:12:48.347489 #21836]  INFO -- : lib/oxidized/nodes.rb: Loading nodes
    I, [2019-04-25T09:12:48.497476 #21836]  INFO -- : lib/oxidized/nodes.rb: Loaded 1 nodes
    I, [2019-04-25T09:12:55.093924 #21836]  INFO -- : Configuration updated for /10.x.x.x
    

    查看备份目录

    ls -l /home/oxidized/.config/oxidized/configs/
    total 16
    -rw-r--r-- 1 oxidized oxidized 8496 Apr 25 09:28 10.x.x.x
    
    more /home/oxidized/.config/oxidized/configs/10.x.x.x
    # H3C Comware Platform Software
    # Comware Software, Version 5.20.99, Release 1110
    # Copyright (c) 2004-2016 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
    # 
    # H3C S5110-52P
    # 128M    bytes DRAM
    # 32M     bytes Flash Memory
    # Config Register points to Flash
    

    Web UI管理

    #安装nginx
    apt install nginx
    #安装认证模块
    apt-get install apache2-utils
    #创建密码文件
    mkdir -p /data/nginx/db/
    cd /data/nginx/db/
    touch passwd.db
    #生成密码
    htpasswd -c /data/nginx/db/passwd.db admin
    #启动nginx服务
    systemctl restart nginx.service
    

    访问web管理

    http://10.x.x.x/nodes
    使用前边设置的admin和对应密码登录

    已测试支持的网络设备厂商

    其他只要在Model中有对应设备厂商的rb文件,一般应该都可以,待测试

    #H3C
    comware
    #锐捷FW/飞塔FW
    fortios
    #华为
    vrp
    
    
    

    其他

    支持设备类型的目录

     ls -l /var/lib/gems/2.5.0/gems/oxidized-0.26.3/lib/oxidized/model
     total 484
    -rw-r--r-- 1 root root 2877 Apr 25 03:51 acos.rb
    -rw-r--r-- 1 root root 1998 Apr 25 03:51 acsw.rb
    -rw-r--r-- 1 root root  359 Apr 25 03:51 adtran.rb
    -rw-r--r-- 1 root root  259 Apr 25 03:51 aen.rb
    -rw-r--r-- 1 root root 1033 Apr 25 03:51 aireos.rb
    -rw-r--r-- 1 root root  465 Apr 25 03:51 airos.rb
    -rw-r--r-- 1 root root 2435 Apr 25 03:51 alteonos.rb
    -rw-r--r-- 1 root root  216 Apr 25 03:51 alvarion.rb
    -rw-r--r-- 1 root root 1325 Apr 25 03:51 aos7.rb
    -rw-r--r-- 1 root root  581 Apr 25 03:51 aos.rb
    -rw-r--r-- 1 root root 4043 Apr 25 03:51 aosw.rb
    -rw-r--r-- 1 root root  198 Apr 25 03:51 apc_aos.rb
    -rw-r--r-- 1 root root  487 Apr 25 03:51 arbos.rb
    -rw-r--r-- 1 root root 1279 Apr 25 03:51 aricentiss.rb
    -rw-r--r-- 1 root root 3407 Apr 25 03:51 asa.rb
    -rw-r--r-- 1 root root 1277 Apr 25 03:51 asyncos.rb
    -rw-r--r-- 1 root root  648 Apr 25 03:51 audiocodesmp.rb
    -rw-r--r-- 1 root root  498 Apr 25 03:51 audiocodes.rb
    -rw-r--r-- 1 root root 3113 Apr 25 03:51 awplus.rb
    -rw-r--r-- 1 root root  249 Apr 25 03:51 axos.rb
    -rw-r--r-- 1 root root 2187 Apr 25 03:51 boss.rb
    -rw-r--r-- 1 root root  992 Apr 25 03:51 br6910.rb
    -rw-r--r-- 1 root root 1208 Apr 25 03:51 c4cmts.rb
    -rw-r--r-- 1 root root  576 Apr 25 03:51 cambium.rb
    -rw-r--r-- 1 root root 1036 Apr 25 03:51 casa.rb
    -rw-r--r-- 1 root root  838 Apr 25 03:51 catos.rb
    -rw-r--r-- 1 root root  264 Apr 25 03:51 cisconga.rb
    -rw-r--r-- 1 root root 1128 Apr 25 03:51 ciscosma.rb
    -rw-r--r-- 1 root root 2088 Apr 25 03:51 ciscosmb.rb
    -rw-r--r-- 1 root root  284 Apr 25 03:51 ciscovpn3k.rb
    

    相关文章

      网友评论

        本文标题:oxidized网络设备自动备份

        本文链接:https://www.haomeiwen.com/subject/bzufnqtx.html