前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oxidized随笔:安装篇

Oxidized随笔:安装篇

作者头像
IT小白Kasar
发布2022-02-16 18:53:13
2.4K0
发布2022-02-16 18:53:13
举报
文章被收录于专栏:个人技术随笔个人技术随笔

该项目目前已经停止更新,但是基础功能能满足备份需求。 当前项目 github 地址:Oxidized

正文

环境要求

  • CentOS 7
  • Debian buster 以上
  • Ubuntu 17.10 以上
  • FreeBSD

安装 Ruby 2.4

代码语言:javascript
复制
yum install -y centos-release-scl
yum install -y rh-ruby24 rh-ruby24-ruby-devel
scl enable rh-ruby24 bash

安装依赖包

代码语言:javascript
复制
yum install -y make cmake which sqlite-devel openssl-devel libssh2-devel ruby gcc ruby-devel libicu-devel gcc-c++

安装 Oxidized

代码语言:javascript
复制
gem install oxidized

安装 oxidized-web(可选)

oxidized-web 为 oxidized 的 web 前端,如果无需求,则可以不用装。

代码语言:javascript
复制
gem install oxidized-script oxidized-web

oxidized 调试

如果遇到系统执行 oxidized 出现 bash: oxidized: command not found ,请输入 scl enable rh-ruby24 bash 在第一次运行会自动在家目录生成配置文件,会出现 edit ~/.config/oxidized/config

Source 部分

再次执行oxidized命令会出现日志,此时告警提示为 no source csv config… 字样告警。

图中报错,结合配置文件,不难发现是缺少router.db文件,那么此文件究竟起什么作用?这得从官方介绍来看,source 部分是存放希望备份的网络设备清单,而这份清单的存储方式可以分为CSV, SQLite, MySQL和HTTP,默认为CSV,很显然需要创建一个名为router.db文件。

通过tree(该命令需要额外安装包)
通过tree(该命令需要额外安装包)
代码语言:javascript
复制
touch ~/.config/oxidized/router.db

再次执行oxidized,会返回 source returns no usable nodes 错误,

此时创建完成后依然没有启动,报错意思比较明显,里面没有任何节点,所以启不启动已经没有意义,那么需要添加一个节点,怎么加呢?此时要看到配置文件的map部分。

代码语言:javascript
复制
source:
  default: csv
  csv:
    file: "/root/.config/oxidized/router.db"
    delimiter: !ruby/regexp /:/
    map:
      name: 0
      model: 1
    gpg: false
model_map:
  juniper: junos
  cisco: ios

主要看map部分,其中 0 和 1 对应 router.db 里的顺序。

代码语言:javascript
复制
test:vrp
对应配置文件map里的关系
对应配置文件map里的关系

这种显然不满足企业复杂的需求,一般如下:

代码语言:javascript
复制
source:
  default: csv
  csv:
    file: "/root/.config/oxidized/router.db"
    delimiter: !ruby/regexp /:/
    map:
      name: 0
      model: 1
      ip: 2
      username: 3
      password: 4
      group: 5
    gpg: false
model_map:
  juniper: junos
  cisco: ios
  huawei: vrp

那么对应 router.db 的文件是怎么写呢?如下图:

测试效果

此时可以看到输出有点问题

Output (输出)部分

根据官方文档,output 也有 File, GIT, GIT-Crypt 和 HTTP,其中 git 和 file 方式最多,默认为 file,而如果选用的为 file,也就是本地存储的方式,需要一个目录,默认配置路径为 ~/.config/oxidized/configs,这里的报错提示是不存在该目录,也可以和 source 部分的 tree 结果对比,确实不存在,创建该目录即可解决该问题。

代码语言:javascript
复制
mkdir -p ~/.config/oxidized/configs

同样执行oxidized命令继续,此时可以看到正常运行,router.rb 里的节点正常节点,Ctrl+C停止服务,查看备份的配置。

创建configs文件夹启动服务
创建configs文件夹启动服务
已经备份的文件详情
已经备份的文件详情

前面安装了 web 可以访问网页看看。但是需要修改配置文件里的 127.0.0.1:8888 改为 真实IP:8888 才行

访问路径为:http://服务器IP:8888

改成服务器IP
改成服务器IP
前端效果
前端效果

写在最后

虽然略显粗糙,但备份的需求还是可以满足的。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-02-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正文
    • 环境要求
      • 安装 Ruby 2.4
        • 安装依赖包
          • 安装 Oxidized
            • 安装 oxidized-web(可选)
              • oxidized 调试
                • Source 部分
                • Output (输出)部分
            • 写在最后
            相关产品与服务
            云数据库 MySQL
            腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档