整理了一下oxidized+mysql+gitlab,感觉很好用,做个记录

安装oxidized

安装ruby
yum install centos-release-scl
yum install rh-ruby23 rh-ruby23-ruby-devel
scl enable rh-ruby23 bash
安装依赖关系
yum install make cmake sqlite-devel openssl-devel libssh2-devel ruby gcc ruby-devel libicu-devel gcc-c ++
安装oxidized
gem install oxidized-script oxidized-web

另外可以从gitlab克隆
git clone https://github.com/ytti/oxidized.git
cd oxidized/
gem install bundler
rake install

另外,可以使用RVM安装ruby2.3
安装依赖环境
yum install curl gcc-c++ patch readline readline-devel zlib zlib-devel
yum install libyaml-devel libffi-devel openssl-devel make cmake
yum install bzip2 autoconf automake libtool bison iconv-devel libssh2-devel libicu-devel

设置RVM环境并编译和安装Ruby2.3,并将他设置成默认值
source /etc/profile.d/rvm.sh
rvm install 2.3
rvm use --default 2.3

------------------------------以上,oxidized安装完成---------------------

安装过程大部分问题都会是由ruby 引起

验证安装:
oxidized -v ## 返回版本号即表示安装成功

配置oxidized
oxidized 有2个核心文件。
config文件 就用来存放配置文件
router.db文件 可以理解成 存放被管理主机的地方

首先配置config文件,


username: username
password: password
model: junos
interval: 3600
log: /root/.config/oxidized/logs/oxidized.log
debug: false
threads: 30
timeout: 20
retries: 3
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
rest: 0.0.0.0:8888
next_adds_job: false
vars: {}
groups: {}
models: {}
pid: “/root/.config/oxidized/pid”
input:
default: ssh, telnet
debug: false
ssh:
secure: false
output:
default: file
file:
directory: “/root/.config/oxidized/git/*”
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:
cisco: ios
juniper: junos

router.db文件
示例:
name:vrp:ip:username:password:group
启动oxidized,直接输入oxidized 回车即可

Oxidized-web 本身是没有开发账号密码验证的,所以就需要借助nginx代理,
server {
# listen 8080 default_server;
# listen [::]:8080 default_server;
listen 8081;
listen [::]:8081;
server_name 192.168.47.128;
root /usr/share/nginx/html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
            proxy_pass http://192.168.47.128:8888;
            proxy_http_version 1.1;
            auth_basic "Welcome to Oxidized WEB Login";
            auth_basic_user_file /usr/local/nginx/.htpasswd;
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }

}

Oxidized router.db 文件存储的用户密码信息使用明文,为防止密码等机密信息泄露,决定在数据库中存储设备的用户密码等信息。
Oxidized 配置文件
source:
default: sql
sql:
adapter: mysql2
database: oxidized
table: net_dev
user: oxidized
password: oxidized
host: 192.168.47.128
map:
name: name
model: model
username: username
password: password
group: group
vars_map:
ssh_port: port

数据库配置

#创建 oxidized 数据库
create database oxidized character set utf8 collate utf8_bin;
#oxidized 库用户授权
grant all PRIVILEGES on oxidized.* to ‘oxidized’@’%’ IDENTIFIED BY ‘oxidized’;
#刷新权限
FLUSH PRIVILEGES;
创建表结构
CREATE TABLE net_dev (
id int(10) UNSIGNED NOT NULL,
name text NOT NULL,
model text NOT NULL,
username text NOT NULL,
password text NOT NULL,
group text NOT NULL,
port char(32)
) ;
如上,oxidized即可从mysql读取数据,数据维护通过数据库即可

摒弃oxidized-web, 使用gitlab
本地安装gitlab
安装ssh
yum install -y curl policycoreutils-python openssh-server
设置ssh开机启动,防火墙放行端口 ## 惯例我会把firewall 和 selinux直接关闭
添加gitlab镜像
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
安装gitlab
rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
出现如下,即表示安装成功
在这里插入图片描述

##Gitlab安装百度一下,可以参考不同资料
修改gitlab配置文件,指定ip地址和端口
vim /etc/gitlab/gitlab.rb
在这里插入图片描述

重置并启动GitLab
gitlab-ctl reconfigure #重新加载配置
gitlab-ctl restart #重启

访问gitlab页面
http://192.168.47.131/root/dev_con
初始账户: root 密码:5iveL!fe
创建public key (此步骤用于主机gitlab互通,实现免密更新)
ssh-keygen 然后一路回车
cat ~/.ssh/id_rsa.pub 然后复制内容添加公匙到gitlab

如下图:

在这里插入图片描述

以上,gitlab搭建完成

如何将配置备份推送到gitlab上,有两种方法:
1. Oxidized 有对应的接口,但是我测试失败,有兴趣可以试一下
2. Shell脚本
#!/bin/bash
cd /root/.config/oxidized/git
git init
git remote remove oxidized
git remote add oxidized git@192.168.47.131:root/dev_con.git
git add -A
git commit -m ‘backup’
git pull --rebase oxidized master
git push oxidized master
以上即可完成oxidized+mysql+gitlab来备份设备配置
其实是个很简单的东西,但是在实际工作中很有帮助,如果大家遇到问题,欢迎留言互动,互相学习。

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值