# InManageBoot **Repository Path**: anolis/InManageBoot ## Basic Information - **Project Name**: InManageBoot - **Description**: InManage Boot服务器部署平台是面向数据中心基础设施的批量开局管理方案,围绕资源管理、RAID配置、系统部署和迁移等功能,构建服务器统一的裸机批量管理平台,能有效地帮助用户提高运维效率、降低运维成本,保障数据中心快速投产、可靠稳定的运行。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 17 - **Forks**: 14 - **Created**: 2024-01-03 - **Last Updated**: 2025-07-17 ## Categories & Tags **Categories**: nms **Tags**: None ## README # InManageBoot ## 介绍 InManageBoot服务器部署平台是面向数据中心基础设施的批量开局管理方案,面向企业和IDC行业提供服务器批量初始化管理,支撑客户对服务器设备在生命周期各阶段易用、高效的运维管理,为用户带来极致体验。 该软件实现对服务器的可视化管理,提供对服务器的设备管理、阵列卡管理、系统安装、用户配置、系统克隆、压力测试等全生命周期的管理能力,有效帮助运维人员提高运维效率、降低运维成本,保障数据中心快速投产、稳定的运行,所有操作支持一站式完成,无人值守,高效运维。 InManageBoot软件可广泛应用于数据中心运营商和企业客户,能够在互联网、金融、电信等众多行业领域场景下,帮助用户快速完成服务器阵列卡配置、系统安装等初始化工作。 传统模式下,物理机安装依赖人工手动用光盘或U盘安装,硬件种类繁多,一台台配置更加复杂。面对大规模应用上线,物理机交付的滞后性会成为制约业务发展的瓶颈。所以必须要解决标准化和自动化问题,才能满足大规模部署的需求。 ## 软件架构 ![pFZFkm4.png](https://s11.ax1x.com/2024/01/22/pFZFkm4.png) ## 产品功能 InManage Boot软件是浪潮信息公司研发的,面向服务器全生命周期的带内自动化运维管理解决方案。 ### 设备管理 轻量级资产管理,InManageBoot支持服务器资源的集中管理,支持批量导入、单个添加设备信息,为后续的功能使用提供数据支持。 管理范围包括:浪潮信息通用服务器、AI智能服务器及机柜、刀片、机架服务器,支持裸机的管理。 管理功能包括:设备电源管理、刷新设备信息、系统探测、系统克隆、网络管理、设备查询、设备编辑、设备删除功能。 ### 模板 支持多种任务的模板创建。可支持的模板功能如下: - 阵列卡管理模板 - InManageBoot软件提供批量修改RAID配置的功能,支持自定义指令设置。 - 支持主流阵列卡的主流RAID配置,同时支持多阵列卡配置。 - 系统安装模板 - 支持从仓库镜像模块手动导入OS镜像,对导入的OS镜像进行管理系统安装。 - InManageBoot支持使用带内网络,挂载OS镜像,提供操作系统批量自动安装的功能,可同时支持50台以上设备批量部署OS,能够单日完成1000+OS部署任务。系统安装前,可选择基础环境、设置挂载点、磁盘选择等分区操作。 - 用户配置模板 - InManageBoot软件支持配置BMC的用户模板。可自定义创建或者修改BMC的管理员用户密码。 - 压力测试模板 - InManageBoot软件提供服务器性能测试功能,批量测试设备CPU、内存等配件的性能,并导出测试数据,验证设备性能是否达到要求。在测试之前可以设置采集周期和测试频率。 - 自定义模板 - InManageBoot软件支持用户自定义模板。支持上传自定义的脚本、工具。并将自定义的脚本工具分发到待执行服务器批量执行。 ### 镜像 - 支持操作系统镜像的管理。包括系统镜像的添加、删除、修改。 - 支持磁盘镜像的还原功能。 ### 任务管理 - 支持客户通过“作业”查看任务当前进度,主要展示的任务信息包括:任务名称、执行类型、任务状态、开始时间、结束时间、任务进展、已耗时。 - 支持作业的停止、搜索 - 用户可以对历史作业进行管理,查看作业执行日志或删除已经完成的作业。 ### 设置 通过服务管理、工作IP管理,实现对InManageBoot软件本身的配置管理,保证InManageBoot软件的稳定和鲁棒性。 - 服务管理 InManageBoot软件提供服务管理的功能 对InManageBoot Server服务器所需服务的查看与管理,实时查看DHCP、DNS、SAMBA、NGINX、TFTP服务状态,支持服务的启停管理。 - 工作IP管理 可以选择开局交付的工作IP,确定后基于此IP开启DHCP服务。 ## 关键技术特性 - 自动化运维,支撑全生命周期设备管理 InManageBoot提供多种场景部署能力,从出厂裸机初始化场景(未配置带外网络),到生产环境自动化运维,提供丰富的管理模板,为自动化运维提供全面支持。 - 裸机一站式部署,支持一键上架 InManageBoot提供从系统探测、硬件配置、操作系统部署一站式部署的能力,使服务器从零配置到上线生产环境,一键完成。 - 任务自由编排,提供多场景运维能力 基于“资产-操作-编排-作业”的产品技术架构,任务结构自由编排,灵活组合,支持管理网络搭建,raid批量配置;自定义指定批量下发,操作系统批量部署和配置等运维各种场景。 - 大规模部署技术架构,缩短上线周期 优化传统PXE技术缺陷,单节点模式可保证并发50台以上设备批量任务执行,单日完成1000+服务器上架。 - 无需预配置网络环境,即插即用 与带外部署操作系统需要依赖带外网络环境不同,基于PXE技术的InManageBoot不需要依赖任何预配置网络环境,只需要服务端与客户端网络可达,避免大规模部署前需要批量配置带外网络的痛点。 - 精准日志,执行结果指令级别追溯 执行日志精确到每一条指令,快速统计、查看执行结果和准确率;支持查看历史任务日志。 - 传统PXE技术优化,提升数据传输性能 InManageBoot批量上架是基于PXE技术实现的大规模批量部署功能,但较于传统PXE,InManageBoot采用的PXE方案的优势在于可以通过HTTP方式传输InManageBoot客户端,拥有远高于TFTP服务的传输速度,并通过简易的配置可以同时支持Legacy和UEFI两种启动方式。 ## 安装部署 ### 系统依赖 - Anolis OS 8 以上版本,对系统安装的包没有要求,最小化安装即可 - 关闭防火墙 ``` systemctl stop firewalld systemctl disable firewalld ``` - 关闭selinux(需重启生效) ``` sed -i '/^SELINUX=/cSELINUX=disabled' /etc/sysconfig/selinux ``` ### 基础组件安装 - mysql安装 安装mysql8.0及以上版本,可在mysql官网下载最新安装版本 [https://www.mysql.com/downloads/](https://www.mysql.com/downloads/) - nfs安装 使用命令安装nfs组件:``yum install nfs-utils`` - tftp组件安装 使用命令安装tftp组件:``yum install tftp tftp-server`` - samba组件安装 使用命令安装samba组件:``yum install samba`` - nginx组件安装 使用命令安装nginx组件:``yum install nginx`` - xinetd组件安装 使用命令安装xinetd组件:``yum install xinetd`` - dhcp组件安装 使用命令安装dhcp组件:``yum install dhcp(centos);yum install dhcp-server(anolis)`` - java组件安装(需要使用java-17-openjdk版本) 使用命令安装java组件:``yum install java-17-openjdk`` ### 基础组件配置 - mysql组件配置 1. 使用配置中的my.cnf文件替换/etc/my.cnf文件 ``` cp [源码目录]/InManageBoot-installer/Public/my.cnf /etc/my.cnf ``` 2. 拷贝项目中的add_index.sql文件至/usr/local/ibootcfg/lib/目录 ``` mkdir -p /usr/local/ibootcfg/lib/ cp [源码目录]/InManageBoot-installer/Public/add_index.sql /usr/local/ibootcfg/lib/ ``` 2. 初始化mysql密码,执行如下命令 ``` mkdir -p /opt/inmanage/mysql systemctl stop mysqld mysqld --initialize --console chown -R mysql:mysql /opt/inmanage/mysql systemctl start mysqld mysql_init_password=`cat /opt/inmanage/mysql/mysqld-error.log | grep "root@localhost:" | awk -F "root@localhost:" '{print $2}'` mysqladmin -uroot -p${mysql_init_password} password 'Inspur1!' mysql -uroot -p${inmanage_module_secret_key} -e "CREATE USER 'inmanagedba'@'%' IDENTIFIED BY '${inmanage_module_secret_key}';" mysql -uroot -p${inmanage_module_secret_key} -e "USE mysql;UPDATE user SET host = '%' WHERE user = 'root';FLUSH PRIVILEGES;" mysql -uroot -p${inmanage_module_secret_key} -e "CREATE DATABASE IF NOT EXISTS inmanagedb DEFAULT charset utf8 COLLATE utf8_bin;" mysql -uroot -p${inmanage_module_secret_key} -e "GRANT ALL PRIVILEGES ON inmanagedb.* TO inmanagedba@'%';" mysql -uroot -p${inmanage_module_secret_key} -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;FLUSH PRIVILEGES;" mysql -uroot -p${inmanage_module_secret_key} inmanagedb < /usr/local/ibootcfg/lib/add_index.sql ``` - samba配置 1. 拷贝smb-sample.conf至/etc/samba/smb.conf ``` cp [源码目录]/InManageBoot-installer/ispimdata/iboot/init/ibootInstall/cfg/smb-sample.conf /etc/samba/smb.conf ``` 2. 执行配置命令 ``` mkdir -p /usr/local/samba/windows_driver mkdir -p /usr/local/samba/image chmod -R 755 /usr/local/samba groupadd sambagroup > /dev/null 2>&1 useradd isib -g sambagroup -s /sbinlogin > /dev/null 2>&1 (echo 'Inspur1!';echo 'Inspur1!') | smbpasswd -s -a isib ``` - nginx配置 1. 拷贝nginx.conf至/etc/nginx/nginx.conf ``` cp [源码目录]/InManageBoot-installer/ispimdata/iboot/init/ibootInstall/cfg/nginx.conf /etc/nginx/nginx.conf ``` - tftp配置 1. 拷贝tftp-sample文件至/etc/xinetd.d/tftp ``` cp [源码目录]/InManageBoot-installer/ispimdata/iboot/init/ibootInstall/cfg/tftp-sample /etc/xinetd.d/tftp ``` 2. 执行配置命令 ``` mkdir -p /usr/local/tftpboot/ cp -rf [源码目录]/InManageBoot-installer/ispimdata/iboot/init/ibootInstall/cfg/{ipxe.efi,snponly.efi,undionly.kpxe} /usr/local/tftpboot/ chmod -R 755 /usr/local/tftpboot/ ``` - dhcp配置 1. 拷贝dhcpd-sample.conf至/etc/dhcp/dhcpd.conf ``` cp [源码目录]/InManageBoot-installer/ispimdata/iboot/init/ibootInstall/cfg/dhcpd-sample.conf /etc/dhcp/dhcpd.conf ``` - InManageBoot自身工具配置 1. 拷贝imcli工具、INMANAGE配置文件到系统下 ``` cp [源码目录]/InManageBoot-installer/Public/imcli /usr/local/bin cp [源码目录]/InManageBoot-installer/Public/config /usr/local/bin chmod -R 777 /usr/local/bin cp [源码目录]/InManageBoot-installer/Public/INMANAGE /etc/ ``` 2. 拷贝data目录至环境 ``` mkdir -p /opt/inmanage/data cp -rf [源码目录]/InManageBoot-installer/ispimdata/iboot /opt/inmanage/data/ cp -rf [源码目录]/InManageBoot-installer/ispimdata/webservice /opt/inmanage/data/ ``` 3. 拷贝初始化脚本 ``` mkdir -p /usr/local/ibootcfg/data/iboot/init/ibootInstall cp -rf [源码目录]/InManageBoot-installer/ispimdata/iboot/init/ibootInstall/* /usr/local/ibootcfg/data/iboot/init/ibootInstall/ ``` ### 后端代码编译 1. 配置maven仓库 (maven版本建议使用3.9.8版本,下载地址:https://dlcdn.apache.org/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz) a)将编译用到的第三方jar包上传到个人maven仓库 第三方jar包位置:[源码目录]/InManageBoot-installer/thirdjar/ 示例:(其中E:\InManageBoot\InManageBoot为[源码目录]) ``` cdc-commons-lang mvn install:install-file -Dfile=E:\InManageBoot\InManageBoot\InManageBoot-installer\thirdjar\cdc-commons-lang-1.5.0-SNAPSHOT.jar -DgroupId=com.inspur.cdc.commons -DartifactId=cdc-commons-lang -Dversion=1.5.0-SNAPSHOT -Dpackaging=jar cdc-commons-i18n mvn install:install-file -Dfile=E:\InManageBoot\InManageBoot\InManageBoot-installer\thirdjar\cdc-commons-i18n-1.5.0-SNAPSHOT.jar -DgroupId=com.inspur.cdc.commons -DartifactId=cdc-commons-i18n -Dversion=1.5.0-SNAPSHOT -Dpackaging=jar cdc-commons-flyway mvn install:install-file -Dfile=E:\InManageBoot\InManageBoot\InManageBoot-installer\thirdjar\cdc-commons-flyway-1.5.0-SNAPSHOT.jar -DgroupId=com.inspur.cdc.commons -DartifactId=cdc-commons-flyway -Dversion=1.5.0-SNAPSHOT -Dpackaging=jar cdc-combo-mybatis mvn install:install-file -Dfile=E:\InManageBoot\InManageBoot\InManageBoot-installer\thirdjar\cdc-combo-mybatis-1.5.0-SNAPSHOT.jar -DgroupId=com.inspur.cdc.combo -DartifactId=cdc-combo-mybatis -Dversion=1.5.0-SNAPSHOT -Dpackaging=jar cdc-boot-starter-web mvn install:install-file -Dfile=E:\InManageBoot\InManageBoot\InManageBoot-installer\thirdjar\cdc-boot-starter-web-1.5.0-SNAPSHOT.jar -DgroupId=com.inspur.cdc.starters -DartifactId=cdc-boot-starter-web -Dversion=1.5.0-SNAPSHOT -Dpackaging=jar cdc-boot-autoconfigure mvn install:install-file -Dfile=E:\InManageBoot\InManageBoot\InManageBoot-installer\thirdjar\cdc-boot-autoconfigure-1.5.0-SNAPSHOT.jar -DgroupId=com.inspur.cdc -DartifactId=cdc-boot-autoconfigure -Dversion=1.5.0-SNAPSHOT -Dpackaging=jar cdc-boot mvn install:install-file -Dfile=E:\InManageBoot\InManageBoot\InManageBoot-installer\thirdjar\cdc-boot-1.5.0-SNAPSHOT.jar -DgroupId=com.inspur.cdc -DartifactId=cdc-boot -Dversion=1.5.0-SNAPSHOT -Dpackaging=jar cosmos-biz-commons mvn install:install-file -Dfile=E:\InManageBoot\InManageBoot\InManageBoot-installer\thirdjar\cosmos-biz-commons-1.3.0-SNAPSHOT.jar -DgroupId=com.inspur.cosmos.biz -DartifactId=cosmos-biz-commons -Dversion=1.3.0-SNAPSHOT -Dpackaging=jar ``` 可配置maven的外网仓库如下: ``` alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central ``` b)上传第三方依赖的pom文件 第三方pom文件位置:[源码目录]/InManageBoot-installer/pom/ 将cdc-boot-dependencies-1.5.0-SNAPSHOT.pom文件放置到本地mvnrepository\com\inspur\cdc\cdc-boot-dependencies\1.5.0-SNAPSHOT\cdc-boot-dependencies-1.5.0-SNAPSHOT.pom 2. 创建后端代码目录 ``` mkdir -p /opt/inmanage/iboot cp -rf [源码目录]/InManageBoot-installer/iboot /opt/inmanage/ ``` 3. jar包编译 ``` cd [源码目录]/InManageBoot-iboot/cosmos-biz/cosmos-biz-iboot/ mvn clean install -P jar -DskipTests -U cd [源码目录]/InManageBoot-iboot/cosmos-biz/cosmos-biz-iboot/cosmos-biz-iboot-base/cosmos-biz-iboot-base-application mvn clean install -P thinjar -DskipTests -U -e dependency:copy-dependencies -DoutputDirectory=/tmp/dist -DincludeScope=runtime cp -rf /tmp/dist* /opt/inmanage/iboot/libs/ cp -rf [源码目录]/InManageBoot-iboot/cosmos-biz/cosmos-biz-iboot/cosmos-biz-iboot-base/cosmos-biz-iboot-base-application/target/cosmos-biz-iboot-base-application*SNAPSHOT.jar /opt/inmanage/iboot/service/ ``` ### 前端代码编译 - 安装node 1. 下载node-v16.20.2-linux-x64.tar.gz 2. 拷贝前端目录 ``` cp -rf [源码目录]/InManageBoot-installer/cdcnode /opt/inmanage/ ``` 2. 解压安装 ``` mkdir -p /usr/local/node tar -xzvf node-v16.20.2-linux-x64.tar.gz -C /usr/local/node ln -sf /usr/local/node/node-v16.20.2-linux-x64/bin/node /usr/bin/node ln -sf /usr/local/node/node-v16.20.2-linux-x64/bin/npm /usr/bin/npm ``` 3. 代码编译 ``` cp -rf [源码目录]/InManageBoot-installer/cdcnode /opt/inmanage/ cd [源码目录]/InManageBoot-ui/ unzip node_modules.zip npm run build cp -rf dist /opt/inmanage/cdcnode/ ``` ### 前后端服务拷贝 ``` cp -rf [源码目录]/InManageBoot-installer/iboot/service/*.service /usr/lib/systemd/system systemctl daemon-reload ``` ### 环境启动 - 服务查看及启动 执行以下命令查看InManageBoot ``` /opt/inmanage/iboot/bin/iboot status ``` 执行以下命令启动InManageBoot ``` /opt/inmanage/iboot/bin/iboot start ``` 执行以下命令查看cdcnode ``` /opt/inmanage/iboot/bin/cdcnode status ``` 执行以下命令启动cdcnode ``` /opt/inmanage/iboot/bin/cdcnode start ``` ### 环境登录 - 通过浏览器访问页面,访问入口为:https://本机IP - 默认用户名:admin - 默认密码:123456Aa? ## 项目地址 * [https://gitee.com/anolis/InManageBoot](https://gitee.com/anolis/InManageBoot) ## 沟通交流 [![pkDDZxe.jpg](https://s21.ax1x.com/2024/06/21/pkDDZxe.jpg)](https://imgse.com/i/pkDDZxe)