Oxidized,在英文中的读法是/ˈɒksɪdʌɪz/,意思是使氧化,使生锈。
Oxidized是一个开源的网络设备备份工具,它的最大特点是轻量的,可扩展的,它目前支持超过90个网络系统类型。
从事过网络相关的工作8年来,之前的配置备份和对比操作基本上都是手工完成的。备份用的是SecurCRT,对比使用的是Beyond Compare、DiffMerge、WinMerge等工具。而Oxidized的出现,完全可以将这些工具抛开,只要打开Web页面,就能一目了然地查看每台设备的配置和不同时间配置的对比。
下面我就来介绍一下Oxidized的具体用法,由于公司使用的是Linux CentOS服务器,我这里就以CentOS7操作系统来演示一下安装和具体的使用过程。
此项目的开源地址是 https://github.com/ytti/oxidized,有兴趣的可以自己去摸索。
1. 需要安装相关的依赖包:
1 |
yum install make cmake which sqlite-devel openssl-devel libssh2-devel gcc libicu-devel gcc-c++ |
2. 安装ruby2.2.3
由于CentOS7默认安装的ruby版本是2.0,而安装oxidized-web需要ruby的版本大于2.2
1 2 3 4 5 6 7 |
yum groupinstall "Development Tools" wget https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.3.tar.gz cd /tmp tar -zxvf ruby-2.2.3.tar.gz ./configure make make install |
3. 安装oxidized,oxidized-script,xidized-web
1 2 |
gem install oxidized gem install oxidized-script oxidized-web |
4. 生成oxidized的配置文件
1 |
oxidized |
5. 修改oxidized的配置文件
1 |
vi /root/.config/oxidized/config |
配置文件如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
--- username: username password: password model: junos resolve_dns: true interval: 2592000 use_syslog: false 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: /root/.config/oxidized/pid stats: history_size: 10 input: default: ssh, telnet debug: false ssh: secure: false ftp: passive: true utf8_encoded: true output: default: git file: directory: /root/.config/oxidized/configs output: default: git git: user: Oxidized email: o@example.com repo: "/var/lib/oxidized/devices.git" source: default: csv csv: file: /root/.config/oxidized/router.db delimiter: !ruby/regexp /:/ map: name: 0 model: 1 username: 2 password: 3 vars_map: enable: 4 gpg: false model_map: cisco: ios juniper: junos fortigate: fortios |
主要参数说明:
1 2 3 4 5 6 7 8 9 10 |
username: username : 用户名 这个参数不用改,会从router.db读取. password: password : 密码 这个参数也不用改,会从router.db读取. model: junos : 模型 这个参数也不用改,会从router.db读取. interval: 3600 : 备份周期 单位是秒,也就是默认一个小时备份一次 threads: 30 :线程 timeout: 20 : 超时 retries: 3 : 重试次数 input: 连接设备模式 output: 导出配置模式 router.db : 存储主机基本信息的地方(IP地址,用户名,密码等) |
6. 在/root/.config/oxidized/下新增并编辑router.db文件
1 2 3 4 5 |
vi /root/.config/oxidized/router.db 10.1.1.1:fortios:username:password 10.1.1.2:ios:username:password 10.1.1.3:asa:username:password:enablepassword |
至此,oxidized的安装就算完成了,再次运行oxidized进行第一次配置备份
7. WEB界面安装并启用登陆认证
7.1 安装nginx,并修改相关配置文件
默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了Centos的源地址。因此可以如下执行命令添加源:
1 |
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm |
7.2 安装Nginx
1 |
yum install -y nginx |
7.3 编辑Nginx配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
vi /etc/nginx/conf.d/oxidized.conf server { listen 8088; listen [::]:8088; server_name 替换为服务器ip地址; auth_basic "Welcome to Oxidized WEB Login"; auth_basic_user_file /etc/nginx/.htpasswd; 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; } |
7.4 启用Nginx认证
7.4.1 安装htpasswd认证工具
1 |
yum -y install httpd-tools |
7.4.2 设置用户名和密码
1 |
htpasswd -bc /usr/local/nginx/.htpasswd username password |
7.4.3 启用nginx
1 2 |
systemctl start nginx.service systemctl enable nginx.service |
7.5 设置oxidized服务自启动
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
cp /usr/local/share/gems/gems/oxidized-0.24.0/extra/oxidized.service /lib/systemd/system/ vi /lib/systemd/system/oxidized.service 将useroxidized更改为root -------------------- [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 [Install] WantedBy=multi-user.target -------------------- systemctl daemon-reload systemctl enable oxidized.service systemctl start oxidized systemctl status oxidized |
登陆页面如下:
登陆后Oxidized的首页如下:
2018年7月20日 下午11:16 沙发
非常好的分享,值得学习!
2019年8月9日 下午12:20 板凳
感谢分享