【Linux】一种Linux网络设备出厂批量软件初始化、安装、升级的方案

来源:互联网 发布:slax linux定制中文版 编辑:程序博客网 时间:2024/06/02 23:31

1、问题描述

目前有大量网络设备,对外只提供网络接口,在设备出厂的时候需要对设备进行初始化、软件预装、软件升级等操作,

2、解决方案

linux系统初始是通过DHCP分配得到ip地址,所以可以通过配置一台DHCP服务器管理设备的方式进行设备端的操作!
下面是一种通过DHCP服务的方式进行设备更新操作的方法。

  1. 设备列表:一台配置了DHCP的主机,一台二层交换机(傻瓜交换机),设备若干,网线。

  2. 连接图示
    网络图示

  3. DHCP服务端配置(由于实验用的ubuntu系统,所以此处会以ubuntu为例)

    (1)安装 isc-dhcp-server 服务程序
    # sudo apt-get install isc-dhcp-server

    (2)修改配置文件

    #备份当前配置
    sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
    #编辑当前配置
    sudo vi /etc/dhcp/dhcpd.conf

    dhcp_config

    > 其中, ` log-facility local4; ` 是输出 DHCP 发现、提供、选择、确认、重新登录、更新租约等日志 到系统流,以便我们可以记录到自定义日志文件中

    (3)记录输出日志的配置
    rsyslog.conf

    (4)在 /var/log/ 文件夹下面新建 dhcplog 文件,并修改权限 # sudo chmod 666 /var/log/dhcplog

    (5)启动 DHCP 服务即可。
    # /etc/init.d/isc-dhcp-server start

  4. 编写脚本文件

    由于 dhcplog 记录的日志都是 DHCP 规律的结构语句,可以按照行,解析其中的语句,提取mac地址、ip地址,从而操作设备。
    脚本文件(循环执行提取操作,每次读到文件末尾,记录行数,如果再次有设备接入,行数增加,从上次读取的位置继续读到文件末尾,根据日志行和mac地址唯一性解析出ip,操作设备)
    sh1
    sh2

    远程操作命令
    (1)pscp
    (2)plink
    此二函数功能很强大,使用起来很方便,可以好好看一下。

  5. 操作
    启动服务器,每次只需要把需要升级的设备连接到交换机,即可得到服务器分配的ip,然后服务器就会远程操作该设备!!!

3、优缺点

  1. 优点:
    此方法非常简单;可以高效利用设备网络;
  2. 缺点:
    此方法无法获取终端的最后状态(需要添加反馈机制);

4、更新版本

1、启动dhcp服务器即清空dhcplog日志;
2、根据dhcplog日志文件大小判断是否有新设备加入;
3、添加根据mac地址生成的设备升级记录,可以解决重复升级和无反馈问题;

shu1
shu2

1 0